From 72f045bedd8c64d7b82429a2373d3d61bc2ef0fa Mon Sep 17 00:00:00 2001 From: Wind Yuan Date: Tue, 30 Oct 2012 13:15:45 +0800 Subject: videobuffer: fix memory leak for surface and image. Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper, thus resulting on actual memory leak of GstVaapiImage when using them for downloads/uploads from VA surfaces and more specifically surfaces when the pipeline is shutdown. i.e. vaTerminate() was never called because the resources were not unreferenced, and thus not deallocated in the end. Signed-off-by: Gwenole Beauchesne --- gst-libs/gst/vaapi/gstvaapivideobuffer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gst-libs') diff --git a/gst-libs/gst/vaapi/gstvaapivideobuffer.c b/gst-libs/gst/vaapi/gstvaapivideobuffer.c index 0a108535..cd1c948b 100644 --- a/gst-libs/gst/vaapi/gstvaapivideobuffer.c +++ b/gst-libs/gst/vaapi/gstvaapivideobuffer.c @@ -86,8 +86,7 @@ gst_vaapi_video_buffer_destroy_image(GstVaapiVideoBuffer *buffer) if (priv->image) { if (priv->image_pool) gst_vaapi_video_pool_put_object(priv->image_pool, priv->image); - else - g_object_unref(priv->image); + g_object_unref(priv->image); priv->image = NULL; } @@ -104,8 +103,7 @@ gst_vaapi_video_buffer_destroy_surface(GstVaapiVideoBuffer *buffer) if (priv->surface) { if (priv->surface_pool) gst_vaapi_video_pool_put_object(priv->surface_pool, priv->surface); - else - g_object_unref(priv->surface); + g_object_unref(priv->surface); priv->surface = NULL; } -- cgit v1.2.3