Video decode nvv4l2decoder not work in Jetson Thor

Hello, i am developing on Jetson Thor Jetpack 7

Currently, i want to read the MP4 file, but i got the following error. this pipline working fine on Jetson ORIN but it seem not to work on Thor.

Please help me

gst-launch-1.0 filesrc location="test.mp4" ! \
qtdemux ! h264parse ! nvv4l2decoder ! queue ! nvvidconv !  \
video/x-raw,format=BGRx ! fakesink
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE 
Pipeline is PREROLLING ...
Redistribute latency...
Error while setting IOCTL
Invalid control
S_EXT_CTRLS for CUDA_GPU_ID failed
Error while setting IOCTL
Invalid control
S_EXT_CTRLS for CUDA_GPU_ID failed
Cuda failure: status=803
0:00:01.974889443 19094 0xffff74000db0 ERROR          v4l2allocator gstv4l2allocator.c:786:gst_v4l2_allocator_start:<nvv4l2decoder0:pool:sink:allocator> error requesting 2 buffers: Unknown error -1
0:00:01.974905554 19094 0xffff74000db0 ERROR         v4l2bufferpool gstv4l2bufferpool.c:1230:gst_v4l2_buffer_pool_start:<nvv4l2decoder0:pool:sink> we received 0 buffer from device '/dev/nvidia0', we want at least 2
0:00:01.974912332 19094 0xffff74000db0 ERROR             bufferpool gstbufferpool.c:558:gst_buffer_pool_set_active:<nvv4l2decoder0:pool:sink> start failed
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to allocate required memory.
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-v4l2/gst-v4l2/gstv4l2videodec.c(2293): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Buffer pool activation failed
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c(7571): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...

Hi,
We can run the commands successfully on AGX Thor developer kit:

$ rm .cache/gstreamer-1.0/registry.aarch64.bin
$ gst-launch-1.0 videotestsrc num-buffers=200 ! video/x-raw,format=I420,width=1920,height=1080 ! nvvidconv ! nvv4l2h264enc profile=Main ! h264parse ! qtmux ! filesink location=~/FHD.mp4
$ gst-launch-1.0 filesrc location= FHD.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! fpsdisplaysink text-overlay=0 video-sink=fakesink -v

Please give it a try and see if it works.

Hello, thank you for the quick support.

i can run the command

gst-launch-1.0 filesrc location= FHD.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! fpsdisplaysink text-overlay=0 video-sink=fakesink -v

