Linux: Rapid Photo Downloader update is released.

Started Jul 4, 2017 | Discussions thread
AxelR Senior Member • Posts: 1,169
Re: Linux: Rapid Photo Downloader faster than Windows 10?
1

Damon Lynch wrote:

Damon Lynch wrote:

AxelR wrote:
The intent was never to compete with high-end solutions like yours and support advanced features like multiple downloads with this little project. The underlying API in Windows can entertain up to 64 concurrent device connections and parallel transfers.

No desktop environment or Linux subsystem provides that kind of service.

What I should have written was no Linux desktop environment provides the service that you describe Windows providing, if I understand it correctly. But perhaps I'm reading too much into what the Windows service provides, because Gnome does in fact provide services to access / eject PTP and MTP devices, but due to libgphoto2 and libmtp limitations, only one process can access a device at a time. I'm not sure how if that limitation exists in Windows. FWIW my program accesses cameras directly using libgphoto2.

If my program is ever ported to Windows, then perhaps it can use that Windows service (assuming there is a binding to Python) and not rely on libgphoto2, which does not work well under Windows.

Windows 10 has a new API that exposes high-level functionality to enumerate devices, list device content, transfer, and optionally erase transferred files.

The API is available to Store apps (UWP, like Photo & Video Import) and to Win32 apps through COM. It offers an asynchronous programming model: the caller regains control immediately and can subscribe to progress callbacks to monitor/cancel the work in progress, and it can be used to talk to multiple devices concurrently.

The API is named Windows.Media.Import and you can read more about it here and there.

This is the most modern and fastest option. I know - first hand - that it's been tweaked to no end to squeeze every bit of perf from the devices it reads from and the PC storage it writes to. I've seen people use it to transfer more than 80,000 photos in one shot so it should be pretty reliable.

Windows also offer a lower-level COM API called Windows Portable Devices (WPD) which is available since Vista. It is more tedious to use, but it can also be used to sync music, contacts, etc., or control the device e.g. to take pictures programmatically, depending on the device you are dealing with.

For completeness, there is also a couple of very old, legacy APIs carried over from the pre-XP era that you can find here and there, but I'd not recommend using them: they have poor device compatibility and low speed by today's standards.

I don't know if/how Python program can use COM components? If you can do COM, there is hope.

-- hide signature --
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow