I have a project which is using libusb1 on Linux, and libusb-win32 on
Windows. To cross-compile, I use libusb-compat on Linux.
I'm experiencing an incomplete data transfer on Linux. I transfer
packets in multiples of the packet size for the OUT endpoint, but I
never get the remainder bytes.
e.g. transferring 9523 bytes
Bytes Transferred 1024, 2048, etc. etc. until 9216 bytes, but then I
don't get the 307 bytes.
On Windows, with libusb-win32, I get all the data and the last 307 bytes
correctly. (Same device.)
Another data point, if I compile the program directly with libusb1, I
can successfully write the data.
I have reason to suspect the issue has something to do with the data
itself. In my case, the last few bytes of data to be transmitted are 0.
It seems that with libusb-0.1.12, when the last few bytes are 0, that
the packet isn't committed.
Has anyone else seen anything like this?