and it working fine in the host machine.

  • however, if i try it inside of the docker enviroment that i am using then i still got the error
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE 
(tid): a6fc8020 CUVIDV4L2: Enter CuvidV4L2_Open Pathname /dev/nvidia 
(tid): a6fc8020 CUVIDV4L2: Creating new context 
(tid): a6fc8020 CUVIDV4L2: Created Context 0xaaaafeb96ef0 at index 0 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is H264 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is VP8 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is VP9 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is H265 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is MPEG2 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is MPEG4 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is MJPEG Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is divx Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is divx Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is AV1 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:2:0 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is NV12 4:2:0 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:2:0 10bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:4:4 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:4:4 10bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:4:4 12bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:2:2 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT Format description is YUV 4:2:2 10/12 bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for OUTPUT 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is H264 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is H265 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is VP8 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is VP9 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is MPEG2 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is MPEG4 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is MJPEG Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is AV1 Encoded bitstream 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:2:0  
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:2:0 10bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:4:4  
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:4:4 10bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:4:4 12bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:2:2 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMT description is YUV 4:2:2 10/12 bit 
(tid): a6fc8020 CUVIDV4L2:  CTX(0xaaaafeb96ef0) ENUM_FMTS for CAPTURE 
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
(tid): 9a2340e0 CUVIDV4L2: Common s_extctls received num_controls received 1 
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4, profile=(string)high, codec_data=(buffer)01640028ffe1001e67640028acd940780227e5c05a80808120000003002000000781e30632c001000568ef86f2c0fdf8f800, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
Redistribute latency...
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)high, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)0:0:5:1, parsed=(boolean)true, lcevc=(boolean)false
(tid): 9a2340e0 CUVIDV4L2: Common s_extctls received num_controls received 1 
(tid): 9a2340e0 CUVIDV4L2: Common: Received control V4L2_CID_MPEG_VIDEO_CUDA_LOW_LATENCY = 0
(tid): 9a2340e0 CUVIDV4L2: Creating the context 0xaaaafeb96ef0 as DECODER context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Initializing decoder context mutext address is 0xffff9001f6d0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Decoder context initialized Blocking 1 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Created Decoder context, DEC Open instances 1 **********
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) SFMT for output plane 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) H264 Decoder 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Setting Maxbitstream size 4194304 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) S_FMT on Output plane successful 
(tid): 9a2340e0 CUVIDV4L2: Subscribing the event EOS 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Subscribing the event resolution change 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Getting control V4L2_CID_MIN_BUFFERS_FOR_OUTPUT 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) REQBUFS for OUTPUT count 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output buffers 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output plane buffers in nvdec context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Released output buffers 
(tid): 9a2340e0 CUVIDV4L2: Unknown IOCTL 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) REQBUFS for OUTPUT count 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output buffers 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output plane buffers in nvdec context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Released output buffers 
(tid): 9a2340e0 CUVIDV4L2: Unknown IOCTL 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) REQBUFS for OUTPUT count 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output buffers 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Releasing output plane buffers in nvdec context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Released output buffers 
(tid): 9a2340e0 CUVIDV4L2: Unknown IOCTL 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_CUDA_MEM_TYPE value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_CUDA_GPU_ID value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Initializing NVDEC context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Unable to get Device count 0003 
Error while setting IOCTL
Invalid control
S_EXT_CTRLS for CUDA_GPU_ID failed
/GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)high, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)0:0:5:1, parsed=(boolean)true, lcevc=(boolean)false
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_CUDA_MEM_TYPE value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_VIDEO_CUDA_GPU_ID value 0 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Initializing NVDEC context 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Unable to get Device count 0003 
Error while setting IOCTL
Invalid control
S_EXT_CTRLS for CUDA_GPU_ID failed
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) REQBUFS for OUTPUT count 2 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Output buffer count 2 
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Allocating output buffers in nvdec context 
Cuda failure: status=803
(tid): 9a2340e0 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) Error in allocating the buffers 
0:00:01.957048626 19177 0xffff8c000b70 ERROR          v4l2allocator gstv4l2allocator.c:786:gst_v4l2_allocator_start:<nvv4l2decoder0:pool:sink:allocator> error requesting 2 buffers: Unknown error -1
0:00:01.957068070 19177 0xffff8c000b70 ERROR         v4l2bufferpool gstv4l2bufferpool.c:1230:gst_v4l2_buffer_pool_start:<nvv4l2decoder0:pool:sink> we received 0 buffer from device '/dev/nvidia0', we want at least 2
0:00:01.957074376 19177 0xffff8c000b70 ERROR             bufferpool gstbufferpool.c:558:gst_buffer_pool_set_active:<nvv4l2decoder0:pool:sink> start failed
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to allocate required memory.
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-v4l2/gst-v4l2/gstv4l2videodec.c(2293): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Buffer pool activation failed
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_SET_POLL_INTERRUPT value 0 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xffff9001f6d0) V4L2_CID_MPEG_SET_POLL_INTERRUPT value 0 
(tid): a6fc8020 CUVIDV4L2: Enter CuvidV4L2_Close fd 0 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Closing DEC context v4l2_close_context 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Destroying the context 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Cleaning up decoder context 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Destroying output plane queues 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Done destroying output plane queues 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Destroying capture plane queues 
(tid): a6fc8020 CUVIDV4L2: DEC_CTX(0xaaaafeb96ef0) Done destroying capture plane queues 
(tid): a6fc8020 CUVIDV4L2: Closed DEC_CTX(0xaaaafeb96ef0) DEC Open instances 0 **********
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
../subprojects/gst-plugins-good/gst/isomp4/qtdemux.c(7571): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...

because the release dockẻ for jetpack R38 is not available yet so i have to build it manually

here is my dockerfile for build new jetpack

# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: MIT
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.

FROM nvcr.io/nvidia/base/ubuntu:noble-20250619
#FROM nvcr.io/nvidia/base/ubuntu:jammy-20250619

