Sun Dec 31, 2023 7:48 pm
I have created a custom allocator and set it via IDeckLinkInput::SetVideoInputFrameMemoryAllocator.
It defaults to just using malloc/free and works fine. But I can toggle a setting while running so that it returns pointers to Vulkan buffers.
When I do so, frames stop arriving; my VideoInputFrameArrived stops getting called (once decklink has exhausted its list of malloc-ed pointers).
I've noticed that when using malloc, decklink will allocate 2 or 3 frames worth of data per frame. When not using malloc, decklink seems to keep attempting to release/alloc its entire internal set of buffers (a few dozen).
Any ideas what may be up? Are there internal checks that the returned pointer is put through that reject them?