The FX3 FW is an UAC + UVC design.
UAC & UVC data comes from FPGA via SlaveFIFO 32-bit I/F.
When using VLC to capture both Audio and Video from FX3, the VLC halts. Looks like only one frame was captured and shown, and there's no voice captured. However data from FX3 is continuously received in VLC.
When only UAC or only UVC is captured in VLC, it runs well. The issue only occurs when both UAC & UVC are captured.
The DMA buf size for UVC in FX3 FW is 16 KB, and 192 bytes for UAC. UAC uses 48K Hz, stereo, 16b. And the video format is Full HD @ 60 HZ, YUY2.
GPIF Thread 0 is for UVC and Thread 3 for UAC.
The UVC and UAC use the slavefifo I/F in turn. Here is the detail.
If audio data is available, 192 audio bytes will be sent to PC using Thread 3;
else if video data is available, 16 KB will be sent to PC using Thread 0;
When VLC starts capturing the video & audio, I can see 6 audio packets ( 6 x 192 bytes) were sent to PC, and then video data starts.
What might be the cause of the issue?
Would it be the 16-KB video data in single transfer from FPGA are too large?