From 854c3b2e391d755396ba68ea9882051f02bdbfc3 Mon Sep 17 00:00:00 2001 From: Francisco Facioni Date: Tue, 20 Oct 2015 16:10:45 -0300 Subject: [PATCH] Fixes "subpacket too large", "not all subsequences received" and LIBUSB_ERROR_OTHER errors for OS X --- src/libfreenect2.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libfreenect2.cpp b/src/libfreenect2.cpp index 8628f4ca4..2513ac8f8 100644 --- a/src/libfreenect2.cpp +++ b/src/libfreenect2.cpp @@ -43,6 +43,14 @@ #include #include +#if defined(__APPLE__) + #define PKTS_PER_XFER 136 + #define NUM_XFERS 4 +#else + #define PKTS_PER_XFER 8 + #define NUM_XFERS 60 +#endif + namespace libfreenect2 { using namespace libfreenect2; @@ -464,8 +472,8 @@ bool Freenect2DeviceImpl::open() return false; } - rgb_transfer_pool_.allocate(50, 0x4000); - ir_transfer_pool_.allocate(80, 8, max_iso_packet_size); + rgb_transfer_pool_.allocate(20, 0x4000); + ir_transfer_pool_.allocate(NUM_XFERS, PKTS_PER_XFER, max_iso_packet_size); state_ = Open; @@ -585,7 +593,7 @@ void Freenect2DeviceImpl::start() LOG_INFO << "submitting usb transfers..."; rgb_transfer_pool_.submit(20); - ir_transfer_pool_.submit(60); + ir_transfer_pool_.submit(NUM_XFERS); state_ = Streaming; LOG_INFO << "started";