Updated to version 4.2

This commit is contained in:
Daniel Bermond
2019-08-11 14:24:02 +00:00
parent d8835b2aad
commit 2f601593ef
3 changed files with 35 additions and 164 deletions
+11 -11
View File
@@ -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
+24 -25
View File
@@ -1,12 +1,12 @@
# Maintainer : Daniel Bermond < gmail-com: danielbermond >
# Contributor: Iacopo Isimbaldi <isiachi@rhye.it>
_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 \
-128
View File
@@ -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 <DeckLinkAPIVersion.h>
+#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 */