diff options
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 |
commit | cae14c099873eede7699a9352a2288b80266ea6d (patch) | |
tree | ff3e3ce03a6f6c563535cf170224895c28a1174c | |
parent | 821d789320869cc59f8db6f2c19a0fc5062d0365 (diff) | |
download | asb-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-x | vlc/build/vlc.SlackBuild | 194 |
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: |