diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index cd42d7ed2c..d1e4c90cc9 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; } } }