| # Maintainer: Alexey Pavlov <Alexpux@gmail.com> |
| # Contributor: Zach Bacon <11doctorwhocanada@gmail.com> |
| # Contributor: wirx6 <wirx654@gmail.com> |
| # Contributor: Ray Donnelly <mingw.android@gmail.com> |
| |
| _realname=ffmpeg |
| pkgbase="mingw-w64-${_realname}" |
| pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" |
| pkgver=4.4 |
| pkgrel=6 |
| pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| url="https://ffmpeg.org/" |
| license=('GPL') |
| options=('staticlibs' 'strip') |
| depends=("${MINGW_PACKAGE_PREFIX}-aom" |
| "${MINGW_PACKAGE_PREFIX}-bzip2" |
| "${MINGW_PACKAGE_PREFIX}-celt" |
| "${MINGW_PACKAGE_PREFIX}-frei0r-plugins" |
| "${MINGW_PACKAGE_PREFIX}-fontconfig" |
| "${MINGW_PACKAGE_PREFIX}-dav1d" |
| "${MINGW_PACKAGE_PREFIX}-gnutls" |
| "${MINGW_PACKAGE_PREFIX}-gsm" |
| "${MINGW_PACKAGE_PREFIX}-lame" |
| "${MINGW_PACKAGE_PREFIX}-libass" |
| "${MINGW_PACKAGE_PREFIX}-libbluray" |
| "${MINGW_PACKAGE_PREFIX}-libcaca" |
| "${MINGW_PACKAGE_PREFIX}-libexif" |
| "${MINGW_PACKAGE_PREFIX}-libmfx" |
| "${MINGW_PACKAGE_PREFIX}-libmodplug" |
| "${MINGW_PACKAGE_PREFIX}-libsoxr" |
| "${MINGW_PACKAGE_PREFIX}-libtheora" |
| "${MINGW_PACKAGE_PREFIX}-libvorbis" |
| "${MINGW_PACKAGE_PREFIX}-libvpx" |
| "${MINGW_PACKAGE_PREFIX}-libwebp" |
| "${MINGW_PACKAGE_PREFIX}-libxml2" |
| "${MINGW_PACKAGE_PREFIX}-openal" |
| "${MINGW_PACKAGE_PREFIX}-opencore-amr" |
| "${MINGW_PACKAGE_PREFIX}-openjpeg2" |
| "${MINGW_PACKAGE_PREFIX}-opus" |
| "${MINGW_PACKAGE_PREFIX}-rtmpdump" |
| "${MINGW_PACKAGE_PREFIX}-SDL2" |
| "${MINGW_PACKAGE_PREFIX}-speex" |
| "${MINGW_PACKAGE_PREFIX}-srt" |
| "${MINGW_PACKAGE_PREFIX}-vulkan" |
| "${MINGW_PACKAGE_PREFIX}-x264" |
| "${MINGW_PACKAGE_PREFIX}-x265" |
| "${MINGW_PACKAGE_PREFIX}-xvidcore" |
| "${MINGW_PACKAGE_PREFIX}-zlib") |
| makedepends=("${MINGW_PACKAGE_PREFIX}-dlfcn" |
| "${MINGW_PACKAGE_PREFIX}-gcc" |
| "${MINGW_PACKAGE_PREFIX}-pkg-config" |
| "${MINGW_PACKAGE_PREFIX}-amf-headers" |
| "${MINGW_PACKAGE_PREFIX}-ffnvcodec-headers" |
| "${MINGW_PACKAGE_PREFIX}-nasm") |
| source=(https://ffmpeg.org/releases/${_realname}-${pkgver}.tar.xz{,.asc} |
| "0005-Win32-Add-path-relocation-to-frei0r-plugins-search.patch") |
| validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') |
| sha256sums=('06b10a183ce5371f915c6bb15b7b1fffbe046e8275099c96affc29e17645d909' |
| 'SKIP' |
| 'b32cad81226d8a72d99fc9cb509acb6a0533378bd351da65391945d7e0e81746') |
| |
| prepare() { |
| cd "${srcdir}/${_realname}-${pkgver}" |
| rm -f libavfilter/pathtools.{c,h} || true |
| |
| patch -p1 -i "${srcdir}/0005-Win32-Add-path-relocation-to-frei0r-plugins-search.patch" |
| } |
| |
| build() { |
| # Fix using SRT headers |
| CFLAGS+=" -DWIN32" |
| CXXFLAGS+=" -DWIN32" |
| |
| local common_config |
| common_config=( |
| --disable-debug |
| --enable-amf |
| --enable-dxva2 |
| --enable-d3d11va |
| --enable-fontconfig |
| --enable-frei0r |
| --enable-gnutls |
| --enable-gpl |
| --enable-libaom |
| --enable-libass |
| --enable-libbluray |
| --enable-libcaca |
| --enable-libcelt |
| --enable-libdav1d |
| --enable-libfreetype |
| --enable-libgsm |
| --enable-libmfx |
| --enable-libmodplug |
| --enable-libmp3lame |
| --enable-libopencore_amrnb |
| --enable-libopencore_amrwb |
| --enable-libopenjpeg |
| --enable-libopus |
| --enable-librtmp |
| --enable-libsoxr |
| --enable-libspeex |
| --enable-libsrt |
| --enable-libtheora |
| --enable-libvorbis |
| --enable-libx264 |
| --enable-libx265 |
| --enable-libxvid |
| --enable-libvpx |
| --enable-libwebp |
| --enable-libxml2 |
| --enable-nvenc |
| --enable-openal |
| --enable-pic |
| --enable-postproc |
| --enable-runtime-cpudetect |
| --enable-swresample |
| --enable-version3 |
| --enable-vulkan |
| --enable-zlib |
| --disable-doc |
| ) |
| for _variant in -static -shared; do |
| [[ -d "${srcdir}/build-${MINGW_CHOST}${_variant}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}${_variant}" |
| mkdir -p "${srcdir}/build-${MINGW_CHOST}${_variant}" && cd "${srcdir}/build-${MINGW_CHOST}${_variant}" |
| if [[ ${_variant} == -static ]]; then |
| ENABLE_VARIANT=--enable-static |
| else |
| ENABLE_VARIANT=--enable-shared |
| fi |
| CC=${MINGW_PREFIX}/bin/gcc \ |
| CXX=${MINGW_PREFIX}/bin/g++ \ |
| ../${_realname}-${pkgver}/configure \ |
| --prefix=${MINGW_PREFIX} \ |
| --target-os=mingw32 \ |
| --arch=${CARCH%%-*} \ |
| "${common_config[@]}" \ |
| --logfile=config.log \ |
| ${ENABLE_VARIANT} || |
| { |
| cat config.log |
| exit 1 |
| } |
| make VERBOSE=1 |
| done |
| } |
| |
| check() { |
| for _variant in -static -shared; do |
| cd "${srcdir}/build-${MINGW_CHOST}${_variant}" |
| # workaround for conflict with SDL main(), use it if you have SDL installed |
| # make check CC_C="-c -Umain" |
| make check VERBOSE=1 || true |
| done |
| } |
| |
| package() { |
| for _variant in -static -shared; do |
| cd "${srcdir}/build-${MINGW_CHOST}${_variant}" |
| make DESTDIR="${pkgdir}" install |
| done |
| |
| rm -f ${pkgdir}/${MINGW_PREFIX}/lib/*.def |
| rm -f ${pkgdir}/${MINGW_PREFIX}/bin/*.lib |
| |
| #find ${pkgdir}${MINGW_PREFIX}/bin -type f -name "*.exe" -exec objcopy --subsystem console {} \; |
| |
| local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX}) |
| find ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig -name *.pc -exec sed -i -e"s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" {} \; |
| } |