-
BlackMagic Decklink and SDK questions
Hi, I’m currently using a Blackmagic Decklink card to do capture from HD-SDI, for display in a realtime presentation system. on OS X.
I have working code integrated into a Cocoa app that initialises the device, grabs frames, and does YUV to RGB conversion in GLSL with good performance so I understand the basics pretty well, however I have a few questions:
I am currently not using the ScreenPreview callbacks – i need to texture map my video frames onto geometry set up in an existing 3d engine, so i fetch captured buffers directly from the main input callback and use GLSL to convert the YUV422 into RGB. Presumably the ScreenPreview PaintGL stuff results in an RGB texture on the GPU, but does it involve software YUV-> RGB conversion?
I am a little unclear on the behaviour of the API with interlaced inputs (e.g. 1080i50) – when I get a frame callback, am I receiving a full size buffer with alternate lines blanked out, or is the blackmagic hardware performing deinterlace for me? The frame width/height in the arrivedFrame indicates a full frame size.
Is it possible to have the Decklink hardware perform hardware YUV to RGB conversion? Any software YUV to RGB is a major bottleneck for my app, as i need to decode and display several streams (live input and from movies on disk via ffmpeg) in realtime. Doing this on the GPU gives me good performance however.
Is it possible to have the Decklink hardware supply planar YUV data instead of interleaved? e.g. an arrivedFrame would contain a Y buffer, a U buffer and a V buffer?
Thanks
-Pete