summaryrefslogtreecommitdiff
path: root/sys/applemedia
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-11-17 20:20:52 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-11-18 12:22:44 +0200
commit279fb3d99fa2df1c87976a70a75ece4ebb3ff7b5 (patch)
treecb13baaaf82c3450ee6614966ccdd04087263884 /sys/applemedia
parentdb504c9ea5c2697f8bc29c19615b29c0c4ee3328 (diff)
downloadgstreamer-plugins-bad-279fb3d99fa2df1c87976a70a75ece4ebb3ff7b5.tar.gz
vtdec: Mark pad as needing reconfiguration again if it failed
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads. https://bugzilla.gnome.org/show_bug.cgi?id=774623
Diffstat (limited to 'sys/applemedia')
-rw-r--r--sys/applemedia/vtdec.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c
index fc81774ac..472e39eb4 100644
--- a/sys/applemedia/vtdec.c
+++ b/sys/applemedia/vtdec.c
@@ -808,7 +808,14 @@ gst_vtdec_push_frames_if_needed (GstVtdec * vtdec, gboolean drain,
/* negotiate now so that we know whether we need to use the GL upload meta or
* not */
if (gst_pad_check_reconfigure (decoder->srcpad)) {
- gst_video_decoder_negotiate (decoder);
+ if (!gst_video_decoder_negotiate (decoder)) {
+ gst_pad_mark_reconfigure (decoder->srcpad);
+ if (GST_PAD_IS_FLUSHING (decoder->srcpad))
+ ret = GST_FLOW_FLUSHING;
+ else
+ ret = GST_FLOW_NOT_NEGOTIATED;
+ return ret;
+ }
}
if (drain)