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)
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.
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.
Can I downgrade nvidia-l4t-core to v35 and it will work on jetpack6?
Is there any other workaround except for using threads?
Is there any planned solution from your side on future release to fix this issue?
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.
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.