How to get RGB from Blackmagic UltraStudio?

I’ll describe my problem generally, then specifically.


  1. Does anyone have general advice for getting RGB pixel data from a Blackmagic input device?
  2. Does anyone have a shader-based solution for converting YUV data to RGB?


The add-on ofxDeckLink works fine in YUV mode, but I cannot get RGB values from the data coming from the Blackmagic.

The declaration for Input.setup() is:
bool start(BMDDisplayMode mode = bmdModeHD1080p30, bool use_rgb_colorspace = false);

If I leave the use_rgb_colorspace as false, I can draw the data to screen, but I can’t access the pixels the way I want to, because the format is YUV.
If I set use_rgb_colorspace as true, I see only black on the screen.

Is there another way to enable RGB for the add-on ofxDeckLink?

Blackmagic UltraStudio Mini Recorder
DeckLink SDK 10.8 (also tried 10.9)
openFrameworks 0.9.8
OS X 10.12.6
MacBook Pro

I couldn’t figure out how to get RGBA data from ofxDeckLink.
I didn’t solve this issue, but found a workaround using Black Syphon and ofxSyphon:
ofxSyphon gives me access to the Syphon Client texture, which I copy into an ofFbo and readToPixels() as RGBA.

It’s a bit annoying to have to have Black Syphon running first before starting my OF app,
but it gets the job done, and performance is fine for my purposes.