On 7/5/22 14:31, RĂ©mi Bernon (@rbernon) wrote:
- The buffers may be released after the pipeline has been shutdown, we'd need to keep it alive until all the buffers are released, which is likely going to cause problems.
Why? We shouldn't need to provide anything to the Unix side except for the buffer pointer and size. I would expect that the PE buffers should outlive the unix device under normal operation.
I don't see any notion of a buffer pool in MF, though I have only a limited knowledge of the API. But even with quartz, I understand the buffers are pooled by a IMemAllocator object. The allocator gets notified when buffers are released, but we (the wg_parser used) don't.
As I understand it the allocator may also be application provided and the buffer implementation too.
So I don't really understand how you expect the buffers to be released to the unix buffer pool if not by periodically requesting new buffers from the IMemAllocator, or, for the MF API, by implementing our own IMFSample interface to hook the final buffer release.
In any case it's starting to look very similar to allocations on demand through the wg_allocator callback.
Right. I failed to consider that, sorry.