Sun May 17, 2015 11:29 pm
I have an incoming stream of RGBA32 video frames, arriving as previously allocated CVPixelBufferRefs on MacOSX 10.10.
To send them off to a BMD Decklink device, I'm doing a memcpy() to an allocated BMD video frame, created with IDeckLinkOutput::CreateVideoFrame.
This works, but seems very expensive to me. Too much copying.
Has anyone utilized the IDeckLinkMemoryAllocator class methods AllocateBuffer(), ReleaseBuffer(), Commit(), Decommit() to the point that it has eliminated the need for unnecessary memory copying?
I'm unclear as to how the BMD SDK deals with user-allocated memory. For all I know, it does a memcpy() anyway.
An alternative plan would be to set up a buffer pool of vImageBuffers that the Mac API can utilize. I can then hand these off to the BMD SDK also.
Bruce Payan