mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 21:16:24 +00:00
This reduces the complexity of having a custom buffer pool, as we don't really need it. We only need the custom allocation part. And since the wl_buffer is no longer saved in a GstMeta, we can create it and add it on the buffers in the sink's render() function, which removes the reference cycle caused by the pool holding a reference to the display and also allows more generic scenarios (the allocator being used in another pool, or buffers being allocated without a pool [if anything stupid does that]). This commit also simplifies the propose_allocation() function, which doesn't really need to do all these complicated checks, since there is always a correct buffer pool available, created in set_caps(). The other side effect of this commit is that a new wl_shm_pool is now created for every GstMemory, which means that we use as much shm memory as we actually need and no more. Previously, the created wl_shm_pool would allocate space for 15 buffers, no matter if they were being used or not. |
||
---|---|---|
.. | ||
.gitignore | ||
gstwaylandsink.c | ||
gstwaylandsink.h | ||
Makefile.am | ||
scaler.xml | ||
wlbuffer.c | ||
wlbuffer.h | ||
wldisplay.c | ||
wldisplay.h | ||
wlshmallocator.c | ||
wlshmallocator.h | ||
wlvideoformat.c | ||
wlvideoformat.h | ||
wlwindow.c | ||
wlwindow.h |