- mlt_log_error( getConsumer(), "Failed to get keyer\n" );
- m_deckLinkOutput->Release();
- m_deckLinkOutput = 0;
- m_deckLink->Release();
- m_deckLink = 0;
- return false;
+ bool flag = false;
+ if ( deckLinkAttributes->GetFlag( BMDDeckLinkSupportsInternalKeying, &flag ) == S_OK && flag )
+ {
+ if ( m_deckLink->QueryInterface( IID_IDeckLinkKeyer, (void**) &m_deckLinkKeyer ) != S_OK )
+ {
+ mlt_log_error( getConsumer(), "Failed to get keyer\n" );
+ m_deckLinkOutput->Release();
+ m_deckLinkOutput = 0;
+ m_deckLink->Release();
+ m_deckLink = 0;
+ return false;
+ }
+ }
+ deckLinkAttributes->Release();