summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunjun Ko <zzoon@igalia.com>2017-04-21 18:05:48 +0900
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-04-21 11:48:16 +0200
commit26486c436a6d7f6bd0a2bbb26ac3ef9ab06f08ef (patch)
treefa5e58532e1d72fde95ae6a601152fc44282736f
parent5c3318227b8b33071fa649662e21b337804e020c (diff)
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
-rw-r--r--gst/vaapi/gstvaapidecodebin.c3
-rw-r--r--gst/vaapi/gstvaapidecodebin.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/gst/vaapi/gstvaapidecodebin.c b/gst/vaapi/gstvaapidecodebin.c
index 295c12bd..2522b0af 100644
--- a/gst/vaapi/gstvaapidecodebin.c
+++ b/gst/vaapi/gstvaapidecodebin.c
@@ -302,7 +302,7 @@ gst_vaapi_decode_bin_configure (GstVaapiDecodeBin * vaapidecbin)
"max-size-buffers", vaapidecbin->max_size_buffers,
"max-size-time", vaapidecbin->max_size_time, NULL);
- if (vaapidecbin->disable_vpp)
+ if (vaapidecbin->disable_vpp || vaapidecbin->configured)
return TRUE;
GST_INFO_OBJECT (vaapidecbin, "enabling VPP");
@@ -357,6 +357,7 @@ gst_vaapi_decode_bin_configure (GstVaapiDecodeBin * vaapidecbin)
goto error_link_pad;
gst_object_unref (bin_srcpad);
+ vaapidecbin->configured = TRUE;
return TRUE;
diff --git a/gst/vaapi/gstvaapidecodebin.h b/gst/vaapi/gstvaapidecodebin.h
index 787d302b..085a941b 100644
--- a/gst/vaapi/gstvaapidecodebin.h
+++ b/gst/vaapi/gstvaapidecodebin.h
@@ -54,6 +54,7 @@ typedef struct _GstVaapiDecodeBin {
GstVaapiDeinterlaceMethod deinterlace_method;
gboolean disable_vpp;
+ gboolean configured;
} GstVaapiDecodeBin;
typedef struct _GstVaapiDecodeBinClass {