full static build not possible with nvcodec plugin due to nvrtc runtime dependency
Describe your issue
We are trying to achieve a full static build as described in here: https://gitlab.freedesktop.org/gstreamer/gstreamer#static-build to have a dependency free deployment of our application. This is not possible because the nvcodec plugins uses the dynamic version of the nvrtc library, independent of gstreamer static or dynamic build.
Expected Behavior
In case of a static build, no runtime dependencies are expected.
Observed Behavior
nvcodec uses the nvrtc dynamic library.
Setup
- Operating System: Linux (Ubuntu)
- Device: Computer
- GStreamer Version: 1.24.4
-
Command line:
gst-launch-1.0 videotestsrc num-buffers=600 ! video/x-raw,width=1600,height=1200,framerate=60/1,format=NV12 ! cudaupload ! nvcudah264enc const-quality=23 ! h264parse ! mp4mux ! filesink location=/tmp/video.mp4
Steps to reproduce the bug
- open terminal
- build gstreamer static using:
meson setup --reconfigure ../build \ --prefix=/opt/static-gstreamer-1.0 \ --buildtype=release \ --strip \ --default-library=static \ --wrap-mode=forcefallback \ -Dgst-full-target-type=static_library \ -Dauto_features=disabled \ -Dbase=enabled \ -Dgood=enabled \ -Dbad=enabled \ -Dtools=enabled \ -Dgst-full-libraries=app,video,player,cuda \ -Dgst-full-elements=coreapp,video,player,cuda \ -Dgst-plugins-base:app=enabled \ -Dgst-plugins-good:isomp4=enabled \ -Dgst-plugins-good:multifile=enabled \ -Dgst-plugins-bad:videoparsers=enabled \ -Dgst-plugins-bad:nvcodec=enabled
- deploy/copy gst-launch-1.0 to a machine where no cuda toolkit is installed
- run
gst-launch-1.0 videotestsrc num-buffers=600 ! video/x-raw,width=1600,height=1200,framerate=60/1,format=NV12 ! cudaupload ! nvcudah264enc const-quality=23 ! h264parse ! mp4mux ! filesink location=/tmp/video.mp4
- gst-launch-1.0 fails because it cannot load libnvrtc.so
How reproducible is the bug?
The reproducibility of the bug is Always.
Screenshots if relevant
Solutions you have tried
deploy the whole big toolkit to embedded device!