From: Wangfei Date: Tue, 15 Jan 2019 06:33:11 +0000 (+0800) Subject: vaapipostproc: before set surface proxy, check if it already been created and exist. X-Git-Tag: 1.19.3~503^2~586 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=98c32df8308296ffe480f22f880b302ce234f0de;p=platform%2Fupstream%2Fgstreamer.git vaapipostproc: before set surface proxy, check if it already been created and exist. Fix the deinterlace black frame when playing with glimagesink: gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \ ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink --- diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index 24d93f6..55e3a56 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -723,13 +723,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 ? GST_VAAPI_DEINTERLACE_FLAG_TOPFIELD : 0);