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
This commit is contained in:
Sebastian Dröge 2016-11-17 20:20:15 +02:00
parent a1dc37b22b
commit db504c9ea5

View file

@ -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;
}
}
}