From d0fbec2ec56d3d1115a9a6d0c53bd64717850117 Mon Sep 17 00:00:00 2001 From: Daniel Bermond Date: Sun, 15 Apr 2018 17:18:47 +0000 Subject: [PATCH] makedepends: switch libmfx to intel-media-sdk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit intel-media-sdk, the open source version of intel-media-server-studio, has now reached an acceptable stable release that can be used here to provide libmfx. This brings 2 important results: 1) The experimental state can be removed from the Intel QSV support, since intel-media-sdk also provides libmfxhw64 and plugins for hardware accelerated decode and encode. 2) Finally we can get rid of the unsecure rpath in ffmpeg binaries! intel-media-sdk is now a makedepend, instead of an optdepend as previously. If fact, I should have switched it to intel-media-server-studio in optdepends some time ago when it has changed to the open source version, but I letted this way while waiting for an acceptable stable release of, which taked a while to happen. Users should remove the libmfx{-git} package and stay only with intel-media-sdk{-git} package, since the former is the complete solution with the dispatcher library (libmfx.a), libmfxhw64 and plugins. Note1: ------ For the proper use of Intel QSV in ffmpeg the user must set the vaapi/libva driver to 'iHD' through the 'LIBVA_DRIVER_NAME' environment variable. The 'iHD' vaapi/libva driver is provided by intel-media-driver{-git} package, which at the current time is already a dependency of intel-media-sdk{-git} package. Setting the vaapi/libva driver to 'iHD' can be done, for example, by uncommenting the proper line in '/etc/profile.d/intel-media.sh'. Note2: ------ intel-media-sdk is currently at a pre-release state. This can lead to bugs when using Intel QSV. Note3: ------ Not all Intel platforms are supported by intel-media-sdk. At the current time, it claims to support only 5th and 6th Generation Intel® Core™ processors (Broadwell and Skylake). For details, please see the MediaSDK and media-driver documentation: - https://github.com/Intel-Media-SDK/MediaSDK/ - https://github.com/intel/media-driver/ Note4: ------ Intel QSV is available in x86_64 systems only. Also in this commit: -------------------- - depends: moved 'libbs2b' and 'sndio' from the AUR section to the official repositories section, since they are now at the [community] official repository. --- .SRCINFO | 9 ++++----- PKGBUILD | 29 +++++++++++++---------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 94d3a05..232672d 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = ffmpeg-full pkgdesc = Record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac) pkgver = 3.4.2 - pkgrel = 5 + pkgrel = 6 url = http://www.ffmpeg.org/ arch = i686 arch = x86_64 @@ -9,7 +9,6 @@ pkgbase = ffmpeg-full makedepends = nasm makedepends = opencl-headers makedepends = blackmagic-decklink-sdk - makedepends = libmfx depends = glibc depends = alsa-lib depends = jack @@ -22,6 +21,7 @@ pkgbase = ffmpeg-full depends = ladspa depends = libass depends = libbluray + depends = libbs2b depends = libcaca depends = celt depends = libcdio-paranoia @@ -70,6 +70,7 @@ pkgbase = ffmpeg-full depends = opencl-icd-loader depends = mesa depends = openssl + depends = sndio depends = sdl2 depends = libx11 depends = zlib @@ -78,13 +79,11 @@ pkgbase = ffmpeg-full depends = libdrm depends = libvdpau depends = chromaprint-fftw - depends = libbs2b depends = flite1-patched depends = libilbc depends = kvazaar depends = openh264 depends = libopenmpt-svn - depends = sndio depends = shine depends = vo-amrwbenc depends = xavs @@ -125,8 +124,8 @@ pkgbase = ffmpeg-full sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36 depends_x86_64 = cuda depends_x86_64 = nvidia-utils - optdepends_x86_64 = intel-media-sdk: for Intel QSV support (experimental) makedepends_x86_64 = vmaf + makedepends_x86_64 = intel-media-sdk pkgname = ffmpeg-full diff --git a/PKGBUILD b/PKGBUILD index e8d9136..bafdca5 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,7 +4,7 @@ pkgname=ffmpeg-full _srcname=ffmpeg pkgver=3.4.2 -pkgrel=5 +pkgrel=6 pkgdesc='Record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)' arch=('i686' 'x86_64') url='http://www.ffmpeg.org/' @@ -13,33 +13,29 @@ depends=( # official repositories: 'glibc' 'alsa-lib' 'jack' 'libpng' 'bzip2' 'frei0r-plugins' 'libgcrypt' 'gmp' 'gnutls' 'ladspa' 'libass' - 'libbluray' 'libcaca' 'celt' 'libcdio-paranoia' 'libdc1394' 'libavc1394' - 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi' 'libgme' 'gsm' 'libiec61883' - 'libmodplug' 'lame' 'opencore-amr' 'openjpeg2' 'opus' 'pulseaudio' + 'libbluray' 'libbs2b' 'libcaca' 'celt' 'libcdio-paranoia' 'libdc1394' + 'libavc1394' 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi' 'libgme' 'gsm' + 'libiec61883' 'libmodplug' 'lame' 'opencore-amr' 'openjpeg2' 'opus' 'pulseaudio' 'librsvg' 'rubberband' 'rtmpdump' 'smbclient' 'snappy' 'libsoxr' 'speex' 'libssh' 'tesseract' 'libtheora' 'twolame' 'v4l-utils' 'vid.stab' 'libvorbis' 'libvpx' 'wavpack' 'libwebp' 'libx264.so' 'x265' 'libxcb' 'xvidcore' 'libxml2' 'zimg' 'zeromq' 'zvbi' 'xz' 'openal' 'opencl-icd-loader' 'mesa' 'openssl' - 'sdl2' 'libx11' 'zlib' 'libomxil-bellagio' 'libva' 'libdrm' 'libvdpau' + 'sndio' 'sdl2' 'libx11' 'zlib' 'libomxil-bellagio' 'libva' 'libdrm' 'libvdpau' # AUR: - 'chromaprint-fftw' 'libbs2b' 'flite1-patched' 'libilbc' 'kvazaar' 'openh264' - 'libopenmpt-svn' 'sndio' 'shine' 'vo-amrwbenc' 'xavs' 'ndi-sdk' 'libmysofa' + 'chromaprint-fftw' 'flite1-patched' 'libilbc' 'kvazaar' 'openh264' + 'libopenmpt-svn' 'shine' 'vo-amrwbenc' 'xavs' 'ndi-sdk' 'libmysofa' 'rockchip-mpp' ) depends_x86_64=('cuda' 'nvidia-utils') -optdepends_x86_64=( - # AUR: - 'intel-media-sdk: for Intel QSV support (experimental)' -) makedepends=( # official repositories: 'nasm' 'opencl-headers' # AUR: - 'blackmagic-decklink-sdk' 'libmfx' + 'blackmagic-decklink-sdk' ) makedepends_x86_64=( # AUR: - 'vmaf' + 'vmaf' 'intel-media-sdk' ) provides=( 'ffmpeg' 'ffmpeg-full-nvenc' 'ffmpeg-nvenc' 'ffmpeg-libfdk_aac' 'ffmpeg-decklink' @@ -79,19 +75,20 @@ build() { then local _libvmaf='--enable-libvmaf' local _cudasdk='--enable-cuda-sdk' + local _libmfx='--enable-libmfx' local _libnpp='--enable-libnpp' local _cflags='-I/opt/cuda/include' local _ldflags='-L/opt/cuda/lib64' + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}/opt/intel/mediasdk/lib64/pkgconfig" + # set path of -lcuda (libcuda.so.x, required by cuda_sdk) # on systems with legacy nvidia drivers if pacman -Qs '^nvidia-340xx-utils' >/dev/null 2>&1 then _ldflags="${_ldflags} -L/usr/lib/nvidia" fi - - _ldflags="${_ldflags} -Wl,-rpath -Wl,/opt/intel/mediasdk/lib64:/opt/intel/mediasdk/plugins" fi msg2 'Running ffmpeg configure script. Please wait...' @@ -197,7 +194,7 @@ build() { $_cudasdk \ --enable-cuvid \ --enable-libdrm \ - --enable-libmfx \ + $_libmfx \ $_libnpp \ --enable-nvenc \ --enable-omx \