diff --git a/.SRCINFO b/.SRCINFO index ced09ae..f782a31 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = ffmpeg-full pkgdesc = Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac) - pkgver = 4.1.4 + pkgver = 4.2 pkgrel = 1 url = https://www.ffmpeg.org/ arch = x86_64 @@ -22,11 +22,13 @@ pkgbase = ffmpeg-full depends = ladspa depends = libass depends = aom + depends = aribb24 depends = libbluray depends = libbs2b depends = libcaca depends = celt depends = libcdio-paranoia + depends = dav1d depends = libdc1394 depends = libavc1394 depends = libfdk-aac @@ -100,8 +102,8 @@ pkgbase = ffmpeg-full depends = vo-amrwbenc depends = xavs depends = xavs2 - depends = ndi-sdk depends = libmysofa + depends = pocketsphinx depends = intel-media-sdk depends = rockchip-mpp depends = intel-svt-hevc @@ -118,22 +120,20 @@ pkgbase = ffmpeg-full provides = libswresample.so provides = ffmpeg conflicts = ffmpeg - source = https://ffmpeg.org/releases/ffmpeg-4.1.4.tar.xz - source = https://ffmpeg.org/releases/ffmpeg-4.1.4.tar.xz.asc - source = ffmpeg-full-add-intel-svt-hevc-1.3.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.3.0/ffmpeg_plugin/0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch - source = ffmpeg-full-add-intel-svt-hevc-docs-1.3.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.3.0/ffmpeg_plugin/0002-doc-Add-libsvt_hevc-encoder-docs.patch + source = https://ffmpeg.org/releases/ffmpeg-4.2.tar.xz + source = https://ffmpeg.org/releases/ffmpeg-4.2.tar.xz.asc + source = ffmpeg-full-add-intel-svt-hevc-1.4.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.4.0/ffmpeg_plugin/0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch + source = ffmpeg-full-add-intel-svt-hevc-docs-1.4.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.4.0/ffmpeg_plugin/0002-doc-Add-libsvt_hevc-encoder-docs.patch source = ffmpeg-full-add-intel-svt-av1-0.6.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-AV1/v0.6.0/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1-with-svt-hevc.patch source = ffmpeg-full-add-intel-svt-vp9-gce24589.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-VP9/ce245894c6fc1c5d1439c41a7dda8d6dc61784c4/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-vp9-with-svt-hevc-av1.patch - source = ffmpeg-full-decklink-sdk-11.patch source = LICENSE validpgpkeys = FCF986EA15E6E293A5644F10B4322F04D67658D8 - sha256sums = f1f049a82fcfbf156564e73a3935d7e750891fab2abf302e735104fd4050a7e1 + sha256sums = 023f10831a97ad93d798f53a3640e55cd564abfeba807ecbe8524dac4fedecd5 sha256sums = SKIP - sha256sums = cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d - sha256sums = 516c5a1b3ab6dc444e2270a1bae90455838fc3b7e3a18de37d7d63e25e79493d + sha256sums = d9bd8345ff994c26d5174759d460c723e92012139e29dd015fe83537e29a9554 + sha256sums = 295220f498680d893bec525321e657dc3cdb98080a7117d1f575cd0508996a0e sha256sums = 102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c sha256sums = 7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7 - sha256sums = 96500257c72c664a9e7417d9aee3d0b2a4436f836e9733dcf1c9c30926b642df sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36 pkgname = ffmpeg-full diff --git a/PKGBUILD b/PKGBUILD index 31514c2..1a9864d 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,12 +1,12 @@ # Maintainer : Daniel Bermond < gmail-com: danielbermond > # Contributor: Iacopo Isimbaldi -_svt_hevc_ver='1.3.0' +_svt_hevc_ver='1.4.0' _svt_av1_ver='0.6.0' _svt_vp9_ver='ce245894c6fc1c5d1439c41a7dda8d6dc61784c4' pkgname=ffmpeg-full -pkgver=4.1.4 +pkgver=4.2 pkgrel=1 pkgdesc='Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)' arch=('x86_64') @@ -16,20 +16,21 @@ depends=( # official repositories: 'glibc' 'alsa-lib' 'jack' 'libpng' 'bzip2' 'frei0r-plugins' 'libgcrypt' 'gmp' 'gnutls' 'ladspa' 'libass' 'aom' - 'libbluray' 'libbs2b' 'libcaca' 'celt' 'libcdio-paranoia' 'libdc1394' - 'libavc1394' 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi' 'libgme' 'gsm' - 'libiec61883' 'lensfun' 'libmodplug' 'lame' 'opencore-amr' 'openjpeg2' 'opus' - 'pulseaudio' 'librsvg' 'rubberband' 'rtmpdump' 'snappy' 'libsoxr' - 'speex' 'srt' 'libssh' 'tensorflow' 'tesseract' 'libtheora' 'twolame' - 'v4l-utils' 'vid.stab' 'libvorbis' 'libvpx' 'wavpack' 'libwebp' 'libx264.so' - 'x265' 'libxcb' 'xvidcore' 'libxml2' 'zimg' 'zeromq' 'zvbi' 'lv2' 'lilv' 'xz' - 'openal' 'ocl-icd' 'libgl' 'sndio' 'sdl2' 'vapoursynth' 'libxv' 'libx11' - 'libxext' 'zlib' 'cuda' 'libomxil-bellagio' 'libva' 'libdrm' 'libvdpau' + 'aribb24' 'libbluray' 'libbs2b' 'libcaca' 'celt' 'libcdio-paranoia' 'dav1d' + 'libdc1394' 'libavc1394' 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi' + 'libgme' 'gsm' 'libiec61883' 'lensfun' 'libmodplug' 'lame' 'opencore-amr' + 'openjpeg2' 'opus' 'pulseaudio' 'librsvg' 'rubberband' 'rtmpdump' 'snappy' + 'libsoxr' 'speex' 'srt' 'libssh' 'tensorflow' 'tesseract' 'libtheora' + 'twolame' 'v4l-utils' 'vid.stab' 'libvorbis' 'libvpx' 'wavpack' 'libwebp' + 'libx264.so' 'x265' 'libxcb' 'xvidcore' 'libxml2' 'zimg' 'zeromq' 'zvbi' + 'lv2' 'lilv' 'xz' 'openal' 'ocl-icd' 'libgl' 'sndio' 'sdl2' 'vapoursynth' + 'libxv' 'libx11' 'libxext' 'zlib' 'cuda' 'libomxil-bellagio' 'libva' + 'libdrm' 'libvdpau' # AUR: - 'chromaprint-fftw' 'codec2' 'davs2' 'flite1-patched' 'libilbc' 'libklvanc-git' - 'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'vo-amrwbenc' 'xavs' 'xavs2' - 'ndi-sdk' 'libmysofa' 'intel-media-sdk' 'rockchip-mpp' 'intel-svt-hevc' - 'intel-svt-av1' 'svt-vp9-git' + 'chromaprint-fftw' 'codec2' 'davs2' 'flite1-patched' 'libilbc' + 'libklvanc-git' 'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'vo-amrwbenc' + 'xavs' 'xavs2' 'libmysofa' 'pocketsphinx' 'intel-media-sdk' 'rockchip-mpp' + 'intel-svt-hevc' 'intel-svt-av1' 'svt-vp9-git' ) makedepends=( # official repositories: @@ -46,15 +47,13 @@ source=("https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz"{,.asc} "ffmpeg-full-add-intel-svt-hevc-docs-${_svt_hevc_ver}.patch"::"https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v${_svt_hevc_ver}/ffmpeg_plugin/0002-doc-Add-libsvt_hevc-encoder-docs.patch" "ffmpeg-full-add-intel-svt-av1-${_svt_av1_ver}.patch"::"https://raw.githubusercontent.com/OpenVisualCloud/SVT-AV1/v${_svt_av1_ver}/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1-with-svt-hevc.patch" "ffmpeg-full-add-intel-svt-vp9-g${_svt_vp9_ver:0:7}.patch"::"https://raw.githubusercontent.com/OpenVisualCloud/SVT-VP9/${_svt_vp9_ver}/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-vp9-with-svt-hevc-av1.patch" - 'ffmpeg-full-decklink-sdk-11.patch' 'LICENSE') -sha256sums=('f1f049a82fcfbf156564e73a3935d7e750891fab2abf302e735104fd4050a7e1' +sha256sums=('023f10831a97ad93d798f53a3640e55cd564abfeba807ecbe8524dac4fedecd5' 'SKIP' - 'cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d' - '516c5a1b3ab6dc444e2270a1bae90455838fc3b7e3a18de37d7d63e25e79493d' + 'd9bd8345ff994c26d5174759d460c723e92012139e29dd015fe83537e29a9554' + '295220f498680d893bec525321e657dc3cdb98080a7117d1f575cd0508996a0e' '102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c' '7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7' - '96500257c72c664a9e7417d9aee3d0b2a4436f836e9733dcf1c9c30926b642df' '04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36') validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') @@ -66,9 +65,6 @@ prepare() { patch -Np1 -i "${srcdir}/ffmpeg-full-add-intel-svt-hevc-docs-${_svt_hevc_ver}.patch" patch -Np1 -i "${srcdir}/ffmpeg-full-add-intel-svt-av1-${_svt_av1_ver}.patch" patch -Np1 -i "${srcdir}/ffmpeg-full-add-intel-svt-vp9-g${_svt_vp9_ver:0:7}.patch" - - # fix build with decklink sdk 11 - patch -Np1 -i "${srcdir}/ffmpeg-full-decklink-sdk-11.patch" } build() { @@ -113,6 +109,7 @@ build() { --enable-iconv \ --enable-ladspa \ --enable-libaom \ + --enable-libaribb24 \ --enable-libass \ --enable-libbluray \ --enable-libbs2b \ @@ -120,6 +117,7 @@ build() { --enable-libcelt \ --enable-libcdio \ --enable-libcodec2 \ + --enable-libdav1d \ --enable-libdavs2 \ --enable-libdc1394 \ --enable-libfdk-aac \ @@ -187,19 +185,20 @@ build() { --enable-lv2 \ --enable-lzma \ --enable-decklink \ - --enable-libndi_newtek \ + --disable-mbedtls \ --enable-libmysofa \ --enable-openal \ --enable-opencl \ --enable-opengl \ --disable-openssl \ + --enable-pocketsphinx \ --enable-sndio \ --enable-sdl2 \ --enable-vapoursynth \ --enable-xlib \ --enable-zlib \ \ - --enable-cuda-sdk \ + --enable-cuda-nvcc \ --enable-cuvid \ --enable-ffnvcodec \ --enable-libdrm \ diff --git a/ffmpeg-full-decklink-sdk-11.patch b/ffmpeg-full-decklink-sdk-11.patch deleted file mode 100644 index dd65523..0000000 --- a/ffmpeg-full-decklink-sdk-11.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff -Naurp a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp ---- a/libavdevice/decklink_common.cpp 2019-04-01 11:16:31.000000000 +0000 -+++ b/libavdevice/decklink_common.cpp 2019-04-19 19:12:28.000000000 +0000 -@@ -81,9 +81,9 @@ static int decklink_get_attr_string(IDec - { - DECKLINK_STR tmp; - HRESULT hr; -- IDeckLinkAttributes *attr; -+ IDeckLinkProfileAttributes *attr; - *s = NULL; -- if (dl->QueryInterface(IID_IDeckLinkAttributes, (void **)&attr) != S_OK) -+ if (dl->QueryInterface(IID_IDeckLinkProfileAttributes, (void **)&attr) != S_OK) - return AVERROR_EXTERNAL; - hr = attr->GetString(cfg_id, &tmp); - attr->Release(); -@@ -149,11 +149,28 @@ int ff_decklink_set_configs(AVFormatCont - if (ctx->duplex_mode) { - DECKLINK_BOOL duplex_supported = false; - -+#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 -+ IDeckLinkProfileManager *manager = NULL; -+ if (ctx->dl->QueryInterface(IID_IDeckLinkProfileManager, (void **)&manager) == S_OK) -+ duplex_supported = true; -+#else - if (ctx->attr->GetFlag(BMDDeckLinkSupportsDuplexModeConfiguration, &duplex_supported) != S_OK) - duplex_supported = false; -+#endif - - if (duplex_supported) { -+#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 -+ IDeckLinkProfile *profile = NULL; -+ BMDProfileID bmd_profile_id = ctx->duplex_mode == 2 ? bmdProfileOneSubDeviceFullDuplex : bmdProfileTwoSubDevicesHalfDuplex; -+ res = manager->GetProfile(bmd_profile_id, &profile); -+ if (res == S_OK) { -+ res = profile->SetActive(); -+ profile->Release(); -+ } -+ manager->Release(); -+#else - res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode, ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf); -+#endif - if (res != S_OK) - av_log(avctx, AV_LOG_WARNING, "Setting duplex mode failed.\n"); - else -@@ -182,7 +199,11 @@ int ff_decklink_set_format(AVFormatConte - { - struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data; - struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx; -+#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 -+ DECKLINK_BOOL support; -+#else - BMDDisplayModeSupport support; -+#endif - IDeckLinkDisplayModeIterator *itermode; - IDeckLinkDisplayMode *mode; - int i = 1; -@@ -243,6 +264,31 @@ int ff_decklink_set_format(AVFormatConte - - if (ctx->bmd_mode == bmdModeUnknown) - return -1; -+ -+#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 -+ if (direction == DIRECTION_IN) { -+ if (ctx->dli->DoesSupportVideoMode(ctx->video_input, ctx->bmd_mode, (BMDPixelFormat) cctx->raw_format, -+ bmdVideoInputFlagDefault, -+ &support) != S_OK) -+ return -1; -+ } else { -+ BMDDisplayMode actualMode = ctx->bmd_mode; -+ if (!ctx->supports_vanc || ctx->dlo->DoesSupportVideoMode(bmdVideoConnectionUnspecified, ctx->bmd_mode, ctx->raw_format, -+ bmdVideoOutputVANC, -+ &actualMode, &support) != S_OK || !support || ctx->bmd_mode != actualMode) { -+ /* Try without VANC enabled */ -+ if (ctx->dlo->DoesSupportVideoMode(bmdVideoConnectionUnspecified, ctx->bmd_mode, ctx->raw_format, -+ bmdVideoOutputFlagDefault, -+ &actualMode, &support) != S_OK || !support || ctx->bmd_mode != actualMode) { -+ return -1; -+ } -+ ctx->supports_vanc = 0; -+ } -+ -+ } -+ if (support) -+ return 0; -+#else - if (direction == DIRECTION_IN) { - if (ctx->dli->DoesSupportVideoMode(ctx->bmd_mode, (BMDPixelFormat) cctx->raw_format, - bmdVideoOutputFlagDefault, -@@ -264,6 +310,7 @@ int ff_decklink_set_format(AVFormatConte - } - if (support == bmdDisplayModeSupported) - return 0; -+#endif - - return -1; - } -@@ -468,7 +515,7 @@ int ff_decklink_init_device(AVFormatCont - return AVERROR_EXTERNAL; - } - -- if (ctx->dl->QueryInterface(IID_IDeckLinkAttributes, (void **)&ctx->attr) != S_OK) { -+ if (ctx->dl->QueryInterface(IID_IDeckLinkProfileAttributes, (void **)&ctx->attr) != S_OK) { - av_log(avctx, AV_LOG_ERROR, "Could not get attributes interface for '%s'\n", name); - ff_decklink_cleanup(avctx); - return AVERROR_EXTERNAL; -diff -Naurp a/libavdevice/decklink_common.h b/libavdevice/decklink_common.h ---- a/libavdevice/decklink_common.h 2019-04-01 11:16:31.000000000 +0000 -+++ b/libavdevice/decklink_common.h 2019-04-19 19:12:28.000000000 +0000 -@@ -24,6 +24,10 @@ - #define AVDEVICE_DECKLINK_COMMON_H - - #include -+#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0b000000 -+#define IID_IDeckLinkProfileAttributes IID_IDeckLinkAttributes -+#define IDeckLinkProfileAttributes IDeckLinkAttributes -+#endif - - #include "libavutil/thread.h" - #include "decklink_common_c.h" -@@ -87,7 +91,7 @@ struct decklink_ctx { - IDeckLinkOutput *dlo; - IDeckLinkInput *dli; - IDeckLinkConfiguration *cfg; -- IDeckLinkAttributes *attr; -+ IDeckLinkProfileAttributes *attr; - decklink_output_callback *output_callback; - - /* DeckLink mode information */