There are incomplete frames from USB3.0 Camera (DFK37BUX273] by using V4L2 API

I captured frames from a USB3.0 Camera (DFK37BUX273) by using V4L2 api on Jetson TX2.
Jetson TX2’s NVP Model is MAXN (not using jetson_clocks.).
→ CPU clocks are around 500MHz ~1600MHz

When I set camera’s frame rate to 200fps (resolution is 1440x1080), one tenth of all the frames are incomplete frame.

On the other hand, when I set camera’s frame rate to 200fps and execute jetson_clocks command, almost all the frames are complete.
→ All CPU clocks are around 2000MHz

I suspect that if the CPU speed is low, it may not be possible to buffer the USB packets into the V4L2 user buffers in time.
Furthermore, I suspect that this problem is less likely to occur if the buffer size of the USB FIFO buffer is large.

My question is…
Are the above two suspicious correct?
Also, could you please tell me how to increase the size of the USB FIFO buffer (not V4L2 user buffer?

I use JetPack4.3.
I set 32 V4L2 user buffers by using V4L2 REQBUF API.
32 is the max of limitation for V4L2 user buffer number.

Hi,
200fps is very high frame rate. We suggest run in nvpmodel -m 0 and sudo jetson_clcoks.
Mode 0 is MAXN mode:
Welcome — Jetson Linux<br/>Developer Guide 34.1 documentation

Dear Mr.DaneLLL

Thank you so much for reply.

I have already tried to set nvpmodel into MAXN mode.
But dropping frame sometimes occurs.

If possible, could you please tell me how to increase the size of the USB FIFO buffer (not V4L2 user buffer?

Hi,
We are not sure what USB FIFO is. Maybe you mean URB number? If yes, please check

kernel-4.9\drivers\media\usb\uvc\uvc_video.c

There are functions uvc_init_video_isoc() and uvc_init_video_bulk(). You may increase the number for a try.

And if the camera supports 60fps or 30fps, you may try the mode to clarify whether the issue is specific to 200fps.

Dear Mr. DaneLLL

Thank you for the information.
I will try it.

Best Regards