Hello,
I am working on i.MX8M Plus EVK. My purpose it to capture image/video from CSI camera and display it to DSI.
Our requirement is low latency between CSI camera capture to DSI display.
We tried with both Android (imx-android-11.0.0_1.2.0) and Linux (imx-5.4.70-2.3.0) BSPs
In android we use default camera application, where we see ~75 msec latency from actual source which is captured by camera and DSI display.
However, in Linux we use gst-launch-1.0 command, where we tried with different sinks (i.e autovideosink, glimagesink, waylandsink) in each case we
see around ~130-150 msec.
we tried below command, in all the cases we got almost similar latency (~130-150 msec)
gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,framerate=(fraction)30/1' ! autovideosink
gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,framerate=(fraction)30/1' ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,width=720,height=480,framerate=(fraction)30/1' ! glimagesink render-rectangle='<0,0,1280,720>'
To use DSI in linux we are using imx8mp-evk-rm67191.dtb. We are using NXP MIPI CSI Camera module and NXP MX8-DSI-OLED1 .
We thought that Linux would have lower overhead than android so latency would be less. But in actual that doesn't seems so.
Can you clarify, why there is higher latency in Linux use case then android?
Regards,
Darshak
Hello darshak_patel,
The latency should be due to the framework, you can try with GSTLatencytracer to determines src-to-sink latencies by injecting custom events at sources and process them at sinks.
Also You can also use gst-stats-1.0 to parse the generated log file and get some stats/metrics about the latency.
Regards