Encoder & Decoder Latencies are not proper with SYNC=TRUE option


On Jetson nano board, I am measuring latencies of nvv4l2h265enc and nvv4l2decoder elements with “interlatency” option in gst-shark tool.

GST_DEBUG=“GST_TRACER:7” GST_TRACERS=“interlatency” GST_DEBUG_FILE=udpsrc_nvv4l2decoder_nvv4l2h265enc_pl1_fakesink_true.log
gst-launch-1.0 udpsrc port=50000 buffer-size=2000000 caps=“application/x-rtp , media=video, clock-rate=90000, payload=96, encoding-name=H264”
! rtpjitterbuffer
! rtph264depay
! nvv4l2decoder enable-max-performance=1 disable-dpb=true
! nvv4l2h265enc preset-level=1 MeasureEncoderLatency=1 maxperf-enable=1
! fakesink sync=true

I tried measuring the latency numbers with sync=false and sync=true options, and observed that the latency numbers with sync=true are not proper.

with sync=true, i am getting encoder latency of 5 msec, 33 msec, 67 msec (some random numbers, its not consistent data)
Whereas with sync=false, i am getting encoder latency of 5 msec (it is consistent data).

The decoder latencies are also not proper with sync=true option.

I have attached logs for latency numbers.

udpsrc_nvv4l2decoder_nvv4l2h265enc_pl1_fakesink_MeasureEncoderLatency.log (82.8 KB) udpsrc_nvv4l2decoder_nvv4l2h265enc_pl1_fakesink_true_MeasureEncoderLatency.log (30.1 KB)

Could you please provide details on Why do we see inconsistent latency numbers with sync=true option ?

What do you recommend for streaming pipeline and file-based pipelines ?


Do you observe the issue with v4l2src or nvarguscamerasrc? The logic is based on timestamps and not sure if udpsrc gives correct values in sync=true.

And gst-v4l2 is open source. You may download the source code to check how MeasureEncoderLatency is implemented.