Skip to content

stop storing buffer proxies on surfaces that they are derived from

Storing a buffer proxy derived from a surface on the same surface causes a circular reference between surface->extbuf_proxy and proxy->parent. Instead, store the dmabuf memory on the surface directly, and reserve buffer proxies for surfaces derived from external buffers. Release the now unused temporary buffer proxy reference to avoid leaking dmabuf ids.

This replaces the use of the gst_vaapi_surface_set/peek_buffer_proxy API with gst_vaapi_surface_set/peek_memory to simplify retrieving the memory associated with a surface, whether it is derived from the surface itself, or from an external buffer proxy.

Edited by Philipp Zabel

Merge request reports