libs: bufferproxy: remove GstMemory reference

Since bufferproxy and surface are not referenced circularly, there's
no need to keep, in the buffer proxy, a reference to the GstMemory
where it is held. This patch removes that handling.
This commit is contained in:
He Junyan 2020-04-04 13:58:00 +02:00 committed by Víctor Manuel Jáquez Leal
parent e54671d4b3
commit f1d13d1e08
3 changed files with 0 additions and 47 deletions

View file

@ -85,11 +85,6 @@ gst_vaapi_buffer_proxy_finalize (GstVaapiBufferProxy * proxy)
{
gst_vaapi_buffer_proxy_release_handle (proxy);
if (proxy->mem) {
gst_memory_unref (proxy->mem);
proxy->mem = NULL;
}
/* Notify the user function that the object is now destroyed */
if (proxy->destroy_func)
proxy->destroy_func (proxy->destroy_data);
@ -130,7 +125,6 @@ gst_vaapi_buffer_proxy_new (guintptr handle, guint type, gsize size,
proxy->va_info.type = VAImageBufferType;
proxy->va_info.mem_type = from_GstVaapiBufferMemoryType (proxy->type);
proxy->va_info.mem_size = size;
proxy->mem = NULL;
if (!proxy->va_info.mem_type)
goto error_unsupported_mem_type;
return proxy;
@ -162,7 +156,6 @@ gst_vaapi_buffer_proxy_new_from_surface (GstMiniObject * surface,
proxy->destroy_data = data;
proxy->type = type;
proxy->va_buf = buf_id;
proxy->mem = NULL;
memset (&proxy->va_info, 0, sizeof (proxy->va_info));
proxy->va_info.mem_type = from_GstVaapiBufferMemoryType (proxy->type);
if (!proxy->va_info.mem_type)
@ -303,36 +296,3 @@ gst_vaapi_buffer_proxy_release_data (GstVaapiBufferProxy * proxy)
proxy->destroy_data = NULL;
}
}
/**
* gst_vaapi_buffer_proxy_set_mem:
* @proxy: a #GstVaapiBufferProxy
* @mem: a #GstMemory
*
* Relates @mem with @proxy, hence we later will know which memory
* correspond to processed surface.
*
* This is useful when a dmabuf-based memory is instantiated and
* associated with a surface.
**/
void
gst_vaapi_buffer_proxy_set_mem (GstVaapiBufferProxy * proxy, GstMemory * mem)
{
gst_mini_object_replace ((GstMiniObject **) & proxy->mem,
GST_MINI_OBJECT (mem));
}
/**
* gst_vaapi_buffer_proxy_peek_mem:
* @proxy: a #GstVaapiBufferProxy
*
* This is useful when a dmabuf-based memory is instantiated and
* associated with a surface.
*
* Returns: (transfer none): the assigned #GstMemory to the @proxy.
**/
GstMemory *
gst_vaapi_buffer_proxy_peek_mem (GstVaapiBufferProxy * proxy)
{
return proxy->mem;
}

View file

@ -101,12 +101,6 @@ gst_vaapi_buffer_proxy_get_size (GstVaapiBufferProxy * proxy);
void
gst_vaapi_buffer_proxy_release_data (GstVaapiBufferProxy * proxy);
void
gst_vaapi_buffer_proxy_set_mem (GstVaapiBufferProxy * proxy, GstMemory * mem);
GstMemory *
gst_vaapi_buffer_proxy_peek_mem (GstVaapiBufferProxy * proxy);
G_END_DECLS
#endif /* GST_VAAPI_BUFFER_PROXY_H */

View file

@ -69,7 +69,6 @@ struct _GstVaapiBufferProxy {
guint type;
VABufferID va_buf;
VABufferInfo va_info;
GstMemory *mem;
};
G_GNUC_INTERNAL