diff options
Diffstat (limited to 'src/libusb-glue.c')
-rw-r--r-- | src/libusb-glue.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libusb-glue.c b/src/libusb-glue.c index 2d38b6f..a0292d2 100644 --- a/src/libusb-glue.c +++ b/src/libusb-glue.c @@ -1112,6 +1112,10 @@ ptp_usb_getresp (PTPParams* params, PTPContainer* resp) /* read response, it should never be longer than sizeof(usbresp) */ ret = ptp_usb_getpacket(params, &usbresp, &rlen); + // Fix for bevahiour reported by Scott Snyder on Samsung YP-U3. The player + // sends a packet containing just zeroes of length 2 (up to 4 has been seen too) + // after a NULL packet when it should send the response. This code ignores + // such illegal packets. while (ret==PTP_RC_OK && rlen<PTP_USB_BULK_HDR_LEN && usbresp.length==0) { ptp_debug (params, "ptp_usb_getresp: detected short response " "of %d bytes, expect problems! (re-reading " |