diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2013-03-12 23:30:05 +0800 |
---|---|---|
committer | Pete Batard <pete@akeo.ie> | 2013-03-12 22:54:15 +0000 |
commit | 15f7b3aeea19b95610e4baf26eb51b8709562cf7 (patch) | |
tree | af517c9b4ce7e24a8958fbd1a6e23de3f66fe4ef | |
parent | 5689b7709352f82061f92cec735fe961f8d00ab0 (diff) | |
download | libusb-15f7b3aeea19b95610e4baf26eb51b8709562cf7.tar.gz |
OS X: Do not assume HS when submitting isochronous transfer
* Closes #99
-rw-r--r-- | libusb/os/darwin_usb.c | 5 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index 47d7961..08bd7f0 100644 --- a/libusb/os/darwin_usb.c +++ b/libusb/os/darwin_usb.c @@ -1445,7 +1445,10 @@ static int submit_iso_transfer(struct usbi_transfer *itransfer) { transfer->num_iso_packets, tpriv->isoc_framelist, darwin_async_io_callback, itransfer); - cInterface->frames[transfer->endpoint] = frame + transfer->num_iso_packets / 8; + if (transfer->dev_handle->dev->speed == LIBUSB_SPEED_FULL) + cInterface->frames[transfer->endpoint] = frame + transfer->num_iso_packets; + else + cInterface->frames[transfer->endpoint] = frame + transfer->num_iso_packets / 8; if (kresult != kIOReturnSuccess) { usbi_err (TRANSFER_CTX (transfer), "isochronous transfer failed (dir: %s): %s", IS_XFERIN(transfer) ? "In" : "Out", diff --git a/libusb/version_nano.h b/libusb/version_nano.h index a4acadb..bd8f428 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 10627 +#define LIBUSB_NANO 10628 |