d3d11memory: Fix potential crash in GstD3D11PoolAllocator

Allocator object can be the final refcount holder, when a GstD3D11Memory
is being released. Do unref allocator once there's no more
remaining operation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3726>
This commit is contained in:
Seungha Yang 2023-01-12 22:17:24 +09:00 committed by Tim-Philipp Müller
parent 230ecf3cd9
commit af97e98315

View file

@ -1826,12 +1826,13 @@ gst_d3d11_pool_allocator_release_memory (GstD3D11PoolAllocator * self,
GST_MINI_OBJECT_CAST (mem)->dispose = NULL;
mem->allocator = (GstAllocator *) gst_object_ref (_d3d11_memory_allocator);
gst_object_unref (self);
/* keep it around in our queue */
gst_atomic_queue_push (self->priv->queue, mem);
gst_poll_write_control (self->priv->poll);
dec_outstanding (self);
gst_object_unref (self);
}
static gboolean