From 78304d07696776e92e118d561c7fdbbbfff602fa Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Fri, 7 Aug 2020 09:59:22 +0200 Subject: [PATCH] DeckLink disp.: fixed HDR check --- src/video_display/decklink.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/video_display/decklink.cpp b/src/video_display/decklink.cpp index 0372bfeb6..f3ba50ff8 100644 --- a/src/video_display/decklink.cpp +++ b/src/video_display/decklink.cpp @@ -1261,13 +1261,18 @@ static void *display_decklink_init(struct module *parent, const char *fmt, unsig #endif } - BMD_BOOL hdr_supp = BMD_FALSE; - if (s->requested_hdr_mode != static_cast(HDR_EOTF::NONE) && s->state.at(i).deckLinkAttributes != nullptr && s->state.at(i).deckLinkAttributes->GetFlag(BMDDeckLinkSupportsHDRMetadata, &hdr_supp) == S_OK) { - LOG(LOG_LEVEL_ERROR) << MOD_NAME << "HDR requested, but card doesn't support that.\n"; - goto error; + if (s->requested_hdr_mode != static_cast(HDR_EOTF::NONE)) { + BMD_BOOL hdr_supp = BMD_FALSE; + if (s->state.at(i).deckLinkAttributes == nullptr || s->state.at(i).deckLinkAttributes->GetFlag(BMDDeckLinkSupportsHDRMetadata, &hdr_supp) != S_OK) { + LOG(LOG_LEVEL_WARNING) << MOD_NAME << "HDR requested, but unable to validate HDR support. Will try to pass it anyway which may result in blank image if not supported - remove the option if so.\n"; + } else { + if (hdr_supp != BMD_TRUE) { + LOG(LOG_LEVEL_ERROR) << MOD_NAME << "HDR requested, but card doesn't support that.\n"; + goto error; + } + } } - if (s->play_audio && i == 0) { /* Actually no action is required to set audio connection because Blackmagic card plays audio through all its outputs (AES/SDI/analog) .... */