From 0c42c4801cfe866193dc5ae3bf08ced46a1e8266 Mon Sep 17 00:00:00 2001 From: Eric Knapp Date: Mon, 15 Aug 2022 11:23:56 -0400 Subject: [PATCH] decklink: Auto-detect 10-bit YUV Part-of: --- .../gst-plugins-bad/sys/decklink/gstdecklink.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/subprojects/gst-plugins-bad/sys/decklink/gstdecklink.cpp b/subprojects/gst-plugins-bad/sys/decklink/gstdecklink.cpp index e3943e8..b8e89ac 100644 --- a/subprojects/gst-plugins-bad/sys/decklink/gstdecklink.cpp +++ b/subprojects/gst-plugins-bad/sys/decklink/gstdecklink.cpp @@ -1090,17 +1090,20 @@ public: VideoInputFormatChanged (BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode * mode, BMDDetectedVideoInputFormatFlags formatFlags) { - BMDPixelFormat pixelFormat; + /* use the user-set format, defaulting to 8BitYUV */ + BMDPixelFormat pixelFormat = m_input->format; GST_INFO ("Video input format changed"); - if ((formatFlags & bmdDetectedVideoInputRGB444) - && m_input->format == bmdFormat8BitYUV) { - /* user-set format was auto or 8BitYUV, change to RGB */ - pixelFormat = bmdFormat8BitARGB; - } else { - /* use the user-set format, defaulting to 8BitYUV */ - pixelFormat = m_input->format; + if (m_input->format == bmdFormat8BitYUV) { + /* user-set format was auto or 8BitYUV */ + if (formatFlags & bmdDetectedVideoInputRGB444) { + pixelFormat = bmdFormat8BitARGB; + } else if (formatFlags & bmdDetectedVideoInputYCbCr422) { + if (formatFlags & bmdDetectedVideoInput10BitDepth) { + pixelFormat = bmdFormat10BitYUV; + } + } } g_mutex_lock (&m_input->lock); -- 2.7.4