summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-11-17 20:20:15 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-11-18 12:22:44 +0200
commitdb504c9ea5c2697f8bc29c19615b29c0c4ee3328 (patch)
treef87c57f2efee7d5a693cae589fbc482d7694e3b4
parenta1dc37b22b5eaea2b1cf469b84c01900de7c0cfa (diff)
downloadgstreamer-plugins-bad-db504c9ea5c2697f8bc29c19615b29c0c4ee3328.tar.gz
videoaggregator: 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
-rw-r--r--gst-libs/gst/video/gstvideoaggregator.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c
index cd42d7ed2..d1e4c90cc 100644
--- a/gst-libs/gst/video/gstvideoaggregator.c
+++ b/gst-libs/gst/video/gstvideoaggregator.c
@@ -1452,7 +1452,8 @@ gst_video_aggregator_check_reconfigure (GstVideoAggregator * vagg,
ret = gst_video_aggregator_update_src_caps (vagg);
if (!ret) {
- if (timeout && gst_pad_needs_reconfigure (GST_AGGREGATOR_SRC_PAD (vagg))) {
+ gst_pad_mark_reconfigure (GST_AGGREGATOR_SRC_PAD (vagg));
+ if (timeout) {
guint64 frame_duration;
gint fps_d, fps_n;
@@ -1482,7 +1483,10 @@ gst_video_aggregator_check_reconfigure (GstVideoAggregator * vagg,
vagg->priv->nframes++;
return GST_FLOW_NEEDS_DATA;
} else {
- return GST_FLOW_NOT_NEGOTIATED;
+ if (GST_PAD_IS_FLUSHING (GST_AGGREGATOR_SRC_PAD (vagg)))
+ return GST_FLOW_FLUSHING;
+ else
+ return GST_FLOW_NOT_NEGOTIATED;
}
}
}