Module: wine Branch: master Commit: f17b80105681c2c025d61fe98175c4b83da2d5d2 URL: https://source.winehq.org/git/wine.git/?a=commit;h=f17b80105681c2c025d61fe98...
Author: Rémi Bernon rbernon@codeweavers.com Date: Mon Jun 6 17:09:18 2022 +0200
winegstreamer: Support zero-copy output using the allocator.
Through a custom allocator, by borrowing memory from the reading thread and mapping it instead of the allocated memory.
We cannot use the buffer pool to share wrapped buffers, because some decoder will hold on the acquired buffers longer than they should and we cannot remove our memory from them as long as they keep a reference.
Swapping the memory on map should be safe.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com
---
dlls/winegstreamer/mfplat.c | 6 ++ dlls/winegstreamer/unix_private.h | 7 +- dlls/winegstreamer/unixlib.h | 1 + dlls/winegstreamer/wg_allocator.c | 135 ++++++++++++++++++++++++++++++++++++-- dlls/winegstreamer/wg_transform.c | 98 +++++++++++++++++++++++---- 5 files changed, 230 insertions(+), 17 deletions(-)
Diff: https://source.winehq.org/git/wine.git/?a=commitdiff;h=f17b80105681c2c025d61...