summaryrefslogtreecommitdiffstats
path: root/multimedia/gst-plugins-bad
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/gst-plugins-bad')
-rw-r--r--multimedia/gst-plugins-bad/README16
-rw-r--r--multimedia/gst-plugins-bad/gst-plugins-bad.SlackBuild26
-rw-r--r--multimedia/gst-plugins-bad/gst-plugins-bad.info6
-rw-r--r--multimedia/gst-plugins-bad/gstreamer1-plugins-bad-lv2-make-it-build-with-fno-common.patch139
4 files changed, 172 insertions, 15 deletions
diff --git a/multimedia/gst-plugins-bad/README b/multimedia/gst-plugins-bad/README
index d71085b6fc..451f8b2f79 100644
--- a/multimedia/gst-plugins-bad/README
+++ b/multimedia/gst-plugins-bad/README
@@ -3,8 +3,14 @@ to the rest. They might be close to being good quality, but they're missing
something - be it a good code review, some documentation, a set of tests,
a real live maintainer, or some actual wide use.
-This optionally depends on OpenAL, TiMidity++, amrnb, amrwb, celt, faac,
-faad2, flite, fluidsynth, gsm, libass, libcdaudio, libdc1394, libdca,
-libkate, liblrdf, libmimic, libmodplug, libmusicbrainz, libofa,
-libquicktime, libwebp, lv2, musepack-tools, opencv, rtmpdump,
-schroedinger, soundtouch, swfdec, and xvidcore.
+This optionally depends on TiMidity++, amrnb, amrwb, celt, faac, faad2
+flite, gsm, libass, libcdaudio, libdc1394, libdca, libfdk-aac, libkate,
+liblrdf, libmimic, libmodplug, libmusicbrainz, libofa, libquicktime,
+lv2, musepack-tools, opencv, rtmpdump, schroedinger, soundtouch, swfdec
+nvidia*driver, and xvidcore.
+
+Note that if you have any version of the nvidia drivers installed the
+script will autodetect them and will try to build its nvdec support,
+requiring the presence on the system of cudatoolkit too: as cudatoolkit
+is *huge*, cuda support is disabled by default but it can be explicitly
+enabled passing the script the variable CUDA=yes
diff --git a/multimedia/gst-plugins-bad/gst-plugins-bad.SlackBuild b/multimedia/gst-plugins-bad/gst-plugins-bad.SlackBuild
index c9cfb68a14..68ca03b29d 100644
--- a/multimedia/gst-plugins-bad/gst-plugins-bad.SlackBuild
+++ b/multimedia/gst-plugins-bad/gst-plugins-bad.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for gst-plugins-bad
-# Copyright 2013-2015 Robby Workman, Tuscaloosa, Alabama, USA
+# Copyright 2013-2020 Robby Workman, Tuscaloosa, Alabama, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,13 +23,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=gst-plugins-bad
-VERSION=${VERSION:-1.6.2}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-1.16.2}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -54,6 +54,12 @@ else
LIBDIRSUFFIX=""
fi
+if [ "${CUDA:-no}" != "no" ]; then
+ cuda=""
+else
+ cuda="--disable-cuda --disable-nvdec --disable-nvenc"
+fi
+
set -e
rm -rf $PKG
@@ -69,8 +75,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Needed for gcc >= 10.x
+patch -p1 < $CWD/gstreamer1-plugins-bad-lv2-make-it-build-with-fno-common.patch
+
+autoreconf -fiv
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS -std=c++11" \
+CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -78,6 +88,8 @@ CXXFLAGS="$SLKCFLAGS -std=c++11" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
+ --disable-examples \
+ $cuda \
--build=$ARCH-slackware-linux
make
diff --git a/multimedia/gst-plugins-bad/gst-plugins-bad.info b/multimedia/gst-plugins-bad/gst-plugins-bad.info
index 553c0edef7..d810dafa50 100644
--- a/multimedia/gst-plugins-bad/gst-plugins-bad.info
+++ b/multimedia/gst-plugins-bad/gst-plugins-bad.info
@@ -1,8 +1,8 @@
PRGNAM="gst-plugins-bad"
-VERSION="1.6.2"
+VERSION="1.16.2"
HOMEPAGE="https://gstreamer.freedesktop.org/"
-DOWNLOAD="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.6.2.tar.xz"
-MD5SUM="7c73bec1d389f0e184ebbbbb9e9f883d"
+DOWNLOAD="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.16.2.tar.xz"
+MD5SUM="ccc7404230afddec723bbdb63c89feec"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/multimedia/gst-plugins-bad/gstreamer1-plugins-bad-lv2-make-it-build-with-fno-common.patch b/multimedia/gst-plugins-bad/gstreamer1-plugins-bad-lv2-make-it-build-with-fno-common.patch
new file mode 100644
index 0000000000..5bbb441108
--- /dev/null
+++ b/multimedia/gst-plugins-bad/gstreamer1-plugins-bad-lv2-make-it-build-with-fno-common.patch
@@ -0,0 +1,139 @@
+From 89d17470cfa9b52402e97cbafdd95242b880856e Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <rishi@gnu.org>
+Date: Fri, 20 Mar 2020 15:49:06 +0100
+Subject: [PATCH] lv2: Make it build with -fno-common
+
+GCC 10 defaults to -fno-common. This means that global variables shared
+across multiple translation units should be declared as 'extern' in
+header files and defined in exactly one C file. See:
+https://gcc.gnu.org/gcc-10/porting_to.html
+
+https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1125
+---
+ ext/lv2/gstlv2.c | 33 ++++++++++++++++++++++++++
+ ext/lv2/gstlv2.h | 62 ++++++++++++++++++++++++------------------------
+ 2 files changed, 64 insertions(+), 31 deletions(-)
+
+diff --git a/ext/lv2/gstlv2.c b/ext/lv2/gstlv2.c
+index 60d502f41af9..7feeee192144 100644
+--- a/ext/lv2/gstlv2.c
++++ b/ext/lv2/gstlv2.c
+@@ -69,6 +69,39 @@ GST_DEBUG_CATEGORY (lv2_debug);
+ #error "Unsupported OS"
+ #endif
+
++LilvWorld *world = NULL;
++LilvNode *atom_class = NULL;
++LilvNode *audio_class = NULL;
++LilvNode *control_class = NULL;
++LilvNode *cv_class = NULL;
++LilvNode *event_class = NULL;
++LilvNode *input_class = NULL;
++LilvNode *output_class = NULL;
++LilvNode *preset_class = NULL;
++LilvNode *state_iface = NULL;
++LilvNode *state_uri = NULL;
++
++LilvNode *integer_prop = NULL;
++LilvNode *toggled_prop = NULL;
++LilvNode *designation_pred = NULL;
++LilvNode *in_place_broken_pred = NULL;
++LilvNode *optional_pred = NULL;
++LilvNode *group_pred = NULL;
++LilvNode *supports_event_pred = NULL;
++LilvNode *label_pred = NULL;
++
++LilvNode *center_role = NULL;
++LilvNode *left_role = NULL;
++LilvNode *right_role = NULL;
++LilvNode *rear_center_role = NULL;
++LilvNode *rear_left_role = NULL;
++LilvNode *rear_right_role = NULL;
++LilvNode *lfe_role = NULL;
++LilvNode *center_left_role = NULL;
++LilvNode *center_right_role = NULL;
++LilvNode *side_left_role = NULL;
++LilvNode *side_right_role = NULL;
++
+ GstStructure *lv2_meta_all = NULL;
+
+ static void
+diff --git a/ext/lv2/gstlv2.h b/ext/lv2/gstlv2.h
+index 177f9b2c19cd..9f7258229445 100644
+--- a/ext/lv2/gstlv2.h
++++ b/ext/lv2/gstlv2.h
+@@ -28,40 +28,40 @@
+
+ #include "gstlv2utils.h"
+
+-LilvWorld *world;
+-LilvNode *atom_class;
+-LilvNode *audio_class;
+-LilvNode *control_class;
+-LilvNode *cv_class;
+-LilvNode *event_class;
+-LilvNode *input_class;
+-LilvNode *output_class;
+-LilvNode *preset_class;
+-LilvNode *state_iface;
+-LilvNode *state_uri;
++extern LilvWorld *world;
++extern LilvNode *atom_class;
++extern LilvNode *audio_class;
++extern LilvNode *control_class;
++extern LilvNode *cv_class;
++extern LilvNode *event_class;
++extern LilvNode *input_class;
++extern LilvNode *output_class;
++extern LilvNode *preset_class;
++extern LilvNode *state_iface;
++extern LilvNode *state_uri;
+
+-LilvNode *integer_prop;
+-LilvNode *toggled_prop;
+-LilvNode *designation_pred;
+-LilvNode *in_place_broken_pred;
+-LilvNode *optional_pred;
+-LilvNode *group_pred;
+-LilvNode *supports_event_pred;
+-LilvNode *label_pred;
++extern LilvNode *integer_prop;
++extern LilvNode *toggled_prop;
++extern LilvNode *designation_pred;
++extern LilvNode *in_place_broken_pred;
++extern LilvNode *optional_pred;
++extern LilvNode *group_pred;
++extern LilvNode *supports_event_pred;
++extern LilvNode *label_pred;
+
+-LilvNode *center_role;
+-LilvNode *left_role;
+-LilvNode *right_role;
+-LilvNode *rear_center_role;
+-LilvNode *rear_left_role;
+-LilvNode *rear_right_role;
+-LilvNode *lfe_role;
+-LilvNode *center_left_role;
+-LilvNode *center_right_role;
+-LilvNode *side_left_role;
+-LilvNode *side_right_role;
++extern LilvNode *center_role;
++extern LilvNode *left_role;
++extern LilvNode *right_role;
++extern LilvNode *rear_center_role;
++extern LilvNode *rear_left_role;
++extern LilvNode *rear_right_role;
++extern LilvNode *lfe_role;
++extern LilvNode *center_left_role;
++extern LilvNode *center_right_role;
++extern LilvNode *side_left_role;
++extern LilvNode *side_right_role;
+
+-GstStructure *lv2_meta_all;
++extern GstStructure *lv2_meta_all;
+
+ void gst_lv2_filter_register_element (GstPlugin *plugin,
+ GstStructure * lv2_meta);
+--
+2.24.1
+