From: jcassidy <jca...@ga...> - 2014-02-10 13:05:04
|
Thanks Xiaofan. I found that the dc1394_capture_setup() did a call to libusb_fill_bulk_transfer( , , 0x81, , , callback, ,0 ). I changed the endpoint address to 0x82 to see if it would provide a quick fix. The ...capture_setup() function does return successfully, but a subsequent call to read() never returns. It appears that the callback is never invoked. On 2/9/2014, 10:08 PM, Xiaofan Chen wrote: > Anyway from the xusb output it seems that the host program > libdc1394 is at fault. It tries to access Endpoint 0x81 (EP 1 IN) > in Interface 0 but there is not Endpoint 0x81 for Interface 0. > > 1) libdc1394 debug output: > > [ 8.531323] [00000303] libusb: debug [libusb_claim_interface] interface 0 > [ 8.531992] [00000303] libusb: debug [get_endpoints] building table of > endpoints. > [ 8.532008] [00000303] libusb: debug [get_endpoints] interface: 0 pipe > 1: dir: 0 number: 2 > [ 8.532016] [00000303] libusb: debug [get_endpoints] interface: 0 pipe > 2: dir: 1 number: 2 > [ 8.532047] [00000303] libusb: debug [darwin_claim_interface] interface opened > [ 8.532055] [00000303] libusb: debug [ep_to_pipeRef] converting ep > address 0x81 to pipeRef and interface > [ 8.532059] [00000303] libusb: warning [ep_to_pipeRef] no pipeRef > found with endpoint address 0x81. > [ 8.532062] [00000303] libusb: error [submit_bulk_transfer] endpoint > not found on any open interface > libdc1394 error: usb: Failed to submit initial transfer 0 > [ 8.532086] [00000303] libusb: debug [libusb_release_interface] interface 0 > [ 8.532328] [00000303] libusb: debug [libusb_close] > > > 2) xusb output: you can see that for Interface 0, the IN endpoint > is 0x82. You only have IN endpoint 0x81 in Interface 2. > > nb interfaces: 3 > interface[0]: id = 0 > interface[0].altsetting[0]: num endpoints = 2 > Class.SubClass.Protocol: EF.05.00 > endpoint[0].address: 02 > max packet size: 0400 > polling interval: 00 > max burst: 00 (USB 3.0) > bytes per interval: 0000 (USB 3.0) > endpoint[1].address: 82 > max packet size: 0400 > polling interval: 00 > max burst: 00 (USB 3.0) > bytes per interval: 0000 (USB 3.0) > interface[1]: id = 1 > interface[1].altsetting[0]: num endpoints = 1 > Class.SubClass.Protocol: EF.05.01 > endpoint[0].address: 83 > max packet size: 0400 > polling interval: 00 > max burst: 00 (USB 3.0) > bytes per interval: 0000 (USB 3.0) > interface[2]: id = 2 > interface[2].altsetting[0]: num endpoints = 1 > Class.SubClass.Protocol: EF.05.02 > endpoint[0].address: 81 > max packet size: 0400 > polling interval: 00 > max burst: 0F (USB 3.0) > bytes per interval: 0000 (USB 3.0) > |