NV_DS_ENCODER_TYPE_HW always gives PPS 0 error

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
AGX Xavier
• DeepStream Version
6.0
• JetPack Version (valid for Jetson only)
4.6
• TensorRT Version
8.0.1.6
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
The hardware decoder creates segments with no PPS.
Follwing settings are provides
g_object_set (G_OBJECT (bin->encoder), “profile”, profile, NULL); [THIS IS 0]
g_object_set (G_OBJECT (bin->encoder), “iframeinterval”, config->iframeinterval, NULL); [THIS IS 4]
g_object_set (G_OBJECT (bin->encoder), “bitrate”, bitrate, NULL); [This is 2000000]
g_object_set (G_OBJECT (bin->encoder), “force-idr”, 1, NULL);

• 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)

ffmpeg -i outxxx.ts will give follwoing error:
[h264 @ 0x558b9d0b90] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x558b9d0b90] decode_slice_header error
[h264 @ 0x558b9d0b90] no frame!

I dont get this problem if I use SW encoder.

Is there a way to use HW encoder that works?
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

How did you generate the outxxx.ts file?

I have an hls sink that generates the ts files. If I use HW encoder , I get PPS error. If I use SW encoder all segments are just fine.

The error went away after i set the idrinterval to be 5
g_object_set (G_OBJECT (bin->encoder), “idrinterval”, 5, NULL);

Is this still an DeepStream issue to support?

No. We can close this issue. Thanks a lot.

Spoke too soon. The HW encoder is now again giving the PPS0 error mentioned earlier. the fps of camera is 30. I set profile =0, idrinterval=5, force-idr is ON, Insert-sps-pps is on. iframeinterval is also 5.

Is this still an DeepStream issue to support? if yes, can you provide a simplified code or gst-launch command to reproduce this issue?

iframeinterval should be equal to idrinterval. here is a sample:
gst-launch-1.0 -v videotestsrc num-buffers=1000 ! nvvideoconvert ! nvv4l2h264enc iframeinterval=30 idrinterval=30 ! h264parse ! mpegtsmux ! hlssink

Thanks. I will try this.

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

thanks for the update! If need further support, please open a new one. Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.