ofxBlackMagic Visual Studio 2012 working

Hi everyone,

I just wanted to share this.
I have a version for using the DeckLink API (BlackMagic products) that works in Windows (Visual Studio 2012)
There are a few add-ons out there but none did actually work for my setup.

So standing on the shoulders of giants and using code from Arturo, Kyle and Elliot (I’m not on first name base with these guys but I do it anyway) I got it working for my setup.

Most of the code (well almost all of it) is taken from Kyle’s implementation that is mainly designed for Mac.
So I fiddled around and made it work for Windows. It didn’t turn out to be that much of a hassle.

One important note, thanks to Elliot, is that you have to set the ‘Compile As’ flag in the C/C++ - Advanced settings of your project to ‘Default’ instead of compile as C++ code. This has implications for the specific order in which you do your ‘include’ statements.

I have tested this with USB3.0 UltraStudioSDI

ofxBlackMagicVS2012.zip (52.8 KB)


be interested to hear why you went the roll your own way.

(my personal reason was poor performance with the other options, and lack of deep multi-device support).
but my shared pointer style isn’t to many people’s tastes :slight_smile:

Hi Elliot,

Yeah, it was definitely your love for shared pointers that has put me off :wink:

Kidding, it’s simple really. I am working in Visual Studio 2012 and I couldn’t get your project to work in this environment.
So I tried to add your classes manually and wire everything together in a new clean project. I had some troubles with the order of the include statements, but I could compile a version. The thing however was that I only got a black screen. I checked the VideoInputFrameArrived method and the Frame class and everything seems ok to me.

So till this day I am not really sure why I couldn’t get it to work. I suspect something with the VideoConvertor method in the Decklink API? But as I said I am not sure. You are the only one who uses the build in approach by Decklink for converting.
All the other libraries use something similar to what Arturo did 3 or 4 years ago with his yuvtorgb .

Anyway I just couldn’t get it to work and because my time frame is limited I tried a different approach by using Kyle’s library and modify it to work with Windows and that works.

Sort of… Now I have noticed that after a few minutes (ranging from 5 to 20 or something) the stream just stops… I don’t get any error messages and the program still runs but no images coming in. So back to the drawing board for that part :wink:

I would like to thank you for all that you create and share. It’s really inspiring and keeps me going. Thanks!