Skip to content

Instantly share code, notes, and snippets.

@robcowie
Created July 19, 2023 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robcowie/b0363421b288faad14dcbba0217cc4ab to your computer and use it in GitHub Desktop.
Save robcowie/b0363421b288faad14dcbba0217cc4ab to your computer and use it in GitHub Desktop.
Coming Gstreamer in Nvidia l4t Deepstream 6.2 Container (non-functional)
cd ~
# Copy nv* gstreamer elements
mkdir nvgst
cp /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnv* ./nvgst/
# Dependency dir
mkdir -p /build
# Upgrade packages and install missing dependencies
# Really?
apt-get update
apt autoremove -y
# apt-get -f install
apt-get upgrade -y
# Install build tools
# apt-get install -y ninja-build meson build-essential libglib2.0-dev liborc-0.4-dev
apt-get install -y libx265-dev pkg-config libcairo2-dev libgirepository1.0-dev python3-dev wget curl ninja-build cmake flex gettext bison build-essential libglib2.0-dev liborc-0.4-dev
python -m pip install -U pip wheel
pip install --user meson gitlint
# Meson is installed in /usr/local/bin
export PATH=$PATH:/root/.local/bin
# Install newer glib
mkdir -p /build/glib
cd /build/glib
wget https://download.gnome.org/sources/glib/2.77/glib-2.77.0.tar.xz -O glib.tar.xz
tar -xvf glib.tar.xz
cd glib-2.77.0
mkdir build
# meson setup --prefix=/usr -Dman=false build
meson setup --reconfigure --prefix=/usr/local -Dman=false build
ninja -C build
ninja install -C build
ldconfig
# libtoolize
# Install Rust
# curl https://sh.rustup.rs -sSf | sh -s -- -y
# TODO: Remove it again after gstreamer compilation
# Remove existing gstreamer
apt-get remove gstreamer1.0* -y
rm /usr/lib/aarch64-linux-gnu/gstreamer-1.0/ -r
rm -rf /usr/lib/gst*
rm -rf /usr/bin/gst*
rm -rf /usr/include/gstreamer-1.0
apt-get remove --purge -y "*orc*"
# Build gstreamer
mkdir -p /build/gst && cd /build/gst
export GIT_SSL_NO_VERIFY=1
git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git
git checkout '1.22.4'
# meson setup -Dlibav=disabled -Dpython=enabled -Dgpl=enabled builddir
# meson setup -Ddoc=disabled -Dtests=disabled -Dexamples=disabled -Dges=disabled -Dgst-examples:*=disabled -Ddevtools=disabled -Dlibav=disabled -Dpython=enabled -Dgpl=enabled builddir
meson setup -Dgst-devtools:cairo=disabled -Dintrospection=enabled -Dtools=enabled -Drs=enabled -Dgst-plugins-good:qt5=disabled -Dgst-plugins-good:ogg=disabled -Dgst-plugins-good:opus=disabled -Ddoc=disabled -Dtests=disabled -Dexamples=disabled -Dges=disabled -Dgst-examples=disabled -Ddevtools=disabled -Dlibav=disabled -Dpython=enabled -Dgpl=enabled build
meson setup --prefix=/usr -Dbuildtype=release -Dgst-plugins-base:gl_winsys=egl -Ddoc=disabled -Dtests=disabled -Dexamples=disabled -Dges=disabled -Dgst-examples:*=disabled -Ddevtools=disabled build
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu
export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
# --wrap-mode=forcefallback \
meson setup \
--reconfigure \
--prefix=/usr/local \
-Dgst-devtools:cairo=disabled \
-Dintrospection=enabled \
-Dtools=enabled \
-Drs=disabled \
-Dgst-plugins-good:qt5=disabled \
-Dgst-plugins-good:lame=disabled \
-Dgst-plugins-good:audio*=disabled \
-Dgst-plugins-good:id3demux=disabled \
-Dgst-plugins-good:wav*=disabled \
-Dgst-plugins-base:pango=disabled \
-Dgst-plugins-base:ogg=disabled \
-Dgst-plugins-base:vorbis=disabled \
-Dgst-plugins-base:opus=disabled \
-Dgst-plugins-base:audio*=disabled \
-Dgst-plugins-bad:x265=enabled \
-Dgst-plugins-bad:id3tag=disabled \
-Dgst-plugins-bad:aiff=disabled \
-Dgst-plugins-bad:midi=disabled \
-Dgst-plugins-bad:freeverb=disabled \
-Dgst-plugins-bad:audio*=disabled \
-Dgst-plugins-ugly:dvd*=disabled \
-Ddoc=disabled \
-Dtests=disabled \
-Dexamples=disabled \
-Dges=disabled \
-Dgst-examples=disabled \
-Ddevtools=disabled \
-Dlibav=disabled \
-Dpython=enabled \
-Dgpl=enabled \
build
ninja -C build
meson install -C build
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment