How to change decoder nvjpecdec to nvv4l2decoder in DeepStream SDK 4.0.1

**• Hardware Platform (Jetson / GPU) : Jetson Nano
• DeepStream Version : Deepstream 4.0.1 SDK
• JetPack Version (valid for Jetson only) : 4.2.2
• TensorRT Version :
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
: deepstream_sdk_v4.0.1_jetson/sources/apps/apps-common/src

• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)

: Due to the camera delay problem in IP Camera, the delay speed problem was improved when changing from H.264 format to MJPEG format.
However, after using the MJPEG format, the jetson board stops and ends as the memory increases due to a memory leak problem.

• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

It seems that DeespStream 4.0.1 is holding the nvjpegdec decoder. I want to use nvv4l2decoder, can I change the decoder inside the code?

When debugging, it seems to run with nvjpecdec set.

I think nvjpecdec, omx, nvv4l2decoder can be interchanged with each other.

I think I will have a hard time setting up my application to migrate to DeepStream 5.0.

So, I want to know how to change the decoder from DeepStream4.0.1 SDK to source code.

And I need something to get some info about the SDK c code. Is it there?

It is better to upgrade to latest DeepStream SDK. DeespStream 4.0.1 is not supported now.

The nvjpegdec is always chosen by decodebin automatically(https://gstreamer.freedesktop.org/documentation/playback/decodebin.html), seems nvjpegdec’s priority is higher than nvv4l2decoder. So you may need to use fixed pipeline instead of dynamic pipeline(decodebin is dynamic) to use nvv4l2decoder definitely.

You need c programming skills and gstreamer(https://gstreamer.freedesktop.org/) programming skills to understand deepstream codes.

Thank you for quick response.

Does DeepStream only use dynamic pipelines?

Do I have to implement it myself to build a fixed pipeline?

sorry for inconveniencing to you.

DeepStream is a SDK, whether to use dynamic pipeline or a fix pipeline is decided by the way you write your own application. You need to write your own application.

deepstream-app sample is using dynamic pipeline.

Hi, Fiona.Chen

A memory leak problem after upgrading from DS 4.0 to DS 5.0 has been resolved.

However, I also confirmed that in 5.0 the decoder is prioritized with nvjpecdec.
Was this resolved in the 5.0 SDK?
Thank you.

Yes.