summarylogtreecommitdiffstats
path: root/ffmpeg-decklink-sdk-11.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg-decklink-sdk-11.patch')
-rw-r--r--ffmpeg-decklink-sdk-11.patch128
1 files changed, 0 insertions, 128 deletions
diff --git a/ffmpeg-decklink-sdk-11.patch b/ffmpeg-decklink-sdk-11.patch
deleted file mode 100644
index dd655235d6b3..000000000000
--- a/ffmpeg-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 <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 */