# Maintainer: # Contributor: Mark Wagie # Contributor: Gleb Sinyavskiy # Contributor: Maxime Gauduin # Contributor: Bartłomiej Piotrowski # Contributor: Ionut Biru # Contributor: Tom Newsom # Contributor: Paul Mattal # Documentation: # https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/ # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ pkgname=ffmpeg-cuda pkgver=6.1 pkgrel=2 epoch=1 pkgdesc='Complete solution to record, convert and stream audio and video. Includes cuda support.' arch=(x86_64) url=https://ffmpeg.org/ license=('custom') depends=( alsa-lib aom bzip2 cuda fontconfig fribidi gmp gnutls gsm jack lame libass.so libavc1394 libbluray.so libbs2b.so libdav1d.so libdrm libfreetype.so libgl libiec61883 libmfx libmodplug libpulse librav1e.so libraw1394 librsvg-2.so libsoxr libssh libtheora libva.so libva-drm.so libva-x11.so libvdpau libvidstab.so libvorbisenc.so libvorbis.so libvpx.so libvulkan.so libwebp libx11 libx264.so libx265.so libxcb libxext libxml2 libxv libxvidcore.so libzimg.so ocl-icd opencore-amr openjpeg2 opus sdl2 speex srt svt-av1 v4l-utils vmaf xz zlib ) makedepends=( amf-headers avisynthplus clang ffnvcodec-headers git ladspa mesa nasm opencl-headers vulkan-headers ) optdepends=( 'avisynthplus: AviSynthPlus support' 'intel-media-sdk: Intel QuickSync support' 'ladspa: LADSPA filters' 'nvidia-utils: Nvidia NVDEC/NVENC support' ) provides=( libavcodec.so libavdevice.so libavfilter.so libavformat.so libavutil.so libpostproc.so libswresample.so libswscale.so ffmpeg ) conflicts=('ffmpeg') source=( "git+https://git.ffmpeg.org/ffmpeg.git#commit=d4ff0020b40b524a490cf62eccbd3a318f4c0e58" "add-av_stream_get_first_dts-for-chromium.patch" ) sha256sums=("SKIP" "57e26caced5a1382cb639235f9555fc50e45e7bf8333f7c9ae3d49b3241d3f77") _dir=ffmpeg prepare() { cd ${srcdir} patch -Np0 -i ${srcdir}/add-av_stream_get_first_dts-for-chromium.patch } build() { local _cflags='-I/opt/cuda/include' local _ldflags='-L/opt/cuda/lib64' #local _nvccflags='-gencode arch=compute_52,code=sm_52 -O2' # local _nvccflags='-arch=sm_52 \ # -gencode arch=compute_52,code=sm_52 \ # -gencode arch=compute_53,code=sm_53 \ # -gencode arch=compute_60,code=sm_60 \ # -gencode arch=compute_61,code=sm_61 \ # -gencode arch=compute_62,code=sm_62 \ # -gencode arch=compute_70,code=sm_70 \ # -gencode arch=compute_72,code=sm_72 \ # -gencode arch=compute_75,code=sm_75 \ # -gencode arch=compute_80,code=sm_80 \ # -gencode arch=compute_86,code=sm_86 \ # -gencode arch=compute_87,code=sm_87 \ # -gencode arch=compute_89,code=sm_89 \ # -gencode arch=compute_89,code=compute_89 \ # -O2' cd ${_dir} export PATH="/opt/cuda/bin:$PATH" #--nvccflags="$_nvccflags" \ ./configure \ --prefix=/usr \ --extra-cflags="$_cflags" \ --extra-ldflags="$_ldflags" \ --disable-debug \ --disable-static \ --disable-stripping \ --enable-amf \ --enable-avisynth \ --enable-nonfree \ --enable-cuda-nvcc \ --enable-libnpp \ --enable-lto \ --enable-fontconfig \ --enable-gmp \ --enable-gnutls \ --enable-gpl \ --enable-ladspa \ --enable-libaom \ --enable-libass \ --enable-libbluray \ --enable-libbs2b \ --enable-libdav1d \ --enable-libdrm \ --enable-libfreetype \ --enable-libfribidi \ --enable-libgsm \ --enable-libiec61883 \ --enable-libjack \ --enable-libmfx \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopencore_amrnb \ --enable-libopencore_amrwb \ --enable-libopenjpeg \ --enable-libopus \ --enable-libpulse \ --enable-librav1e \ --enable-librsvg \ --enable-libsoxr \ --enable-libspeex \ --enable-libsrt \ --enable-libssh \ --enable-libsvtav1 \ --enable-libtheora \ --enable-libv4l2 \ --enable-libvidstab \ --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ --enable-libx264 \ --enable-libx265 \ --enable-libxcb \ --enable-libxml2 \ --enable-libxvid \ --enable-libzimg \ --enable-nvdec \ --enable-nvenc \ --enable-opencl \ --enable-opengl \ --enable-shared \ --enable-version3 \ --enable-vulkan make make tools/qt-faststart make doc/ff{mpeg,play}.1 } package() { make DESTDIR="${pkgdir}" -C ${_dir} install install-man install -Dm 755 ${_dir}/tools/qt-faststart "${pkgdir}"/usr/bin/ install -Dm 644 ${_dir}/LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}" }