From baa50c2dbf538a838b4dd19cf29b7acb75018410 Mon Sep 17 00:00:00 2001 From: Brad Hards Date: Thu, 15 Apr 2021 17:06:09 +1000 Subject: [PATCH 1/2] feat: add libxml2 to ffmpeg build --- ffmpeg/cppbuild.sh | 147 +++++++++++++++++++++++++++++++++++++++----- ffmpeg/ffmpeg.patch | 13 +++- 2 files changed, 143 insertions(+), 17 deletions(-) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 67f8e0f11c1..44012a209c0 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -8,7 +8,7 @@ if [[ -z "$PLATFORM" ]]; then fi DISABLE="--disable-iconv --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf" -ENABLE="--enable-shared --enable-version3 --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libvpx --enable-libfreetype --enable-libopus" +ENABLE="--enable-shared --enable-version3 --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libvpx --enable-libfreetype --enable-libopus --enable-libxml2" if [[ "$EXTENSION" == *gpl ]]; then # Enable GPL and nonfree modules @@ -19,6 +19,8 @@ fi # DISABLE="--disable-iconv --disable-libxcb --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-everything" # ENABLE="--enable-shared --enable-runtime-cpudetect --enable-libopenh264 --enable-encoder=libopenh264 --enable-encoder=aac --enable-encoder=mjpeg --enable-decoder=h264 --enable-decoder=aac --enable-decoder=mjpeg --enable-parser=h264 --enable-parser=aac --enable-parser=mjpeg --enable-muxer=mp4 --enable-muxer=rtsp --enable-muxer=mjpeg --enable-demuxer=mov --enable-demuxer=rtsp --enable-demuxer=mjpeg --enable-protocol=file --enable-protocol=http --enable-protocol=rtp --enable-protocol=rtmp" +LIBXML_CONFIG="--enable-static --disable-shared --without-python --without-lzma --with-pic" + NASM_VERSION=2.14 ZLIB=zlib-1.2.11 LAME=lame-3.100 @@ -35,6 +37,7 @@ ALSA_VERSION=1.2.4 FREETYPE_VERSION=2.10.4 MFX_VERSION=1.34 NVCODEC_VERSION=11.0.10.0 +XML2=libxml2-2.9.10 FFMPEG_VERSION=4.4 download https://download.videolan.org/contrib/nasm/nasm-$NASM_VERSION.tar.gz nasm-$NASM_VERSION.tar.gz download http://zlib.net/$ZLIB.tar.gz $ZLIB.tar.gz @@ -51,6 +54,7 @@ download https://github.com/webmproject/libvpx/archive/v$VPX_VERSION.tar.gz libv download https://ftp.osuosl.org/pub/blfs/conglomeration/alsa-lib/alsa-lib-$ALSA_VERSION.tar.bz2 alsa-lib-$ALSA_VERSION.tar.bz2 download https://ftp.osuosl.org/pub/blfs/conglomeration/freetype/freetype-$FREETYPE_VERSION.tar.xz freetype-$FREETYPE_VERSION.tar.xz download https://github.com/lu-zero/mfx_dispatch/archive/$MFX_VERSION.tar.gz mfx_dispatch-$MFX_VERSION.tar.gz +download http://xmlsoft.org/sources/$XML2.tar.gz $XML2.tar.gz download https://github.com/FFmpeg/nv-codec-headers/archive/n$NVCODEC_VERSION.tar.gz nv-codec-headers-$NVCODEC_VERSION.tar.gz download http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2 ffmpeg-$FFMPEG_VERSION.tar.bz2 @@ -73,6 +77,7 @@ tar --totals -xzf ../libvpx-$VPX_VERSION.tar.gz tar --totals -xJf ../freetype-$FREETYPE_VERSION.tar.xz tar --totals -xzf ../mfx_dispatch-$MFX_VERSION.tar.gz tar --totals -xzf ../nv-codec-headers-$NVCODEC_VERSION.tar.gz +tar --totals -xzf ../$XML2.tar.gz tar --totals -xjf ../ffmpeg-$FFMPEG_VERSION.tar.bz2 if [[ "${ACLOCAL_PATH:-}" == C:\\msys64\\* ]]; then @@ -121,6 +126,15 @@ case $PLATFORM in make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=arm-linux + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -204,7 +218,7 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION sedinplace 's/unsigned long int/unsigned int/g' libavdevice/v4l2.c - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=arm --extra-cflags="-I../include/ $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=arm --extra-cflags="-I../include/ -I../include/libxml2 $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver make -j $MAKEJ make install ;; @@ -235,6 +249,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=aarch64-linux + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -317,7 +340,7 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION sedinplace 's/unsigned long int/unsigned int/g' libavdevice/v4l2.c - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=aarch64 --extra-cflags="-I../include/ $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=aarch64 --extra-cflags="-I../include/ -I../include/libxml2 $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver make -j $MAKEJ make install ;; @@ -348,6 +371,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=i686-linux + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -427,7 +459,7 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION sedinplace 's/unsigned long int/unsigned int/g' libavdevice/v4l2.c - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=atom --extra-cflags="-I../include/ $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=atom --extra-cflags="-I../include/ -I../include/libxml2 $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver make -j $MAKEJ make install ;; @@ -458,6 +490,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=x86_64-linux + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -536,7 +577,7 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION sedinplace 's/unsigned long int/unsigned int/g' libavdevice/v4l2.c - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=atom --extra-cflags="-I../include/ $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' ./configure --prefix=.. $DISABLE $ENABLE --enable-jni --enable-mediacodec --enable-pthreads --enable-cross-compile --cross-prefix="$ANDROID_PREFIX-" --ar="$AR" --ranlib="$RANLIB" --cc="$CC" --strip="$STRIP" --sysroot="$ANDROID_ROOT" --target-os=android --arch=atom --extra-cflags="-I../include/ -I../include/libxml2 $ANDROID_FLAGS" --extra-ldflags="-L../lib/ $ANDROID_FLAGS" --extra-libs="$ANDROID_LIBS -lz" --disable-symver make -j $MAKEJ make install ;; @@ -563,6 +604,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=i686-linux CFLAGS="-m32 -msse2" + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -644,7 +694,7 @@ EOF cd ../nv-codec-headers-n$NVCODEC_VERSION make install PREFIX=$INSTALL_PATH cd ../ffmpeg-$FFMPEG_VERSION - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm $LIBS" + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m32" --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm $LIBS" make -j $MAKEJ make install ;; @@ -671,6 +721,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=x86_64-linux CFLAGS="-m64" + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -752,7 +811,7 @@ EOF cd ../nv-codec-headers-n$NVCODEC_VERSION make install PREFIX=$INSTALL_PATH cd ../ffmpeg-$FFMPEG_VERSION - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm $LIBS" + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm $LIBS" make -j $MAKEJ make install ;; @@ -793,6 +852,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=arm-linux-gnueabihf + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -902,9 +970,9 @@ EOF USERLAND_PATH="$(which arm-linux-gnueabihf-gcc | grep -o '.*/tools/')../userland" mkdir -p ../lib cp $USERLAND_PATH/build/lib/* ../lib - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-omx --enable-mmal --enable-omx-rpi --enable-pthreads --cc="arm-linux-gnueabihf-gcc" --extra-cflags="-I$USERLAND_PATH/ -I$USERLAND_PATH/interface/vmcs_host/khronos/IL/ -I$USERLAND_PATH/host_applications/linux/libs/bcm_host/include/ -I../include/" --extra-ldflags="-L$USERLAND_PATH/build/lib/ -L../lib/" --extra-libs="-lstdc++ -lasound -lvchiq_arm -lvcsm -lvcos -lpthread -ldl -lz -lm" --enable-cross-compile --arch=armhf --target-os=linux --cross-prefix="arm-linux-gnueabihf-" + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-omx --enable-mmal --enable-omx-rpi --enable-pthreads --cc="arm-linux-gnueabihf-gcc" --extra-cflags="-I$USERLAND_PATH/ -I$USERLAND_PATH/interface/vmcs_host/khronos/IL/ -I$USERLAND_PATH/host_applications/linux/libs/bcm_host/include/ -I../include/ -I../include/libxml2/" --extra-ldflags="-L$USERLAND_PATH/build/lib/ -L../lib/" --extra-libs="-lstdc++ -lasound -lvchiq_arm -lvcsm -lvcos -lpthread -ldl -lz -lm" --enable-cross-compile --arch=armhf --target-os=linux --cross-prefix="arm-linux-gnueabihf-" else - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-omx --enable-mmal --enable-omx-rpi --enable-pthreads --extra-cflags="-I../include/" --extra-ldflags="-L../lib/ -L/opt/vc/lib" --extra-libs="-lstdc++ -lasound -lvchiq_arm -lvcsm -lvcos -lpthread -ldl -lz -lm" + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-omx --enable-mmal --enable-omx-rpi --enable-pthreads --extra-cflags="-I../include/ -I../include/libxml2/" --extra-ldflags="-L../lib/ -L/opt/vc/lib" --extra-libs="-lstdc++ -lasound -lvchiq_arm -lvcsm -lvcos -lpthread -ldl -lz -lm" fi make -j $MAKEJ make install @@ -937,6 +1005,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --host=aarch64-linux-gnu + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -1011,7 +1088,7 @@ EOF make -j $MAKEJ make install cd ../ffmpeg-$FFMPEG_VERSION - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --extra-cflags="$CFLAGS -fno-aggressive-loop-optimizations" --enable-pthreads --cc="aarch64-linux-gnu-gcc" --extra-cflags="-I../include/" --extra-ldflags="-Wl,-z,relro -L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm" --enable-cross-compile --arch=arm64 --target-os=linux --cross-prefix="aarch64-linux-gnu-" + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --extra-cflags="$CFLAGS -fno-aggressive-loop-optimizations" --enable-pthreads --cc="aarch64-linux-gnu-gcc" --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-Wl,-z,relro -L../lib/" --extra-libs="-lstdc++ -lpthread -ldl -lz -lm" --enable-cross-compile --arch=arm64 --target-os=linux --cross-prefix="aarch64-linux-gnu-" make -j $MAKEJ make install ;; @@ -1046,6 +1123,19 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + if [[ "$MACHINE_TYPE" =~ ppc64 ]]; then + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --build=ppc64le-linux CFLAGS="-m64" + else + CC="powerpc64le-linux-gnu-gcc -m64" CXX="powerpc64le-linux-gnu-g++ -m64" ./configure --host=powerpc64le-linux-gnu --prefix=$INSTALL_PATH $LIBXML_CONFIG --build=ppc64le-linux CFLAGS="-m64" + fi + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -1167,10 +1257,10 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION if [[ "$MACHINE_TYPE" =~ ppc64 ]]; then - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl -lz -lm" --disable-altivec + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl -lz -lm" --disable-altivec else echo "configure ffmpeg cross compile" - LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/:/usr/lib/powerpc64le-linux-gnu/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-libxcb --cc="powerpc64le-linux-gnu-gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --enable-cross-compile --target-os=linux --arch=ppc64le-linux --extra-libs="-lstdc++ -lpthread -ldl -lz -lm" --disable-altivec + LDEXEFLAGS='-Wl,-rpath,\$$ORIGIN/' PKG_CONFIG_PATH=../lib/pkgconfig/:/usr/lib/powerpc64le-linux-gnu/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-libxcb --cc="powerpc64le-linux-gnu-gcc -m64" --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-L../lib/" --enable-cross-compile --target-os=linux --arch=ppc64le-linux --extra-libs="-lstdc++ -lpthread -ldl -lz -lm" --disable-altivec fi make -j $MAKEJ make install @@ -1198,6 +1288,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -1264,7 +1363,7 @@ EOF make install cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-macosx.patch - LDEXEFLAGS='-Wl,-rpath,@loader_path/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-indev=avfoundation --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl -lz -lm" + LDEXEFLAGS='-Wl,-rpath,@loader_path/' PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-indev=avfoundation --extra-cflags="-I../include/ -I../include/libxml2" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl -lz -lm" make -j $MAKEJ make install ;; @@ -1288,6 +1387,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv --build=i686-w64-mingw32 CFLAGS="-m32 -msse2" + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -1364,7 +1472,7 @@ EOF cd ../nv-codec-headers-n$NVCODEC_VERSION make install PREFIX=$INSTALL_PATH cd ../ffmpeg-$FFMPEG_VERSION - PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic -lole32 -luuid" + PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m32" --extra-cflags="-DLIBXML_STATIC -I../include/ -I../include/libxml2/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic -lole32 -luuid" make -j $MAKEJ make install ;; @@ -1388,6 +1496,15 @@ EOF make install echo "" echo "--------------------" + echo "Building XML2" + echo "--------------------" + echo "" + cd ../$XML2 + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv --build=x86_64-w64-mingw32 CFLAGS="-m64" + make -j $MAKEJ V=0 + make install + echo "" + echo "--------------------" echo "Building speex" echo "--------------------" echo "" @@ -1464,7 +1581,7 @@ EOF cd ../nv-codec-headers-n$NVCODEC_VERSION make install PREFIX=$INSTALL_PATH cd ../ffmpeg-$FFMPEG_VERSION - PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic -lole32 -luuid" + PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-DLIBXML_STATIC -I../include/ -I../include/libxml2/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic -lole32 -luuid" make -j $MAKEJ make install ;; diff --git a/ffmpeg/ffmpeg.patch b/ffmpeg/ffmpeg.patch index 502877840ae..de86ba6acb0 100644 --- a/ffmpeg/ffmpeg.patch +++ b/ffmpeg/ffmpeg.patch @@ -1,5 +1,5 @@ ---- a/configure -+++ b/configure +--- ffmpeg-4.4/configure 2021-04-09 07:28:39.000000000 +1000 ++++ linux-x86_64/ffmpeg-4.4/configure 2021-04-15 09:28:01.901102055 +1000 @@ -6364,7 +6364,7 @@ enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs enabled fontconfig && enable libfontconfig @@ -85,6 +85,15 @@ require_cpp_condition libx265 x265.h "X265_BUILD >= 70" enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get +@@ -6485,7 +6473,7 @@ + enabled libzvbi && require_pkg_config libzvbi zvbi-0.2 libzvbi.h vbi_decoder_new && + { test_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" || + enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; } +-enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlCheckVersion ++enabled libxml2 && require libxml2 libxml/xmlversion.h xmlCheckVersion -I../include/libxml2 -lxml2 + enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt.h mbedtls_x509_crt_init || + check_pkg_config mbedtls mbedtls mbedtls/ssl.h mbedtls_ssl_init || + check_lib mbedtls mbedtls/ssl.h mbedtls_ssl_init -lmbedtls -lmbedx509 -lmbedcrypto || @@ -6526,9 +6514,9 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl || check_pkg_config openssl openssl openssl/ssl.h SSL_library_init || From ee82008696998fa95b4adc424444d59b8167325e Mon Sep 17 00:00:00 2001 From: Samuel Audet Date: Mon, 19 Apr 2021 10:40:03 +0900 Subject: [PATCH 2/2] Update CHANGELOG.md and fix nits --- CHANGELOG.md | 1 + ffmpeg/cppbuild.sh | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e65b719a6c..c991d0ba933 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ + * Build FFmpeg with libxml2, enabling support for DASH demuxing ([pull #1033](https://github.com/bytedeco/javacpp-presets/pull/1033)) * Add `@MemberGetter` for `av_log_default_callback()` in presets for FFmpeg ([issue #812](https://github.com/bytedeco/javacpp-presets/issues/812)) * Include `cudaGL.h` and `cuda_gl_interop.h` header files in presets for CUDA ([pull #1027](https://github.com/bytedeco/javacpp-presets/pull/1027)) * Add presets for NVIDIA Video Codec SDK 11.0.10 ([pull #1020](https://github.com/bytedeco/javacpp-presets/pull/1020)), PyTorch 1.8.1 ([issue #623](https://github.com/bytedeco/javacpp-presets/issues/623)), ModSecurity ([pull #1012](https://github.com/bytedeco/javacpp-presets/pull/1012)) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 44012a209c0..1006172bb09 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -19,7 +19,7 @@ fi # DISABLE="--disable-iconv --disable-libxcb --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-everything" # ENABLE="--enable-shared --enable-runtime-cpudetect --enable-libopenh264 --enable-encoder=libopenh264 --enable-encoder=aac --enable-encoder=mjpeg --enable-decoder=h264 --enable-decoder=aac --enable-decoder=mjpeg --enable-parser=h264 --enable-parser=aac --enable-parser=mjpeg --enable-muxer=mp4 --enable-muxer=rtsp --enable-muxer=mjpeg --enable-demuxer=mov --enable-demuxer=rtsp --enable-demuxer=mjpeg --enable-protocol=file --enable-protocol=http --enable-protocol=rtp --enable-protocol=rtmp" -LIBXML_CONFIG="--enable-static --disable-shared --without-python --without-lzma --with-pic" +LIBXML_CONFIG="--enable-static --disable-shared --without-iconv --without-python --without-lzma --with-pic" NASM_VERSION=2.14 ZLIB=zlib-1.2.11 @@ -1292,7 +1292,7 @@ EOF echo "--------------------" echo "" cd ../$XML2 - ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG make -j $MAKEJ V=0 make install echo "" @@ -1391,7 +1391,7 @@ EOF echo "--------------------" echo "" cd ../$XML2 - ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv --build=i686-w64-mingw32 CFLAGS="-m32 -msse2" + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --build=i686-w64-mingw32 CFLAGS="-m32 -msse2" make -j $MAKEJ V=0 make install echo "" @@ -1500,7 +1500,7 @@ EOF echo "--------------------" echo "" cd ../$XML2 - ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --without-iconv --build=x86_64-w64-mingw32 CFLAGS="-m64" + ./configure --prefix=$INSTALL_PATH $LIBXML_CONFIG --build=x86_64-w64-mingw32 CFLAGS="-m64" make -j $MAKEJ V=0 make install echo ""