I am writting a usb web camera driver.And find that the isochronous transmit is not stability.I used three kinds web
camera to do the test.
1.Logitech web camera: with the received payload header,I can get video frames. but the frame size is not correct.
sometimes it is bigger than the correct size.and sometimes it is smaller than the correctsize.and sometimes there are
errors in isochronous transmit.
2.Z-Star Microelectronics web camera:there is not payload header.and there are many 0 size packets to be received.
3.Microdia web camera:received data had payload header.but EOF bit is never to be setted to 1.so i can`t detect the end
of the video frame.
My driver`s work flow:
â‘ register the driver information(insert,removal callback …)
â‘¡in insert callback check the interfaceâ†’select alternate settingâ†’ create the usb pipeâ†’alloc the buffer and urbâ†’
probe commit request control
â‘¢set isochronous urb
â‘¤in I/O completion callback process received data(for example check the payload header),and then run â‘¢ã€