+ IDeckLinkIterator *decklink_iterator = CreateDeckLinkIteratorInstance();
+ if ( !decklink_iterator ) {
+ msg_Err( p_demux, "DeckLink drivers not found." );
+ // FIXME: Leak here and several other error paths.
+ return VLC_EGENERIC;
+ }
+
+ HRESULT result;
+ result = decklink_iterator->Next( &p_sys->p_card );
+
+ if ( result != S_OK ) {
+ msg_Err( p_demux, "No DeckLink PCI cards found." );
+ return VLC_EGENERIC;
+ }
+
+ if ( p_sys->p_card->QueryInterface(IID_IDeckLinkInput, (void**)&p_sys->p_input) != S_OK ) {
+ msg_Err( p_demux, "Card has no inputs" );
+ return VLC_EGENERIC;
+ }
+
+ /*eDeclare elementary streams */