gstreamer/sys/va
Víctor Manuel Jáquez Leal 3be9a1baa0 va: allocator: MT-safe queue & dequeue dmabuf-based memories
One problem that va dmabuf allocator had is when preparing a buffer from
dmabuf memories in the allocator pool, specially when a buffer is composed by
several memories. This memories have to be by certain number and in certain
order.

This patch stores the number of memories and their address in order when a
dmabuf-based buffer is created and when preparing a buffer, it is reconstructed
with this info.

Finally, instead of pushing the memories as soon as they are unrefed, they are
hold until GstVaBufferSurface's ref_mems_count reaches zero (all the memories
related with that buffer/surface are unrefed). Until that happen, all the
memories are pushed back into the queue, locked, assuring that all the memories
related with a single buffer (with the same surface) remain contiguous, so the
buffer reconstruction is assured.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
2021-02-17 09:10:37 +01:00
..
gstvaallocator.c va: allocator: MT-safe queue & dequeue dmabuf-based memories 2021-02-17 09:10:37 +01:00
gstvaallocator.h va: allocator: remove unused public functions 2021-02-17 09:10:37 +01:00
gstvabasedec.c va: basedec: refactor context query 2021-02-05 21:25:20 +01:00
gstvabasedec.h va: Add mpeg2 VA decoder. 2020-12-28 13:14:06 +08:00
gstvacaps.c va: caps: added gst_caps_is_raw() 2020-10-09 16:34:57 +02:00
gstvacaps.h va: caps: added gst_caps_is_raw() 2020-10-09 16:34:57 +02:00
gstvadecoder.c va: Make the caps pointer operation atomic in vadecoder. 2021-01-15 20:40:21 +08:00
gstvadecoder.h va: decode: fix display type 2020-12-06 18:03:47 +01:00
gstvadevice.c va: sort the device queue 2021-02-02 10:28:04 +08:00
gstvadevice.h va: VA-API H.264 decoder and infrastructure 2020-06-28 11:47:35 +02:00
gstvadisplay.c va: display: parse and set driver implementation 2021-01-05 17:54:34 +00:00
gstvadisplay.h va: display: parse and set driver implementation 2021-01-05 17:54:34 +00:00
gstvadisplay_drm.c va: VA-API H.264 decoder and infrastructure 2020-06-28 11:47:35 +02:00
gstvadisplay_drm.h va: VA-API H.264 decoder and infrastructure 2020-06-28 11:47:35 +02:00
gstvadisplay_wrapped.c va: display: wrapped: Fix property name 2020-08-03 19:33:01 +02:00
gstvadisplay_wrapped.h va: VA-API H.264 decoder and infrastructure 2020-06-28 11:47:35 +02:00
gstvafilter.c va: filter: use a common GParamFlags definition 2021-02-05 21:24:02 +01:00
gstvafilter.h va: add vapostproc element 2020-09-23 18:19:22 +02:00
gstvah264dec.c va: h264dec: remove spurious if validation 2021-02-05 21:24:02 +01:00
gstvah264dec.h va: h264dec: check va allocator at decide allocation 2020-08-24 19:35:57 +00:00
gstvah265dec.c vah265dec: Don't need to pass picture structure to VA 2021-02-09 16:19:41 +00:00
gstvah265dec.h va: Add HEVC decoding support 2020-11-04 17:53:23 +00:00
gstvampeg2dec.c va: mpeg2dec: refactor the picture reference filling 2021-01-06 17:27:10 +01:00
gstvampeg2dec.h va: Add mpeg2 VA decoder. 2020-12-28 13:14:06 +08:00
gstvapool.c va: pool, allocator: free memories at bufferpool's stop() 2021-02-17 09:10:37 +01:00
gstvapool.h va: allocator: add _set_format() and _get_format() 2020-10-09 16:34:57 +02:00
gstvaprofile.c va: Add VP9 decoder 2020-10-19 13:15:06 +02:00
gstvaprofile.h va: VA-API H.264 decoder and infrastructure 2020-06-28 11:47:35 +02:00
gstvautils.c va: Fix some gst_object_unref error because the pointer is NULL. 2021-01-17 14:00:50 +08:00
gstvautils.h va: codestyle: Clear all tabs in header files 2020-09-25 17:07:10 +08:00
gstvavideoformat.c va: allocator: try to create surface without fourcc but chroma only 2020-09-23 18:19:22 +02:00
gstvavideoformat.h va: allocator: get a surface format from a image format 2020-08-03 15:54:45 +00:00
gstvavp8dec.c va: Remove gst_va_decoder_destroy_buffers() 2020-11-30 16:53:25 +01:00
gstvavp8dec.h va: Implement the VA vp8 decoder. 2020-09-25 17:07:30 +08:00
gstvavp9dec.c va: Remove gst_va_decoder_destroy_buffers() 2020-11-30 16:53:25 +01:00
gstvavp9dec.h va: Add VP9 decoder 2020-10-19 13:15:06 +02:00
gstvavpp.c va: vpp: Make the global lock only to DMA buffer's import. 2021-02-09 15:07:19 +08:00
gstvavpp.h va: add vapostproc element 2020-09-23 18:19:22 +02:00
meson.build meson: va: Skip configuration on non-linux environment 2021-01-07 23:47:35 +09:00
plugin.c va: Add mpeg2 VA decoder. 2020-12-28 13:14:06 +08:00