From 1c0e18621626085d77d7d46d9ace819debb9de19 Mon Sep 17 00:00:00 2001 From: rnauber Date: Sun, 15 Oct 2017 01:02:21 +0200 Subject: [PATCH] gstreamer: fix and enable the package (#1622) * gstreamer: make it work with opensles and libcaca, update and enable the packages * gstreamer: fix build in presence of libunwind and clean up * minor stuff * put in preload ffmpeg libs like mpv has --- disabled-packages/gst-plugins-base/build.sh | 6 ---- disabled-packages/gstreamer/build.sh | 6 ---- packages/gst-libav/build.sh | 10 ++++++ .../gst-plugins-bad/build.sh | 3 +- packages/gst-plugins-base/build.sh | 38 ++++++++++++++++++++++ packages/gst-plugins-good/autoplug_libcaca.patch | 11 +++++++ packages/gst-plugins-good/build.sh | 10 ++++++ packages/gst-plugins-ugly/build.sh | 9 +++++ packages/gstreamer/build.sh | 31 ++++++++++++++++++ 9 files changed, 111 insertions(+), 13 deletions(-) delete mode 100644 disabled-packages/gst-plugins-base/build.sh delete mode 100644 disabled-packages/gstreamer/build.sh create mode 100644 packages/gst-libav/build.sh rename {disabled-packages => packages}/gst-plugins-bad/build.sh (82%) create mode 100644 packages/gst-plugins-base/build.sh create mode 100644 packages/gst-plugins-good/autoplug_libcaca.patch create mode 100644 packages/gst-plugins-good/build.sh create mode 100644 packages/gst-plugins-ugly/build.sh create mode 100644 packages/gstreamer/build.sh diff --git a/disabled-packages/gst-plugins-base/build.sh b/disabled-packages/gst-plugins-base/build.sh deleted file mode 100644 index ce74a148..00000000 --- a/disabled-packages/gst-plugins-base/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ -TERMUX_PKG_DESCRIPTION="GStreamer base plug-ins" -TERMUX_PKG_VERSION=1.10.2 -TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${TERMUX_PKG_VERSION}.tar.xz -TERMUX_PKG_DEPENDS="gstreamer" -TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" diff --git a/disabled-packages/gstreamer/build.sh b/disabled-packages/gstreamer/build.sh deleted file mode 100644 index aebfdc79..00000000 --- a/disabled-packages/gstreamer/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ -TERMUX_PKG_DESCRIPTION="Open source multimedia framework" -TERMUX_PKG_VERSION=1.10.2 -TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${TERMUX_PKG_VERSION}.tar.xz -TERMUX_PKG_DEPENDS="glib" -TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-check --disable-tests --disable-examples --disable-benchmarks" diff --git a/packages/gst-libav/build.sh b/packages/gst-libav/build.sh new file mode 100644 index 00000000..43341577 --- /dev/null +++ b/packages/gst-libav/build.sh @@ -0,0 +1,10 @@ +TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="GStreamer libav/ffmpeg wrapper" +TERMUX_PKG_VERSION=1.12.3 +TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_BUILD_IN_SRC=yes +TERMUX_PKG_DEPENDS="gst-plugins-base,ffmpeg" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+="--with-system-libav --disable-android_media" +TERMUX_PKG_SHA256=015ef8cab6f7fb87c8fb42642486423eff3b6e6a6bccdcd6a189f436a3619650 + diff --git a/disabled-packages/gst-plugins-bad/build.sh b/packages/gst-plugins-bad/build.sh similarity index 82% rename from disabled-packages/gst-plugins-bad/build.sh rename to packages/gst-plugins-bad/build.sh index 2d5edc96..b82a22f4 100644 --- a/disabled-packages/gst-plugins-bad/build.sh +++ b/packages/gst-plugins-bad/build.sh @@ -1,11 +1,12 @@ TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ TERMUX_PKG_DESCRIPTION="GStreamer Bad Plug-ins" -TERMUX_PKG_VERSION=1.10.2 +TERMUX_PKG_VERSION=1.12.3 TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_BUILD_IN_SRC=yes TERMUX_PKG_DEPENDS="gst-plugins-base" TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-android_media" +TERMUX_PKG_SHA256=36d059761852bed0f1a7fcd3ef64a8aeecab95d2bca53cd6aa0f08054b1cbfec termux_step_pre_configure() { export GNUSTL_LIBS="-lc" diff --git a/packages/gst-plugins-base/build.sh b/packages/gst-plugins-base/build.sh new file mode 100644 index 00000000..665a5378 --- /dev/null +++ b/packages/gst-plugins-base/build.sh @@ -0,0 +1,38 @@ +TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="GStreamer base plug-ins" +TERMUX_PKG_VERSION=1.12.3 +TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_DEPENDS="gstreamer" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" +TERMUX_PKG_SHA256=d3d37b8489d37fa0018973d850bd2067b98af335fef2fa543ee7d40359e3cea5 + +termux_step_post_make_install () { + for BINARY in gst-play-1.0 gst-discoverer-1.0 gst-device-monitor-1.0 + do + echo $BINARY + local LIBEXEC_BINARY=$TERMUX_PREFIX/libexec/$BINARY + local BIN_BINARY=$TERMUX_PREFIX/bin/$BINARY + local LIB_PATH=/system/lib + local VENDOR_LIB_PATH=/system/vendor/lib + if [ ! "$TERMUX_ARCH_BITS" == "32" ] + then + LIB_PATH+=64 + VENDOR_LIB_PATH+=64 + fi + + mv $BIN_BINARY $LIBEXEC_BINARY + local FFMPEG_LIBS="" lib + for lib in avcodec avfilter avformat avutil postproc swresample swscale; do + if [ -n "$FFMPEG_LIBS" ]; then FFMPEG_LIBS+=":"; fi + FFMPEG_LIBS+="$TERMUX_PREFIX/lib/lib${lib}.so" + done + + cat << EOF > $BIN_BINARY +#!/bin/sh +export LD_PRELOAD=$FFMPEG_LIBS +# Avoid linker errors due to libOpenSLES.so: +LD_LIBRARY_PATH=$LIB_PATH:$VENDOR_LIB_PATH:$TERMUX_PREFIX/lib exec $LIBEXEC_BINARY "\$@" +EOF + chmod +x $BIN_BINARY + done +} diff --git a/packages/gst-plugins-good/autoplug_libcaca.patch b/packages/gst-plugins-good/autoplug_libcaca.patch new file mode 100644 index 00000000..8e9b149a --- /dev/null +++ b/packages/gst-plugins-good/autoplug_libcaca.patch @@ -0,0 +1,11 @@ +--- src/ext/libcaca/gstcacasink.c.orig 2017-10-05 05:57:01.990156123 +0000 ++++ src/ext/libcaca/gstcacasink.c 2017-10-05 06:17:58.320938634 +0000 +@@ -407,7 +407,7 @@ + static gboolean + plugin_init (GstPlugin * plugin) + { +- if (!gst_element_register (plugin, "cacasink", GST_RANK_NONE, ++ if (!gst_element_register (plugin, "cacasink", GST_RANK_PRIMARY, + GST_TYPE_CACASINK)) + return FALSE; + diff --git a/packages/gst-plugins-good/build.sh b/packages/gst-plugins-good/build.sh new file mode 100644 index 00000000..00d174e0 --- /dev/null +++ b/packages/gst-plugins-good/build.sh @@ -0,0 +1,10 @@ +TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="GStreamer Good Plug-ins" +TERMUX_PKG_VERSION=1.12.3 +TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_BUILD_IN_SRC=yes +TERMUX_PKG_DEPENDS="gst-plugins-base,libcaca,libsoup,libjpeg-turbo,libpng" +#TERMUX_PKG_BUILD_DEPENDS="libcaca,libsoup,libjpeg-turbo,libpng" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-android_media --disable-oss --disable-oss4" +TERMUX_PKG_SHA256=13e7f479296891fef5a686438f20ba7d534680becf2269ecc5ee24aa83b45f03 diff --git a/packages/gst-plugins-ugly/build.sh b/packages/gst-plugins-ugly/build.sh new file mode 100644 index 00000000..509e3429 --- /dev/null +++ b/packages/gst-plugins-ugly/build.sh @@ -0,0 +1,9 @@ +TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="GStreamer Ugly Plug-ins" +TERMUX_PKG_VERSION=1.12.3 +TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_BUILD_IN_SRC=yes +TERMUX_PKG_DEPENDS="gst-plugins-base" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-tests --disable-examples" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-android_media" +TERMUX_PKG_SHA256=13e7f479296891fef5a686438f20ba7d534680becf2269ecc5ee24aa83b45f03 \ No newline at end of file diff --git a/packages/gstreamer/build.sh b/packages/gstreamer/build.sh new file mode 100644 index 00000000..2efe36b9 --- /dev/null +++ b/packages/gstreamer/build.sh @@ -0,0 +1,31 @@ +TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="Open source multimedia framework" +TERMUX_PKG_VERSION=1.12.3 +TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_SHA256=d388f492440897f02b01eebb033ca2d41078a3d85c0eddc030cdea5a337a216e +TERMUX_PKG_DEPENDS="glib" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-check --disable-tests --disable-examples --disable-benchmarks --with-unwind=no --with-dw=no" + +termux_step_post_make_install () { + for BINARY in gst-inspect-1.0 gst-stats-1.0 gst-typefind-1.0 gst-launch-1.0 + do + echo $BINARY + local LIBEXEC_BINARY=$TERMUX_PREFIX/libexec/$BINARY + local BIN_BINARY=$TERMUX_PREFIX/bin/$BINARY + local LIB_PATH=/system/lib + if [ ! "$TERMUX_ARCH_BITS" == "32" ] + then + LIB_PATH+=64 + fi + + mv $BIN_BINARY $LIBEXEC_BINARY + + cat << EOF > $BIN_BINARY +#!/bin/sh + +# Avoid linker errors due to libOpenSLES.so: +LD_LIBRARY_PATH=/system/lib64/:$TERMUX_PREFIX/lib exec $LIBEXEC_BINARY "\$@" +EOF + chmod +x $BIN_BINARY + done +} -- 2.11.0