Rémi Bernon : winegstreamer: Support zero-copy output using the allocator.

Alexandre Julliard julliard at winehq.org
Thu Jun 9 16:28:32 CDT 2022


Module: wine
Branch: master
Commit: f17b80105681c2c025d61fe98175c4b83da2d5d2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f17b80105681c2c025d61fe98175c4b83da2d5d2

Author: Rémi Bernon <rbernon at 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 at 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=f17b80105681c2c025d61fe98175c4b83da2d5d2



More information about the wine-cvs mailing list