From f54ef6c74ebc8de96575aac4a0e17a682f909a06 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 20 Aug 2020 09:06:04 +0300 Subject: [PATCH] videoaggregator: Don't require any pads to be configured for negotiating source pad caps This is not actually required (anymore?). Source pad caps can be negotiated at any time regardless of any configured (or existing) sink pads and videoaggregator comes up with some fixated caps based on the downstream caps. Subclasses can override this behaviour as needed by overriding update_src_caps(). Part-of: --- gst-libs/gst/video/gstvideoaggregator.c | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 61cf22e..e0ccb3f 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -981,29 +981,6 @@ gst_video_aggregator_default_update_src_caps (GstAggregator * agg, { GstVideoAggregatorClass *vagg_klass = GST_VIDEO_AGGREGATOR_GET_CLASS (agg); GstVideoAggregator *vagg = GST_VIDEO_AGGREGATOR (agg); - gboolean at_least_one_pad_configured = FALSE; - GList *l; - - GST_OBJECT_LOCK (vagg); - for (l = GST_ELEMENT (vagg)->sinkpads; l; l = l->next) { - GstVideoAggregatorPad *mpad = l->data; - - if (GST_VIDEO_INFO_WIDTH (&mpad->info) == 0 - || GST_VIDEO_INFO_HEIGHT (&mpad->info) == 0) - continue; - - at_least_one_pad_configured = TRUE; - } - GST_OBJECT_UNLOCK (vagg); - - if (!at_least_one_pad_configured) { - /* We couldn't decide the output video info because the sinkpads don't have - * all the caps yet, so we mark the pad as needing a reconfigure. This - * allows aggregate() to skip ahead a bit and try again later. */ - GST_DEBUG_OBJECT (vagg, "Couldn't decide output video info"); - gst_pad_mark_reconfigure (agg->srcpad); - return GST_AGGREGATOR_FLOW_NEED_DATA; - } g_assert (vagg_klass->update_caps); -- 2.7.4