#
# Install any utils needed for execution
#
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    bc \
    bzip2 \
    can-utils \
    ca-certificates \
    gnupg2 \
    gstreamer1.0-alsa \
    gstreamer1.0-libav \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-tools \
    i2c-tools \
    iw \
    kbd \
    kmod \
    language-pack-en-base \
    libcanberra-gtk3-module \
    libdrm-dev \
    libgles2 \
    libglvnd-dev \
    libgtk-3-0 \
    libudev1 \
    libvulkan1 \
    libzmq5 \
    mtd-utils \
    parted \
    pciutils \
    python-is-python3 \
    python3 \
    python3-pexpect \
    # python3-distutils \
    python3-numpy \
    sox \
    udev \
    vulkan-tools \
    wget \
    wireless-tools wpasupplicant \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

# Configure nvidia apt repo
#
# Configure NVIDIA apt repo for Jetpack 7 / L4T 38.x
ARG RELEASE="r38.2"
RUN wget -P /etc/apt/trusted.gpg.d https://repo.download.nvidia.com/jetson/jetson-ota-public.asc \
    && wget -P /etc/apt/preferences.d https://repo.download.nvidia.com/jetson/nvidia-repo-pin-600 \
    && echo "deb https://repo.download.nvidia.com/jetson/common ${RELEASE} main" > /etc/apt/sources.list.d/nvidia-l4t-common.list
    #  \
    # && echo "deb https://repo.download.nvidia.com/jetson/t214 ${RELEASE} main" > /etc/apt/sources.list.d/nvidia-l4t-t214.list


#
# Install cuda-toolkit-13-0, cuda-libraries-13-0, and cuda-compat-13-0 for CUDA developer packages
# Install cuda-libraries-13-0 and cuda-compat-13-0 if need CUDA runtime only
#
RUN apt-get update && apt-get install -y --no-install-recommends cuda-toolkit-13-0 cuda-libraries-13-0 \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

