]> git.sesse.net Git - bmusb/blobdiff - bmusb.cpp
Use even smaller transfers since evidently the kernel has problems allocating 512...
[bmusb] / bmusb.cpp
index b3739caf28db7052ae9fe68024004d5ca526a299..8639b938969bb0169640e8266c53afcdfb60afea 100644 (file)
--- a/bmusb.cpp
+++ b/bmusb.cpp
@@ -638,8 +638,9 @@ void BMUSBCapture::cb_xfr(struct libusb_transfer *xfr)
        }
 #endif
 
-       if (libusb_submit_transfer(xfr) < 0) {
-               fprintf(stderr, "error re-submitting URB\n");
+       int rc = libusb_submit_transfer(xfr);
+       if (rc < 0) {
+               fprintf(stderr, "error re-submitting URB: %s\n", libusb_error_name(rc));
                exit(1);
        }
 }
@@ -977,7 +978,7 @@ void BMUSBCapture::configure_card()
        // set up isochronous transfers for audio and video
        for (int e = 3; e <= 4; ++e) {
                //int num_transfers = (e == 3) ? 6 : 6;
-               int num_transfers = 6;
+               int num_transfers = 10;
                for (int i = 0; i < num_transfers; ++i) {
                        int num_iso_pack, size;
                        if (e == 3) {
@@ -991,7 +992,7 @@ void BMUSBCapture::configure_card()
                                        size &= ~1023;
                                        size += 1024;
                                }
-                               num_iso_pack = (2 << 18) / size;  // 512 kB.
+                               num_iso_pack = (2 << 16) / size;  // 128 kB.
                                printf("Picking %d packets of 0x%x bytes each\n", num_iso_pack, size);
                        } else {
                                size = 0xc0;