vaapidecodebin: skips configuration once it's done

Skips configuration of creation of vpp/capsfilter and link them once it's done.
Otherwise, it always fails when it's trying to re-start playback.

https://bugzilla.gnome.org/show_bug.cgi?id=781573
This commit is contained in:
Hyunjun Ko 2017-04-21 18:05:48 +09:00 committed by Víctor Manuel Jáquez Leal
parent 5c3318227b
commit 26486c436a
2 changed files with 3 additions and 1 deletions

View file

@ -302,7 +302,7 @@ gst_vaapi_decode_bin_configure (GstVaapiDecodeBin * vaapidecbin)
"max-size-buffers", vaapidecbin->max_size_buffers, "max-size-buffers", vaapidecbin->max_size_buffers,
"max-size-time", vaapidecbin->max_size_time, NULL); "max-size-time", vaapidecbin->max_size_time, NULL);
if (vaapidecbin->disable_vpp) if (vaapidecbin->disable_vpp || vaapidecbin->configured)
return TRUE; return TRUE;
GST_INFO_OBJECT (vaapidecbin, "enabling VPP"); GST_INFO_OBJECT (vaapidecbin, "enabling VPP");
@ -357,6 +357,7 @@ gst_vaapi_decode_bin_configure (GstVaapiDecodeBin * vaapidecbin)
goto error_link_pad; goto error_link_pad;
gst_object_unref (bin_srcpad); gst_object_unref (bin_srcpad);
vaapidecbin->configured = TRUE;
return TRUE; return TRUE;

View file

@ -54,6 +54,7 @@ typedef struct _GstVaapiDecodeBin {
GstVaapiDeinterlaceMethod deinterlace_method; GstVaapiDeinterlaceMethod deinterlace_method;
gboolean disable_vpp; gboolean disable_vpp;
gboolean configured;
} GstVaapiDecodeBin; } GstVaapiDecodeBin;
typedef struct _GstVaapiDecodeBinClass { typedef struct _GstVaapiDecodeBinClass {