gstbuffer: Unref memories before metas
authorXavier Claessens <xavier.claessens@collabora.com>
Fri, 10 Mar 2023 06:18:12 +0000 (22:18 -0800)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 20 Nov 2023 17:31:02 +0000 (12:31 -0500)
commit27350019e2650ba1031a54545a781465d146e2e1
tree2f9d5f488948a5b2c02ece2f3ef64308d63cd382
parent97f3ed0f3b3f06aa8cdb7aa24ae89d5a86e06978
gstbuffer: Unref memories before metas

gst_buffer_add_parent_buffer_meta() is used when a GstBuffer uses
GstMemory from another buffer that was allocated from a pool. In that
case we want to make sure the buffer returns to the pool when the memory
is writable again, otherwise a copy of the memory is created. That means
the child buffer must drop its ref to the memory first, then drop the
ref to parent buffer so it can return to the pool when it is the only
owner of the memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5696>
subprojects/gstreamer/gst/gstbuffer.c
subprojects/gstreamer/tests/check/gst/gstbufferpool.c