Gstreamer nvv4l2decoder segment seeking

I’m trying to port over our product pipeline from the NXP IMX8 (Toradex Carrier) to the Jetson Line.

We are trying to achieve a seamlessly seeking video player, and have done so very successfully using the IMX8 (Toradex BSP).

We are Utilising gstreamers segment seeking usecase to jump between different segment of a H264 encoded .mp4

I’m currently trying to port the pipeline we currently use, and have attempted the following:
filesrc ! qtdemux ! h264parse ! queue ! nvv4l2decode ! queue ! glimagesink

However it appears that “nvv4l2decode” just locks up when performing a seek with “SEGMENT_SEEK” flags.
“SEGMENT_DONE” appears on the bus almost instantly after the seek event is pushed

The issue does not occur when using the same pipeline but instead of nvv4l2decode, avdec_h264, however we want the hardware decoding, as avdec_h264 really pushed the CPU.

I have also tried using nv3dsink, but with no luck.

I’ve tried this on an Orin Nano and Orin NX but with the same issue. We are up to date with our jet-packs.

Is there something I’m missing?

I’d like to to use the Jetson line as we’ve had success previously with the TX2 but this is a critical hurdle in the production pipeline.

Thanks in advance.

Please try nvgstplayer-1.0. You can run help command to get the usage:

$ nvgstplayer-1.0 --help

And the source code is in

Jetson Linux 36.3 | NVIDIA Developer
Driver Package (BSP) Sources

Thank you for the reply, I can playback the video fine using nvv4l2decode, however whenever I send a segment seek to the pipeline, I get an almost instant segment done message on the bus.

I have previously been using the technique of pushing a segment to the pipeline, waiting for the SEGMENT_DONE to appear on the bus after the segment has comlpleted its playback, and then queueing up another segment. This is a very common usecase for gstreamer, however doesn’t work with nvv4l2decode.