Error running update_rtpmanager.sh script for Deepstream 7.1 Jetson AGX Orin Dev kit

Hi I followed the instructions here for installing the dependencies for deepstream 7.1 for my agx jetson orin dev kit (64gb) particular this part

Sometimes with RTSP streams the application gets stuck on reaching EOS. This is because of an issue in rtpjitterbuffer component. To fix this issue, a script “update_rtpmanager.sh” at /opt/nvidia/deepstream/deepstream/ has been provided with required details to update gstrtpmanager library. The script should be executed once above mentioned packages are installed as prerequisite.

But when i run the update_rtpmanager.sh script, i keep getting the error below (refer to the full logs below). I have installed the prerequisite packages and migrate glib to version 2.76.6.

log.txt (165.1 KB)

What is causing this and how to resolve it? I came across this thread too and have installed the dependencies with

sudo apt-get -y install libharfbuzz-dev
sudo apt-get -y install libpango1.0-dev

but I am still experiencing the error above.

Hope to get any assistance on this

➜  deepstream-7.1 deepstream-app --version-all
deepstream-app version 7.1.0
DeepStreamSDK 7.1.0
CUDA Driver Version: 12.6
CUDA Runtime Version: 12.6
TensorRT Version: 10.7
cuDNN Version: 9.0
libNVWarp360 Version: 2.0.1d3

There is no error in the log file. I believe the script executed successfully.

Could you provide a complete error log? Or try checking this topic.

It seems you independently upgraded the TRT? In JP-6.2, it should be TRT-10.3.

I dont see the line in /opt/nvidia/deepstream/deepstream/update_rtpmanager.sh

apt-get -y install libglib2.0-dev

this is the file from /opt/nvidia/deepstream/deepstream/update_rtpmanager.sh

#!/bin/bash
################################################################################
# SPDX-FileCopyrightText: Copyright (c) 2023-2024 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.
################################################################################

#Install prerequisites
apt-get -y install python3-pip
pip3 install meson
pip3 install ninja
apt-get -y install libmount-dev
apt-get -y install flex
apt-get -y install flex bison

if [ -d "/tmp/gst-1.20.3/" ]; then
    rm -rf /tmp/gst-1.20.3/
fi

#Build gstreamer and place the rtpmanager library at the required path.
mkdir -p /tmp/gst-1.20.3
pushd /tmp/gst-1.20.3
git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git -b 1.20.3
pushd gstreamer
#Place rtpjitterbuffer_eos_handling.patch at the appropriate location
git apply /opt/nvidia/deepstream/deepstream/rtpjitterbuffer_eos_handling.patch
#Build gstreamer 1,20.3 with the applied fix patch
meson build --buildtype=release -Dbad=disabled -Dugly=disabled -Dexamples=disabled -Dlibav=disabled -Ddevtools=disabled
ninja -C build/
#Place the rtpmanager library at the gstreamer installation path
if [[ $(uname -m) == "aarch64" ]]; then
    cp build/subprojects/gst-plugins-good/gst/rtpmanager/libgstrtpmanager.so /usr/lib/aarch64-linux-gnu/gstreamer-1.0
else
    cp build/subprojects/gst-plugins-good/gst/rtpmanager/libgstrtpmanager.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0
fi

popd
popd
rm -rf /tmp/gst-1.20.3

I can’t run the quickstart here too, i am getting

➜ pwd
/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app

