a) It depends on which format you are streaming. You will accordingly have to set the format, the data per pixel, per frame. Also the host application should be able to support this format with 8 bits per pixel.
b) I see that you have 4 INTR_CPU actions in your state machine. 2 for partial buffer and 2 for full buffer. As you mentioned that you always get partial buffer is that the last buffer is not full. As you must see that you are going to one of the INTR_CPU only at the end (i.e. !FV), so you can check that the last buffer of the frame may not be full. If this is true, then no other state will generate the interrupt
It turns out I should have been using 768x576. However, I still get no image on any camera application. They all respond with 768x576 25fps and YUY2 format and looking at the data collected in the DmaBuffer the format is correct. Also, the CyU3PDmaMultiChannelCommitBuffer appears to be working (send data to the PC) as it gives no errors...
However, I can't load a Cypress windows 10 driver for the FX3 as an image device; it always uses Microsoft's one from 2006. I have noticed in the cyusb3.inf file that there are no VID/PID data for a USB video connection. Would this cause the cypress driver not to be loaded?
I have tried the USBVideoClassBulk example (under USB 2.0) and this works fine (albeit using MPEG-1 data)
Any further assistance would be grateful.
I have run DirectShow to show what the FX3 is configured for and attach its results. I have changed the camera to operate at 9fps (and changed FX3 accordingly).
Also USBAnalyzer(3.0) I get data packets as expected arriving with the header correctly filled in (EOL and Frame ID changing after every frame (not every packet). Data also attached.
I still don't get any image on either AMCap or Windows 10 camera. !! help please !!
I have change the frame size to 768x288 (to match the data coming in which should have been width x height x 2) and now get an image.
However, as I'm send odd line frame then even line frame the image is not being interlaced correctly.