DeepStream 5 nvv4l2decoder doesn't work with rtspsrc

Hello,

I use gst_parse_launch in my C++ app, and grab frames from appsink.

The pipeline I use is the following:

rtspsrc location=<my_rtsp_source> latency=5000 protocols=tcp ! rtph264depay ! h264parse ! nvv4l2decoder cudadec-memtype=0 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12 ! appsink drop=true max-buffers=5

It works as expected with DeepStream 4. However, with DeepStream 5 when I try to change pipeline’s state to PLAYING in my C++ app, appsink element hangs in READY forever. If I change rtspsrc to filesrc everything works fine both in DS4 and DS5. If I use avdec_h264 instead of nvv4l2decoder, again everything runs smoothly.

Tested on T4 and GTX1070, using deepstream images from NGC.

1 Like

Hi,
Please try the pipeline without h264parse:

rtspsrc location=<my_rtsp_source> latency=5000 protocols=tcp ! rtph264depay ! nvv4l2decoder cudadec-memtype=0 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12 ! appsink drop=true max-buffers=5

This could be same as the topic:

Thank you, it helped!

I tried to study why this works. Both rtph264depay and h264parse have required pads for nvv4l2decoder, but the latter is in “GStreamer Bad Plugins” package. However it still works with filesrc. Could you please explain what causes problems with rtspsrc?

Hi,
The issue is under investigation. Will update once there is new findings.