From b4dea5c22534b3ce249a969d90667ac2429ac092 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Fri, 3 Jun 2011 23:11:45 -0700 Subject: [PATCH] Enable external keyer on decklink consumer. Patch supplied by Maksym Veremeyenko. --- src/modules/decklink/consumer_decklink.cpp | 7 ++++--- src/modules/decklink/consumer_decklink.yml | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/decklink/consumer_decklink.cpp b/src/modules/decklink/consumer_decklink.cpp index a18486ff..af44a214 100644 --- a/src/modules/decklink/consumer_decklink.cpp +++ b/src/modules/decklink/consumer_decklink.cpp @@ -101,7 +101,7 @@ private: mlt_frame m_frame; unsigned m_dropped; bool m_isAudio; - bool m_isKeyer; + int m_isKeyer; IDeckLinkKeyer* m_deckLinkKeyer; IDeckLinkDisplayMode* getDisplayMode() @@ -241,11 +241,12 @@ public: // Set the keyer if ( m_deckLinkKeyer && ( m_isKeyer = mlt_properties_get_int( properties, "keyer" ) ) ) { - bool external = false; + bool external = (m_isKeyer == 2); double level = mlt_properties_get_double( properties, "keyer_level" ); if ( m_deckLinkKeyer->Enable( external ) != S_OK ) - mlt_log_error( getConsumer(), "Failed to enable keyer\n" ); + mlt_log_error( getConsumer(), "Failed to enable %s keyer\n", + external ? "external" : "internal" ); m_deckLinkKeyer->SetLevel( level <= 1 ? ( level > 0 ? 255 * level : 255 ) : 255 ); m_preroll = 0; m_isAudio = false; diff --git a/src/modules/decklink/consumer_decklink.yml b/src/modules/decklink/consumer_decklink.yml index a4af6e0c..92c24c92 100644 --- a/src/modules/decklink/consumer_decklink.yml +++ b/src/modules/decklink/consumer_decklink.yml @@ -55,14 +55,14 @@ parameters: the keyer supports alpha-blending. You can not control the compositing rectangle. Rather, the entire MLT output overlays the entire video input. Therefore, you must use MLT's compositing services to control - the size and position. + the size and position. The value 1 enables the internal keyer, the + value 2 enables the external keyer, and the value 0 disables it. readonly: no required: no mutable: no default: 0 minimum: 0 - maximum: 1 - widget: checkbox + maximum: 2 - identifier: keyer_level title: Key Opacity -- 2.39.2