➜ deepstream-app -c source30_1080p_dec_infer-resnet_tiled_display_int8.txt
;
** ERROR: <main:713>: Failed to set pipeline to PAUSED
Quitting
ERROR from sink_sub_bin_sink1: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Debug info: ../libs/gst/base/gstbasesink.c(5878): gst_base_sink_change_state (): /GstPipeline:pipeline/GstBin:processing_bin_0/GstBin:sink_bin/GstBin:sink_sub_bin1/GstNv3dSink:sink_sub_bin_sink1:
Failed to start
App run failed
/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/source30_1080p_dec_infer-resnet_tiled_display_int8.txt
####################################################################################################
# SPDX-FileCopyrightText: Copyright (c) 2018-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
#
# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
# property and proprietary rights in and to this material, related
# documentation and any modifications thereto. Any use, reproduction,
# disclosure or distribution of this material and related documentation
# without an express license agreement from NVIDIA CORPORATION or
# its affiliates is strictly prohibited.
####################################################################################################

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=1
rows=5
columns=6
width=1280
height=720
gpu-id=0
#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
#(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
nvbuf-memory-type=0

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file://../../streams/sample_1080p_h264.mp4
num-sources=15
#drop-frame-interval=2
gpu-id=0
# (0): memtype_device   - Memory type Device
# (1): memtype_pinned   - Memory type Host Pinned
# (2): memtype_unified  - Memory type Unified
cudadec-memtype=0

[source1]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file://../../streams/sample_1080p_h264.mp4
num-sources=15
gpu-id=0
# (0): memtype_device   - Memory type Device
# (1): memtype_pinned   - Memory type Host Pinned
# (2): memtype_unified  - Memory type Unified
cudadec-memtype=0

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink/nv3dsink (Jetson only) 3=File
type=2
sync=1
source-id=0
gpu-id=0
nvbuf-memory-type=0

[sink1]
enable=0
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0
#iframeinterval=10
bitrate=2000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
# set profile only for hw encoder, sw encoder selects profile based on sw-preset
profile=0
output-file=out.mp4
source-id=0

[sink2]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming
type=4
#1=h264 2=h265
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
#sw-preset=1 #for SW enc=(0)None (1)ultrafast (2)superfast (3)veryfast (4)faster
#(5)fast (6)medium (7)slow (8)slower (9)veryslow (10)placebo
sync=0
bitrate=4000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
# set profile only for hw encoder, sw encoder selects profile based on sw-preset
profile=0
# set below properties in case of RTSPStreaming
rtsp-port=8554
udp-port=5400


[osd]
enable=1
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Serif
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
nvbuf-memory-type=0

[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=30
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
## Set muxer output width and height
width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0
## If set to TRUE, system timestamp will be attached as ntp timestamp
## If set to FALSE, ntp timestamp from rtspsrc, if available, will be attached
# attach-sys-ts-as-ntp=1

# config-file property is mandatory for any gie section.
# Other properties are optional and if set will override the properties set in
# the infer config file.
[primary-gie]
enable=1
gpu-id=0
model-engine-file=../../models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b30_gpu0_int8.engine
#Required to display the PGIE labels, should be added even when using config-file
#property
batch-size=30
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=0
#Required by the app for SGIE, when used along with config-file property
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary.txt

[tests]
file-loop=0

I have ran the prerequisite installations successfully before running the update_rtpmanager.sh script

sudo pip3 install meson
sudo pip3 install ninja
git clone https://github.com/GNOME/glib.git
cd glib
git checkout <glib-version-branch>
meson build --prefix=/usr
ninja -C build/
cd build/
sudo ninja install

#pkg-config --modversion glib-2.0 # prints 2.76.6


$ sudo apt install \
libssl3 \
libssl-dev \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstreamer-plugins-base1.0-dev \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev

But I have the same logs in the log.txt file above when i run sudo ./update_rtpmanager.sh script.

What could be causing it?

How can I downgrade TensorRT to 10.3 matching the JP-6.2?

Try re-flashing Jetpack. I followed the steps you described and didn’t encounter any problems.

If you comment out the line update_rtpmanager.sh, does libgstrtpmanager.so exist?

popd
popd
- #rm -rf /tmp/gst-1.20.3
ls /tmp/gst-1.20.3/gstreamer/build/subprojects/gst-plugins-good/gst/rtpmanager/libgstrtpmanager.so

Are you SSHing into ORI to run programs? Try changing the pipeline to fakesink.

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.