[vlc-devel] [PATCH] access module for BlackMagic SDI cards

Steinar H. Gunderson sgunderson at bigfoot.com
Tue Oct 5 12:46:52 CEST 2010

On Tue, Oct 05, 2010 at 05:17:18PM +1100, Stuart Cunningham wrote:
>>+    const char *psz_model_name;
>>+    result = p_sys->p_card->GetModelName( &psz_model_name );
> This will fail to compile under Mac and Windows, since the DeckLink
> API uses different string types for those two platforms, namely
> CFString for Mac and BSTR for Windows.  So use suitable macros to do
> the platform tests - perhaps a static function like
> getDeckLinkModelName() returning a const char* could keep the platform
> differences away from the flow of Open().  Same problem occurs with
> p_display_mode->GetName().

Yes. This is already covered in the NEWS file and discussed here. I guess
porting would be easy for anyone on Windows, though.

> A simpler end-user command-line interface would have just one way of
> disabling audio, rather than either audio-rate or audio-channels.  For
> me, --decklink-audio-connection=disabled would be a more intuitive way
> to disable audio.

Hm, I haven't thought about disabling either, but I guess I could give it a

> I have two questions may have some bearing on this patch:
> 1)  If one was to write support for DeckLink output, would it cause
> any contention for the DeckLink board, e.g. if I wanted to capture
> from the DeckLink SDI input, add audio from another input, then
> playout over the same board SDI output?  Would output support be added
> to this module or should it go into a separate module under
> modules/access_output?

I honestly don't know. I don't own one of these cards myself; I only have
(temporary) access to a machine with one, since I need it for a later

> 2) One of the things I'd like to try with this module to capture from
> four SDI or HDMI inputs and use VLC's wall video filter (or is it
> mosaic?) to combine four video inputs into a single video image before
> streaming it.  I imagine all that's required is that the module be
> thread safe?

I would assume you'd get interesting issues with timing over the long term,
given that VLC currently does not sync to the SDI timer. I have no idea to
what degree VLC lets you use the same input module several times, but there's
no thread-hostile operations in there (ie. access to global data, except
possibly what the driver does itself) that I know of.

/* Steinar */
Homepage: http://www.sesse.net/

More information about the vlc-devel mailing list