RUN apt-get update && apt-get download cuda-compat-13-0 \
    && dpkg-deb -R ./cuda-compat-13-0_*_arm64.deb ./cuda-compat \
    && cp -r ./cuda-compat/usr/local/* /usr/local/ \
    && rm -rf ./cuda-compat-13-0_*_arm64.deb ./cuda-compat

#
# Install nvidia-cudnn-dev for CuDNN developer packages
# Use nvidia-cudnn if need CuDNN runtime only
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    nvidia-cudnn-dev \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

#
# Install nvidia-tensorrt-dev for TensorRT developer packages
# Use nvidia-tensorrt if need TensorRT runtime only
# Note: For JetPack 7, TensorRT may not be available yet - making optional
#
RUN set +e && \
    apt-get update && \
    apt-get install -y --no-install-recommends nvidia-tensorrt-dev || echo "Warning: TensorRT not available, skipping..." && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get clean && \
    set -e

#
# Install nvidia-vpi-dev for VPI developer packages
# Use nvidia-vpi if need VPI runtime only
# Note: For JetPack 7, VPI may have dependency issues - making optional
#
RUN mkdir -p /lib/firmware/
RUN apt-get update && apt-get install -y --no-install-recommends \
    nvidia-vpi-dev \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

#
# Install Multimedia API samples & libs
#
RUN apt-get update && apt-get download nvidia-l4t-jetson-multimedia-api \
    && dpkg-deb -R ./nvidia-l4t-jetson-multimedia-api_*_arm64.deb ./mm-api \
    && cp -r ./mm-api/usr/src/jetson_multimedia_api /usr/src/jetson_multimedia_api \
    && sed -i 's/sudo//' ./mm-api/DEBIAN/postinst \
    && ./mm-api/DEBIAN/postinst \
    && rm -rf ./nvidia-l4t-jetson-multimedia-api_*_arm64.deb ./mm-api

#
# # Install DLA compiler
# #
# RUN apt-get update && apt-get download nvidia-l4t-dla-compiler \
#     && dpkg-deb -R ./nvidia-l4t-dla-compiler_*_arm64.deb ./dla \
#     && cp -r ./dla/usr/lib/* /usr/lib/ \
#     && rm -rf ./nvidia-l4t-dla-compiler_*_arm64.deb ./dla

#
# Install GStreamer
#
RUN apt-get update && apt-get download nvidia-l4t-gstreamer \
    && dpkg-deb -R ./nvidia-l4t-gstreamer_*_arm64.deb ./gstreamer \
    && cp -r ./gstreamer/usr/bin/* /usr/bin/ \
    && cp -r ./gstreamer/usr/lib/* /usr/lib/ \
    && rm -rf ./nvidia-l4t-gstreamer_*_arm64.deb ./gstreamer

# Update libraries
RUN ldconfig

#
# Setup environment variables
#
ENV CUDA_HOME="/usr/local/cuda"
ENV PATH="/usr/local/cuda/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64"

RUN echo "/usr/lib/aarch64-linux-gnu/tegra" >> /etc/ld.so.conf.d/nvidia-tegra.conf && \
    echo "/usr/lib/aarch64-linux-gnu/tegra-egl" >> /etc/ld.so.conf.d/nvidia-tegra.conf

RUN rm /usr/share/glvnd/egl_vendor.d/50_mesa.json
RUN mkdir -p /usr/share/glvnd/egl_vendor.d/ && echo '\
{\
    "file_format_version" : "1.0.0",\
    "ICD" : {\
        "library_path" : "libEGL_nvidia.so.0"\
    }\
}' > /usr/share/glvnd/egl_vendor.d/10_nvidia.json

RUN mkdir -p /usr/share/egl/egl_external_platform.d/ && echo '\
{\
    "file_format_version" : "1.0.0",\
    "ICD" : {\
        "library_path" : "libnvidia-egl-wayland.so.1"\
    }\
}' > /usr/share/egl/egl_external_platform.d/nvidia_wayland.json

RUN ldconfig

ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=all

# Clean up link to nvidia repo
RUN rm /etc/apt/preferences.d/nvidia-repo-pin-600
RUN rm /etc/apt/trusted.gpg.d/jetson-ota-public.asc

i am not sure what is difference between host and docker can cause the above error

Hi,
The docker for Jetson platforms is
NVIDIA L4T JetPack | NVIDIA NGC

However, we have not delivered the docker for Jetpack 7.0 Thor. We will check and update.

Hi @DaneLLL, can you let us know when the Docker will be available as soon as possible? As the delay will negatively effect our UK government customer

@alex247 you can try this updated Dockerfile. I took the JP6 Dockerfile from Github, updated it for ubu2404, GPG, T4L 38.2.x and JP7 packages. trtexec, gstreamer etc all seem to be working. Mostly thanks to ChatGPT and my RAG which has all JP7 packages and config etc. Has quite a few differences from yours.

Build:

docker build --platform=linux/arm64 -t thor-base:jp7 .

Exec:
docker run -it --rm --gpus all --network host thor-base:jp7 /bin/bash

Dockerfile:

FROM nvcr.io/nvidia/base/ubuntu:noble-20250619

ARG DEBIAN_FRONTEND=noninteractive

#
# Base OS + tools (includes binutils family to avoid 404/version issues)
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    bc \
    binutils \
    binutils-aarch64-linux-gnu \
    binutils-common \
    bzip2 \
    can-utils \
    ca-certificates \
    gnupg2 \
    gstreamer1.0-alsa \
    gstreamer1.0-libav \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-tools \
    i2c-tools \
    iw \
    kbd \
    kmod \
    language-pack-en-base \
    libcanberra-gtk3-module \
    libdrm-dev \
    libgles2 \
    libglvnd-dev \
    libgtk-3-0 \
    libudev1 \
    libvulkan1 \
    libzmq5 \
    libsframe1 \
    libbinutils \
    libctf0 \
    libctf-nobfd0 \
    libgprofng0 \
    mtd-utils \
    parted \
    pciutils \
    python-is-python3 \
    python3 \
    python3-pexpect \
    python3-numpy \
    sox \
    udev \
    vulkan-tools \
    wget \
    wireless-tools \
    wpasupplicant \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# NVIDIA Jetson repo key + repo for JetPack 7 / L4T 38.2
#
RUN wget -O /etc/apt/trusted.gpg.d/jetson-ota-public.asc \
      https://repo.download.nvidia.com/jetson/jetson-ota-public.asc \
 && echo "deb https://repo.download.nvidia.com/jetson/common r38.2 main" \
      > /etc/apt/sources.list.d/nvidia-l4t-common.list

#
# CUDA 13.0 toolkit (meta package)
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    cuda-toolkit \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# cuDNN: install concrete CUDA-13 packages, skip meta to avoid conflicts
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    libcudnn9-cuda-13 \
    libcudnn9-dev-cuda-13 \
    libcudnn9-headers-cuda-13 \
    libcudnn9-samples \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# TensorRT meta + dev + Python bindings
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    nvidia-tensorrt \
    nvidia-tensorrt-dev \
    tensorrt \
    tensorrt-libs \
    python3-libnvinfer \
    python3-libnvinfer-dev \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# Make trtexec easy to find in PATH
#
RUN if [ -x /usr/src/tensorrt/bin/trtexec ]; then \
      ln -sf /usr/src/tensorrt/bin/trtexec /usr/local/bin/trtexec; \
    fi

#
# VPI (vision) stack
#
RUN mkdir -p /lib/firmware/ \
 && apt-get update && apt-get install -y --no-install-recommends \
    nvidia-vpi \
    nvidia-vpi-dev \
    vpi4-dev \
    vpi4-samples \
    python3.12-vpi4 \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# OpenCV (NVIDIA meta + dev)
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    libopencv \
    libopencv-dev \
    libopencv-python \
    nvidia-opencv \
    nvidia-opencv-dev \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# Multimedia API
#
RUN apt-get update && apt-get download nvidia-l4t-jetson-multimedia-api \
 && dpkg-deb -R ./nvidia-l4t-jetson-multimedia-api_*_arm64.deb ./mm-api \
 && cp -r ./mm-api/usr/src/jetson_multimedia_api /usr/src/jetson_multimedia_api \
 && sed -i 's/sudo//' ./mm-api/DEBIAN/postinst \
 && ./mm-api/DEBIAN/postinst \
 && rm -rf ./nvidia-l4t-jetson-multimedia-api_*_arm64.deb ./mm-api

#
# L4T GStreamer bits
#
RUN apt-get update && apt-get download nvidia-l4t-gstreamer \
 && dpkg-deb -R ./nvidia-l4t-gstreamer_*_arm64.deb ./gstreamer \
 && cp -r ./gstreamer/usr/bin/* /usr/bin/ \
 && cp -r ./gstreamer/usr/lib/* /usr/lib/ \
 && rm -rf ./nvidia-l4t-gstreamer_*_arm64.deb ./gstreamer

#
# CUDA samples
#
RUN apt-get update && apt-get install -y --no-install-recommends \
    nvidia-cuda-samples \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get clean

#
# Library paths + EGL vendor setup
#
RUN ldconfig \
 && echo "/usr/lib/aarch64-linux-gnu/tegra"      >  /etc/ld.so.conf.d/nvidia-tegra.conf \
 && echo "/usr/lib/aarch64-linux-gnu/tegra-egl" >> /etc/ld.so.conf.d/nvidia-tegra-egl.conf

RUN rm -f /usr/share/glvnd/egl_vendor.d/50_mesa.json \
 && mkdir -p /usr/share/glvnd/egl_vendor.d/ \
 && printf '%s\n' \
    '{' \
    '  "file_format_version" : "1.0.0",' \
    '  "ICD" : {' \
    '    "library_path" : "libEGL_nvidia.so.0"' \
    '  }' \
    '}' \
    > /usr/share/glvnd/egl_vendor.d/10_nvidia.json

RUN mkdir -p /usr/share/egl/egl_external_platform.d/ \
 && printf '%s\n' \
    '{' \
    '  "file_format_version" : "1.0.0",' \
    '  "ICD" : {' \
    '    "library_path" : "libnvidia-egl-wayland.so.1"' \
    '  }' \
    '}' \
    > /usr/share/egl/egl_external_platform.d/nvidia_wayland.json

RUN ldconfig

ENV CUDA_HOME=/usr/local/cuda
ENV PATH="${CUDA_HOME}/bin:${PATH}"
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=all

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