mlt_frame m_frame;
unsigned m_dropped;
bool m_isAudio;
- bool m_isKeyer;
+ int m_isKeyer;
IDeckLinkKeyer* m_deckLinkKeyer;
IDeckLinkDisplayMode* getDisplayMode()
// 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;
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