]> git.sesse.net Git - mlt/commitdiff
Enable external keyer on decklink consumer.
authorDan Dennedy <dan@dennedy.org>
Sat, 4 Jun 2011 06:11:45 +0000 (23:11 -0700)
committerDan Dennedy <dan@dennedy.org>
Sat, 4 Jun 2011 06:11:45 +0000 (23:11 -0700)
Patch supplied by Maksym Veremeyenko.

src/modules/decklink/consumer_decklink.cpp
src/modules/decklink/consumer_decklink.yml

index a18486ff4e86a0ff39f3b28ec8343834eabd8c2c..af44a2143eb562191279c88aa4d5a3e05de2a6d2 100644 (file)
@@ -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;
index a4af6e0c36bfc72f452b2f44c58dcb08a37fdd8d..92c24c92b4dfa79af1017bfa3914082102d46c06 100644 (file)
@@ -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