summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2023-10-17 08:56:40 +0000
committer Eric Hameleers <alien@slackware.com>2023-10-17 08:56:40 +0000
commitcae14c099873eede7699a9352a2288b80266ea6d (patch)
treeff3e3ce03a6f6c563535cf170224895c28a1174c
parent821d789320869cc59f8db6f2c19a0fc5062d0365 (diff)
downloadasb-cae14c099873eede7699a9352a2288b80266ea6d.tar.gz
asb-cae14c099873eede7699a9352a2288b80266ea6d.tar.xz
vlc: update to 3.0.19. Added HDR tone-mapping support via libplacebo.
Added soxr as audio resampling engine. Updated internal libs: dav1d, ffmpeg, libva, shout, upnp, vpx.
-rwxr-xr-xvlc/build/vlc.SlackBuild194
1 files changed, 155 insertions, 39 deletions
diff --git a/vlc/build/vlc.SlackBuild b/vlc/build/vlc.SlackBuild
index c6b18910..6259da23 100755
--- a/vlc/build/vlc.SlackBuild
+++ b/vlc/build/vlc.SlackBuild
@@ -501,6 +501,10 @@
# 3.0.18-1 15/apr/2023 by Eric Hameleers <alien@slackware.com>
# * Update. Also updated internal libraries: bluray, dav1d, ffmpeg,
# glew, libva, speex, upnp, vdpau, vlx and x265.
+# 3.0.19-1 13/oct/2023 by Eric Hameleers <alien@slackware.com>
+# * Update. Added soxr audio-resampler and libplacebo which is
+# required for 4K HDR tone-mapping. Also updated internal
+# libraries: dav1d, ffmpeg, libva, shout, upnp, vpx.
#
# Run 'sh vlc.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -556,12 +560,12 @@ SLACKVER=${SLACKVER:-$(cat /etc/slackware-version| cut -d' ' -f2)}
VLCBRANCH=${VLCBRANCH:-"3.0.x"}
DEFGITURI=${GITURI:-"https://code.videolan.org/videolan/vlc.git"}
-VERSION=${VERSION:-"3.0.18"}
+VERSION=${VERSION:-"3.0.19"}
PKGVERSION=${VERSION}
-#VLCMINOR=${VLCMINOR:-"16"}
+#VLCMINOR=${VLCMINOR:-"19"}
#PKGVERSION=${PKGVERSION:-"${VLCBRANCH}.${VLCMINOR}"}
-DOCS="ABOUT-NLS AUTHORS COPYING HACKING INSTALL NEWS README THANKS"
+DOCS="ABOUT-NLS AUTHORS COPYING COPYING.LIB ChangeLog INSTALL NEWS README THANKS"
NUMJOBS=${NUMJOBS:-"-j$(nproc)"} # Number of parallel jobs for the compiler
@@ -659,7 +663,7 @@ AVC1394=0.5.4
BLURAY=1.3.2
CDDB=1.3.2
CDIO=0.90
-DAV1D=1.1.0
+DAV1D=1.3.0
DC1394=2.2.1
DCA=0.0.7
DSM=0.4.3
@@ -669,7 +673,7 @@ DVDNAV=6.1.1
DVDREAD=6.1.3
DVDCSS=1.4.3
EBML=1.4.2
-FFMPEG=ec47a3b # ffmpeg 4.4 git snapshot 25 Sep 2022
+FFMPEG=4.4.3
FLUID=1.1.6
FRIBIDI=1.0.12
GII=1.0.2
@@ -678,7 +682,7 @@ GOOM=2k4-0
GSM=1.0.16
KATE=0.4.1
LAME=3.100
-LIBVA=2.18.0
+LIBVA=2.20.0
LIVE=2016.11.28
LUA=5.1.5
MATROSKA=1.6.3
@@ -687,11 +691,13 @@ MPCDEC=r481
MPEG2DEC=0.5.1
OPUS=1.3
PCRE2=10.39
+PLACEBO=5.264.1
PROJECTM=2.0.1
PROTOBUF=3.1.0
QT5=5.7.1
RAW1394=2.0.5
-SHOUT=2.4.1
+SHOUT=2.4.6
+SOXR=0.1.3
SPEEX=1.2.1
SPEEXDSP=1.2.1
SRT=1.4.4
@@ -700,9 +706,9 @@ TAGLIB=1.11.1
THEORA=1.1.1
TIGER=0.3.4
TWOLAME=0.4.0
-UPNP=1.14.13
+UPNP=1.14.15
VDPAU=1.5
-VPX=1.13.0
+VPX=1.13.1
X262=20180907
X264=20180907-2245
X265=3.5
@@ -775,8 +781,8 @@ USE[0]="YES"
# ffmpeg libraries
SOURCE[1]="$SRCDIR/sources/ffmpeg-${FFMPEG}.tar.xz"
-#SRCURL[1]="http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=${FFMPEG};sf=tgz"
-SRCURL[1]=""
+SRCURL[1]="https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.xz"
+#SRCURL[1]=""
SRCPAT[1]="NO"
USE[1]="YES"
@@ -1088,35 +1094,48 @@ SRCURL[52]="https://github.com/google/protobuf/releases/download/v${PROTOBUF}/pr
SRCPAT[52]="NO"
USE[52]="YES"
-# PCRE2 library for Qt5Base:
-SOURCE[53]="$SRCDIR/sources/pcre2-${PCRE2}.tar.gz"
-SRCURL[53]="https://ftp.pcre.org/pub/pcre/pcre2-${PCRE2}.tar.gz"
+# libplacebo enables HDR tone mapping in VLC:
+SOURCE[53]="$SRCDIR/sources/libplacebo-${PLACEBO}.tar.gz"
+#SRCURL[53]="https://code.videolan.org/videolan/libplacebo/-/archive/v${PLACEBO}/libplacebo-v${PLACEBO}.tar.gz"
+SRCURL[53]=""
SRCPAT[53]="NO"
-USE[53]="NO"
+USE[53]="YES"
-# Qt5 base libraries:
-SOURCE[54]="$SRCDIR/sources/qtbase-opensource-src-${QT5}.tar.xz"
-SRCURL[54]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtbase-opensource-src-${QT5}.tar.xz"
+# Soxr resampling library (depends on ffmpeg):
+SOURCE[54]="$SRCDIR/sources/soxr-${SOXR}-Source.tar.xz"
+SRCURL[54]="http://downloads.sourceforge.net/project/soxr/soxr-${SOXR}-Source.tar.xz"
SRCPAT[54]="NO"
-USE[54]="NO"
+USE[54]="YES"
-# Qt5 SVG support:
-SOURCE[55]="$SRCDIR/sources/qtsvg-opensource-src-${QT5}.tar.xz"
-SRCURL[55]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtsvg-opensource-src-${QT5}.tar.xz"
+# PCRE2 library for Qt5Base:
+SOURCE[55]="$SRCDIR/sources/pcre2-${PCRE2}.tar.gz"
+SRCURL[55]="https://ftp.pcre.org/pub/pcre/pcre2-${PCRE2}.tar.gz"
SRCPAT[55]="NO"
USE[55]="NO"
-# Qt5 platform-specific APIs for X11:
-SOURCE[56]="$SRCDIR/sources/qtx11extras-opensource-src-${QT5}.tar.xz"
-SRCURL[56]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtx11extras-opensource-src-${QT5}.tar.xz"
+# Qt5 base libraries:
+SOURCE[56]="$SRCDIR/sources/qtbase-opensource-src-${QT5}.tar.xz"
+SRCURL[56]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtbase-opensource-src-${QT5}.tar.xz"
SRCPAT[56]="NO"
USE[56]="NO"
+# Qt5 SVG support:
+SOURCE[57]="$SRCDIR/sources/qtsvg-opensource-src-${QT5}.tar.xz"
+SRCURL[57]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtsvg-opensource-src-${QT5}.tar.xz"
+SRCPAT[57]="NO"
+USE[57]="NO"
+
+# Qt5 platform-specific APIs for X11:
+SOURCE[58]="$SRCDIR/sources/qtx11extras-opensource-src-${QT5}.tar.xz"
+SRCURL[58]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtx11extras-opensource-src-${QT5}.tar.xz"
+SRCPAT[58]="NO"
+USE[58]="NO"
+
# CSS decoding- VLC can do without if you install an external libdvdcss package.
-SOURCE[57]="$SRCDIR/sources/libdvdcss-${DVDCSS}.tar.bz2"
-SRCURL[57]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2"
-SRCPAT[57]="YES"
-USE[57]="YES"
+SOURCE[59]="$SRCDIR/sources/libdvdcss-${DVDCSS}.tar.bz2"
+SRCURL[59]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2"
+SRCPAT[59]="YES"
+USE[59]="YES"
# Use the src_checkout() function if no downloadable tarball exists.
# This function checks out sources from SVN/CVS and creates a tarball of them.
@@ -1248,6 +1267,17 @@ src_checkout() {
&& tar --exclude .git -${TARCOMP}cf ${2} libvpx-${VPX}
rm -rf libvpx-${VPX}
;;
+ 53) # We clone the git of libplacebo including submodules:
+ mkdir libplacebo-${PLACEBO} \
+ && cd libplacebo-${PLACEBO} \
+ && git clone https://code.videolan.org/videolan/libplacebo . \
+ && git checkout tags/v${PLACEBO} -b v${PLACEBO} \
+ && git submodule update --init --recursive \
+ && chown -R root:root . \
+ && cd .. \
+ && tar --exclude .git -${TARCOMP}cf ${2} libplacebo-${PLACEBO}
+ rm -rf libplacebo-${PLACEBO}
+ ;;
*) # Do nothing
;;
esac
@@ -1294,10 +1324,10 @@ if [ "$STATIC_QT5" != "NO" ]; then
echo "**"
echo "** Building with a static QT5..."
echo "**"
- USE[53]="YES"
- USE[54]="YES"
USE[55]="YES"
USE[56]="YES"
+ USE[57]="YES"
+ USE[58]="YES"
fi
# We may not need to download and unpack the ffmpeg sources:
@@ -1628,10 +1658,6 @@ cat $SRCDIR/patches/0001-avcodec-mpeg12dec-don-t-call-hw-end_frame-when-start.pa
2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ffmpeg.log
cat $SRCDIR/patches/0002-avcodec-mpeg12dec-don-t-end-a-slice-without-first_sl.patch | patch -p1 --verbose \
2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ffmpeg.log
-cat $SRCDIR/patches/0001-avcodec-vp9-Do-not-destroy-uninitialized-mutexes-con.patch | patch -p1 --verbose \
- 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ffmpeg.log
-cat $SRCDIR/patches/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch | patch -p1 --verbose \
- 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ffmpeg.log
if pkg-config --exists libopenjp2 1>/dev/null 2>/dev/null ; then
USE_OPENJPEG="--enable-libopenjpeg"
@@ -1671,7 +1697,6 @@ PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
--disable-avdevice \
--disable-avfilter \
--disable-avisynth \
- --disable-avresample \
--disable-bsfs \
--disable-encoder=vorbis \
--disable-decoder=opus \
@@ -1737,8 +1762,8 @@ make install-libs install-headers \
2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ffmpeg.log
# If we compiled vaapi support:
-if [ ! -f $VLCDEPSDIR/usr/include/vaapi.h ]; then
- cp libavcodec/vaapi.h $VLCDEPSDIR/usr/include/
+if ! find $VLCDEPSDIR/usr/include/vaapi*.h 1>/dev/null 2>/dev/null ; then
+ cp libavcodec/vaapi*.h $VLCDEPSDIR/usr/include/
fi
# Add DOCS to the vlcdeps to have it added to vlc package later:
@@ -2466,9 +2491,21 @@ make_shout()
echo -e "**\n** libshout ...\n**"
cd $TMP/tmp-$PRGNAM/libshout-$SHOUT
+pkg_static "shout.pc.in"
+
+touch $OUTPUT/patch-${PRGNAM}_shout.log
# Don't try to pull in openssl:
cat $SRCDIR/patches/libshout_no_openssl.patch | patch -p1 --verbose \
- 2>&1 | tee $OUTPUT/patch-${PRGNAM}_shout.log
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_shout.log
+# Build fixes:
+cat $SRCDIR/patches/libshout_stdio.patch | patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_shout.log
+cat $SRCDIR/patches/libshout_strings.patch | patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_shout.log
+
+# Prevent libtool error:
+autoreconf -vif \
+ 2>&1 | tee $OUTPUT/autoreconf-${PRGNAM}_shout.log
CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \
CPPFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \
@@ -2481,6 +2518,8 @@ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
--enable-speex \
--enable-static \
--disable-shared \
+ --disable-examples \
+ --disable-tools \
--program-prefix= \
--program-suffix= \
--build=$TARGET \
@@ -3789,6 +3828,80 @@ cd -
# -----------------------------------------------------------------------------
+# Compile libplacebo
+# -----------------------------------------------------------------------------
+make_placebo()
+{
+echo -e "**\n** placebo ...\n**"
+cd $TMP/tmp-$PRGNAM/libplacebo-${PLACEBO}
+
+# Our meson is too old but still useable:
+cat $SRCDIR/patches/libplacebo_meson.patch | patch -p0 --verbose \
+ 2>&1 | tee $OUTPUT/patch-${PRGNAM}_placebo.log
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+meson build \
+ -Dbuildtype=release \
+ --default-library=static \
+ --prefix=$VLCDEPSDIR/usr \
+ --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_placebo.log
+# Install libplacebo into a temp location so vlc can pickup the library
+ninja install -C build 2>&1 | tee $OUTPUT/make-${PRGNAM}_placebo.log
+# Add DOCS to the vlcdeps to have it added to vlc package later:
+mkdir -p $VLCDEPSDIR/doc/libplacebo/
+cp LICENSE README.md \
+ $VLCDEPSDIR/doc/libplacebo/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile soxr
+# -----------------------------------------------------------------------------
+make_soxr()
+{
+echo -e "**\n** soxr ...\n**"
+cd $TMP/tmp-$PRGNAM/soxr-${SOXR}-Source
+
+echo > $OUTPUT/patch-${PRGNAM}_soxr.log
+# Find our own ffmpeg instead of the system version:
+cat $SRCDIR/patches/soxr_find_ffmpeg.patch |patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_soxr.log
+# Allow static compilation into vlc:
+cat $SRCDIR/patches/soxr_expose_privatelibs.patch |patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_soxr.log
+
+pkg_static "src/soxr.pc.in"
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+cmake . \
+ -DCMAKE_INSTALL_PREFIX=${VLCDEPSDIR}/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_TESTS=OFF \
+ -DWITH_LSR_BINDINGS=OFF \
+ -DWITH_OPENMP=OFF \
+ -DWITH_AVFFT=ON \
+ -Wno-dev \
+ 2>&1 | tee $OUTPUT/cmake-${PRGNAM}_soxr.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_soxr.log
+# Install soxr into a temp location so vlc can pickup the library
+make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_soxr.log
+
+# Add DOCS to the vlcdeps to have it added to vlc package later:
+mkdir -p $VLCDEPSDIR/doc/soxr/
+cp COPYING* LICENCE NEWS README $VLCDEPSDIR/doc/soxr/ || true
+cd - 1>/dev/null
+}
+
+
+# -----------------------------------------------------------------------------
# Compile qt5 base - for the GUI
# -----------------------------------------------------------------------------
make_qt5base()
@@ -4157,6 +4270,7 @@ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
--enable-shout \
--enable-live555 \
--enable-realrtsp \
+ --enable-soxr \
--enable-speex \
--enable-opus \
--enable-x262 \
@@ -4485,6 +4599,8 @@ else
make_opus
make_ssh2
make_protobuf
+ make_placebo
+ make_soxr
# Visualisations:
# FIXME: getting symbol errors but we need a static libGLEW: