InitNVDEC: Host1x channel open failed

Hi, NVIDIA team
I’m trying to play more than10 videos at the same time. But L4T 36.3.0 can not play them.
When I used R35.5, it was possible to play more than 20 videos.

8 streams are no problem at the same time.
But 9th stream has error.

ubuntu@ubuntu-desktop:~$ gst-launch-1.0 filesrc location=big_buck_bunny_480p_h264.mov ! qtdemux ! h264parse ! nvv4l2decoder ! nvvidconv ! xvimagesink
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE 
Pipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 261 
InitNVDEC: Host1x channel open failed
NVMEDIA: NvMMDecNvVideoCreateParser: 7930: - Failed to get NVDEC Channel handle
NvMMLiteBlockCreate : Block : BlockType = 261 
NVDEC_COMMON: Host1x channel open failed
******tegraH264DecoderCreate 1477 Failed in the API InitNVDEC_safe, calling tegraH264DecoderDestroy ******
NVMMLITE_NVVIDEODEC, <cbBeginSequence, 1776> ErrorInfo = VideoErrorInfo_NvVideoDecoderCreate cctx = 0x680512a0
NVMMLITE_NVVIDEODEC, <NvVideoBufferProcessing:6596> video_parser_parse Unsupported Codec 
Stream format not found, dropping the frame
Stream format not found, dropping the frame
NVMMLITE_NVVIDEODEC, <NvMMLiteNvVideoDecDoWork:7100> NVVIDEO Video Dec Unsupported Stream 
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to process frame.
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-v4l2/gst-v4l2/gstv4l2videodec.c(2279): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Maybe be due to not enough memory or failing driver
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
NVMMLITE_NVVIDEODEC, <NvVideoBufferProcessing:6596> video_parser_parse Unsupported Codec 
NVMMLITE_NVVIDEODEC, <NvVideoBufferProcessing:6596> video_parser_parse Unsupported Codec 
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
../gst/isomp4/qtdemux.c(6749): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: No valid frames decoded before end of stream
Additional debug info:
../gst-libs/gst/video/gstvideodecoder.c(1416): gst_video_decoder_sink_event_default (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
no valid frames found
ERROR: pipeline doesn't want to preroll.
malloc_consolidate(): unaligned fastbin chunk detected
Aborted (core dumped)

Best regard

1 Like

Hi,
For information, do you run 10 decoding tasks in different processes? Or 10 decoding threads in single process?

Run in different processes like this:

for i in {0..10} ; do
  gst-launch-1.0 filesrc location=big_buck_bunny_480p_h264.mov ! qtdemux ! h264parse ! nvv4l2decoder ! nvvidconv ! xvimagesink &
done

8 processes can run, but 2 processes stop with errors.

Hi,
Thanks for the information. We will set up r35.5.0 and r36.3 to check.

Hi DaneLLL,

Did you reproduce the same issue?

Hi,
Yes, we can observe the same issue. Are checking it with our team. Will update when there is further finding.

Hi DaneLLL,

How is the progress on this issue?
Will it take a long time to resolve?

Hi,
It is under investigation and may take some time. As a quick solution, please create multiple processes.

1 Like

Hello! Same problem here:

  • Jetson OrinNX 16GB
  • L4T: nvidia-l4t-core 36.3.0-20240719161631

I’m trying to open multiple rtsp live stream using gstreamer, each on a process, 8 streams works and that’s great, but the 9th stream crashes.

If I use a thread for each stream, it works with at least 12 streams (I have no more rtsp cameras)

Any updates on this issue?

Hi,
After investigation, this is considered to be a constraint. Please have multiple decoding threads in each process instead of creating more than 8 processes.

Hi DaneLLL,

We observe the same issue with orin NX jetpack 6 and nvidia-l4t-core 36.3.0-20240719161631.
For us the 8th stream is failing with the same errors.
Shifting from processes to threads per stream is a change which is too big for us so we’re looking for a different solution.

  1. Can I downgrade nvidia-l4t-core to v35 and it will work on jetpack6?
  2. Is there any other workaround except for using threads?
  3. Is there any planned solution from your side on future release to fix this issue?

Regards,
Oz

Hi,
We have confirmed the constraint is in hardware capability. Please check

Jetson AGX Orin FAQ
Q: On Jetpack 6 release, we cannot launch 8+ decoding/encoding processes.

Same hardware can easily do 12 on jet pack 5.1.2 so it cannot be hardware limitation.
Also your suggested workaround to use threads instead of processes points out it is not a HW limitation.

1 Like

Hi,
We think the implementation of Jetpack 5 may have potential issue. If creating more processes than hardware resources can afford, it may not work properly in certain conditions. Implementation of Jetpack 6 is more from the perspective of hardware capability and returns failure when it exceeds hardware resources.

If hardware resources are limited, I don’t fully understand how using threads instead of processes is relevant.

Regardless, this issue is extremely critical for us, as it affects our production environment. We urgently need an option to bypass it.

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