Increase number of v4l2 capture buffers.
GStreamer queries the driver for V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
which our driver doesn't support. The fallback is GST_V4L2_MIN_BUFFERS
which is set to 2. Using only 2 buffers severely degrades performance.
imxv4l2src, which isn't built for imx8 by default but can be enabled
for comparison, uses 8 buffers and performs much better. 8 is a bit
excessive and we get the same performance with 5. This change plus
io-mode=dmabuf gives smooth 30 fps streaming @1080p:
gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2,width=1920,height=1080 ! kmssink sync=false
This pipeline used to run at around 7 fps, now 30.
1 file changed