vaapipostproc: already have a surface proxy if dmabuf
authorJulien Isorce <j.isorce@samsung.com>
Sat, 26 Sep 2015 05:25:12 +0000 (06:25 +0100)
committerJulien Isorce <j.isorce@samsung.com>
Tue, 26 Apr 2016 15:05:50 +0000 (16:05 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=755072

gst/vaapi/gstvaapipostproc.c

index a2c033c..4757d83 100644 (file)
@@ -647,13 +647,15 @@ gst_vaapipostproc_process_vpp (GstBaseTransform * trans, GstBuffer * inbuf,
   if (!outbuf_meta)
     goto error_create_meta;
 
-  proxy =
-      gst_vaapi_surface_proxy_new_from_pool (GST_VAAPI_SURFACE_POOL
-      (postproc->filter_pool));
-  if (!proxy)
-    goto error_create_proxy;
-  gst_vaapi_video_meta_set_surface_proxy (outbuf_meta, proxy);
-  gst_vaapi_surface_proxy_unref (proxy);
+  if (!gst_vaapi_video_meta_get_surface_proxy (outbuf_meta)) {
+    proxy =
+        gst_vaapi_surface_proxy_new_from_pool (GST_VAAPI_SURFACE_POOL
+        (postproc->filter_pool));
+    if (!proxy)
+      goto error_create_proxy;
+    gst_vaapi_video_meta_set_surface_proxy (outbuf_meta, proxy);
+    gst_vaapi_surface_proxy_unref (proxy);
+  }
 
   if (deint) {
     deint_flags = (tff ? 0 : GST_VAAPI_DEINTERLACE_FLAG_TOPFIELD);