Module: wine
Branch: master
Commit: f17b80105681c2c025d61fe98175c4b83da2d5d2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f17b80105681c2c025d61fe9…
Author: Rémi Bernon <rbernon(a)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(a)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=f17b80105681c2c025d6…