Updated to version 4.2
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
pkgbase = ffmpeg-full
|
pkgbase = ffmpeg-full
|
||||||
pkgdesc = Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)
|
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
|
pkgrel = 1
|
||||||
url = https://www.ffmpeg.org/
|
url = https://www.ffmpeg.org/
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
@@ -22,11 +22,13 @@ pkgbase = ffmpeg-full
|
|||||||
depends = ladspa
|
depends = ladspa
|
||||||
depends = libass
|
depends = libass
|
||||||
depends = aom
|
depends = aom
|
||||||
|
depends = aribb24
|
||||||
depends = libbluray
|
depends = libbluray
|
||||||
depends = libbs2b
|
depends = libbs2b
|
||||||
depends = libcaca
|
depends = libcaca
|
||||||
depends = celt
|
depends = celt
|
||||||
depends = libcdio-paranoia
|
depends = libcdio-paranoia
|
||||||
|
depends = dav1d
|
||||||
depends = libdc1394
|
depends = libdc1394
|
||||||
depends = libavc1394
|
depends = libavc1394
|
||||||
depends = libfdk-aac
|
depends = libfdk-aac
|
||||||
@@ -100,8 +102,8 @@ pkgbase = ffmpeg-full
|
|||||||
depends = vo-amrwbenc
|
depends = vo-amrwbenc
|
||||||
depends = xavs
|
depends = xavs
|
||||||
depends = xavs2
|
depends = xavs2
|
||||||
depends = ndi-sdk
|
|
||||||
depends = libmysofa
|
depends = libmysofa
|
||||||
|
depends = pocketsphinx
|
||||||
depends = intel-media-sdk
|
depends = intel-media-sdk
|
||||||
depends = rockchip-mpp
|
depends = rockchip-mpp
|
||||||
depends = intel-svt-hevc
|
depends = intel-svt-hevc
|
||||||
@@ -118,22 +120,20 @@ pkgbase = ffmpeg-full
|
|||||||
provides = libswresample.so
|
provides = libswresample.so
|
||||||
provides = ffmpeg
|
provides = ffmpeg
|
||||||
conflicts = ffmpeg
|
conflicts = ffmpeg
|
||||||
source = https://ffmpeg.org/releases/ffmpeg-4.1.4.tar.xz
|
source = https://ffmpeg.org/releases/ffmpeg-4.2.tar.xz
|
||||||
source = https://ffmpeg.org/releases/ffmpeg-4.1.4.tar.xz.asc
|
source = https://ffmpeg.org/releases/ffmpeg-4.2.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-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.3.0.patch::https://raw.githubusercontent.com/OpenVisualCloud/SVT-HEVC/v1.3.0/ffmpeg_plugin/0002-doc-Add-libsvt_hevc-encoder-docs.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-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-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
|
source = LICENSE
|
||||||
validpgpkeys = FCF986EA15E6E293A5644F10B4322F04D67658D8
|
validpgpkeys = FCF986EA15E6E293A5644F10B4322F04D67658D8
|
||||||
sha256sums = f1f049a82fcfbf156564e73a3935d7e750891fab2abf302e735104fd4050a7e1
|
sha256sums = 023f10831a97ad93d798f53a3640e55cd564abfeba807ecbe8524dac4fedecd5
|
||||||
sha256sums = SKIP
|
sha256sums = SKIP
|
||||||
sha256sums = cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d
|
sha256sums = d9bd8345ff994c26d5174759d460c723e92012139e29dd015fe83537e29a9554
|
||||||
sha256sums = 516c5a1b3ab6dc444e2270a1bae90455838fc3b7e3a18de37d7d63e25e79493d
|
sha256sums = 295220f498680d893bec525321e657dc3cdb98080a7117d1f575cd0508996a0e
|
||||||
sha256sums = 102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c
|
sha256sums = 102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c
|
||||||
sha256sums = 7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7
|
sha256sums = 7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7
|
||||||
sha256sums = 96500257c72c664a9e7417d9aee3d0b2a4436f836e9733dcf1c9c30926b642df
|
|
||||||
sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36
|
sha256sums = 04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36
|
||||||
|
|
||||||
pkgname = ffmpeg-full
|
pkgname = ffmpeg-full
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# Maintainer : Daniel Bermond < gmail-com: danielbermond >
|
# Maintainer : Daniel Bermond < gmail-com: danielbermond >
|
||||||
# Contributor: Iacopo Isimbaldi <isiachi@rhye.it>
|
# 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_av1_ver='0.6.0'
|
||||||
_svt_vp9_ver='ce245894c6fc1c5d1439c41a7dda8d6dc61784c4'
|
_svt_vp9_ver='ce245894c6fc1c5d1439c41a7dda8d6dc61784c4'
|
||||||
|
|
||||||
pkgname=ffmpeg-full
|
pkgname=ffmpeg-full
|
||||||
pkgver=4.1.4
|
pkgver=4.2
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc='Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)'
|
pkgdesc='Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)'
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
@@ -16,20 +16,21 @@ depends=(
|
|||||||
# official repositories:
|
# official repositories:
|
||||||
'glibc' 'alsa-lib' 'jack' 'libpng'
|
'glibc' 'alsa-lib' 'jack' 'libpng'
|
||||||
'bzip2' 'frei0r-plugins' 'libgcrypt' 'gmp' 'gnutls' 'ladspa' 'libass' 'aom'
|
'bzip2' 'frei0r-plugins' 'libgcrypt' 'gmp' 'gnutls' 'ladspa' 'libass' 'aom'
|
||||||
'libbluray' 'libbs2b' 'libcaca' 'celt' 'libcdio-paranoia' 'libdc1394'
|
'aribb24' 'libbluray' 'libbs2b' 'libcaca' 'celt' 'libcdio-paranoia' 'dav1d'
|
||||||
'libavc1394' 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi' 'libgme' 'gsm'
|
'libdc1394' 'libavc1394' 'libfdk-aac' 'fontconfig' 'freetype2' 'fribidi'
|
||||||
'libiec61883' 'lensfun' 'libmodplug' 'lame' 'opencore-amr' 'openjpeg2' 'opus'
|
'libgme' 'gsm' 'libiec61883' 'lensfun' 'libmodplug' 'lame' 'opencore-amr'
|
||||||
'pulseaudio' 'librsvg' 'rubberband' 'rtmpdump' 'snappy' 'libsoxr'
|
'openjpeg2' 'opus' 'pulseaudio' 'librsvg' 'rubberband' 'rtmpdump' 'snappy'
|
||||||
'speex' 'srt' 'libssh' 'tensorflow' 'tesseract' 'libtheora' 'twolame'
|
'libsoxr' 'speex' 'srt' 'libssh' 'tensorflow' 'tesseract' 'libtheora'
|
||||||
'v4l-utils' 'vid.stab' 'libvorbis' 'libvpx' 'wavpack' 'libwebp' 'libx264.so'
|
'twolame' 'v4l-utils' 'vid.stab' 'libvorbis' 'libvpx' 'wavpack' 'libwebp'
|
||||||
'x265' 'libxcb' 'xvidcore' 'libxml2' 'zimg' 'zeromq' 'zvbi' 'lv2' 'lilv' 'xz'
|
'libx264.so' 'x265' 'libxcb' 'xvidcore' 'libxml2' 'zimg' 'zeromq' 'zvbi'
|
||||||
'openal' 'ocl-icd' 'libgl' 'sndio' 'sdl2' 'vapoursynth' 'libxv' 'libx11'
|
'lv2' 'lilv' 'xz' 'openal' 'ocl-icd' 'libgl' 'sndio' 'sdl2' 'vapoursynth'
|
||||||
'libxext' 'zlib' 'cuda' 'libomxil-bellagio' 'libva' 'libdrm' 'libvdpau'
|
'libxv' 'libx11' 'libxext' 'zlib' 'cuda' 'libomxil-bellagio' 'libva'
|
||||||
|
'libdrm' 'libvdpau'
|
||||||
# AUR:
|
# AUR:
|
||||||
'chromaprint-fftw' 'codec2' 'davs2' 'flite1-patched' 'libilbc' 'libklvanc-git'
|
'chromaprint-fftw' 'codec2' 'davs2' 'flite1-patched' 'libilbc'
|
||||||
'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'vo-amrwbenc' 'xavs' 'xavs2'
|
'libklvanc-git' 'kvazaar' 'openh264' 'libopenmpt-svn' 'shine' 'vo-amrwbenc'
|
||||||
'ndi-sdk' 'libmysofa' 'intel-media-sdk' 'rockchip-mpp' 'intel-svt-hevc'
|
'xavs' 'xavs2' 'libmysofa' 'pocketsphinx' 'intel-media-sdk' 'rockchip-mpp'
|
||||||
'intel-svt-av1' 'svt-vp9-git'
|
'intel-svt-hevc' 'intel-svt-av1' 'svt-vp9-git'
|
||||||
)
|
)
|
||||||
makedepends=(
|
makedepends=(
|
||||||
# official repositories:
|
# 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-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-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-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')
|
'LICENSE')
|
||||||
sha256sums=('f1f049a82fcfbf156564e73a3935d7e750891fab2abf302e735104fd4050a7e1'
|
sha256sums=('023f10831a97ad93d798f53a3640e55cd564abfeba807ecbe8524dac4fedecd5'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'cc8ba4ff56cdb38a59650203999c4c8c83fc40bdb905b87b678ff68a4538444d'
|
'd9bd8345ff994c26d5174759d460c723e92012139e29dd015fe83537e29a9554'
|
||||||
'516c5a1b3ab6dc444e2270a1bae90455838fc3b7e3a18de37d7d63e25e79493d'
|
'295220f498680d893bec525321e657dc3cdb98080a7117d1f575cd0508996a0e'
|
||||||
'102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c'
|
'102a70c5c453875f5806ce02cc83fdc74e53c078cf5be2657f3dd1dd4438868c'
|
||||||
'7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7'
|
'7690a4f6bdc4a57e35c7ff5b6e87f2fe6d056d452eff9e767eaccff41832f4d7'
|
||||||
'96500257c72c664a9e7417d9aee3d0b2a4436f836e9733dcf1c9c30926b642df'
|
|
||||||
'04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36')
|
'04a7176400907fd7db0d69116b99de49e582a6e176b3bfb36a03e50a4cb26a36')
|
||||||
validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8')
|
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-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-av1-${_svt_av1_ver}.patch"
|
||||||
patch -Np1 -i "${srcdir}/ffmpeg-full-add-intel-svt-vp9-g${_svt_vp9_ver:0:7}.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() {
|
build() {
|
||||||
@@ -113,6 +109,7 @@ build() {
|
|||||||
--enable-iconv \
|
--enable-iconv \
|
||||||
--enable-ladspa \
|
--enable-ladspa \
|
||||||
--enable-libaom \
|
--enable-libaom \
|
||||||
|
--enable-libaribb24 \
|
||||||
--enable-libass \
|
--enable-libass \
|
||||||
--enable-libbluray \
|
--enable-libbluray \
|
||||||
--enable-libbs2b \
|
--enable-libbs2b \
|
||||||
@@ -120,6 +117,7 @@ build() {
|
|||||||
--enable-libcelt \
|
--enable-libcelt \
|
||||||
--enable-libcdio \
|
--enable-libcdio \
|
||||||
--enable-libcodec2 \
|
--enable-libcodec2 \
|
||||||
|
--enable-libdav1d \
|
||||||
--enable-libdavs2 \
|
--enable-libdavs2 \
|
||||||
--enable-libdc1394 \
|
--enable-libdc1394 \
|
||||||
--enable-libfdk-aac \
|
--enable-libfdk-aac \
|
||||||
@@ -187,19 +185,20 @@ build() {
|
|||||||
--enable-lv2 \
|
--enable-lv2 \
|
||||||
--enable-lzma \
|
--enable-lzma \
|
||||||
--enable-decklink \
|
--enable-decklink \
|
||||||
--enable-libndi_newtek \
|
--disable-mbedtls \
|
||||||
--enable-libmysofa \
|
--enable-libmysofa \
|
||||||
--enable-openal \
|
--enable-openal \
|
||||||
--enable-opencl \
|
--enable-opencl \
|
||||||
--enable-opengl \
|
--enable-opengl \
|
||||||
--disable-openssl \
|
--disable-openssl \
|
||||||
|
--enable-pocketsphinx \
|
||||||
--enable-sndio \
|
--enable-sndio \
|
||||||
--enable-sdl2 \
|
--enable-sdl2 \
|
||||||
--enable-vapoursynth \
|
--enable-vapoursynth \
|
||||||
--enable-xlib \
|
--enable-xlib \
|
||||||
--enable-zlib \
|
--enable-zlib \
|
||||||
\
|
\
|
||||||
--enable-cuda-sdk \
|
--enable-cuda-nvcc \
|
||||||
--enable-cuvid \
|
--enable-cuvid \
|
||||||
--enable-ffnvcodec \
|
--enable-ffnvcodec \
|
||||||
--enable-libdrm \
|
--enable-libdrm \
|
||||||
|
|||||||
@@ -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 */
|
|
||||||
Reference in New Issue
Block a user