From 42e293313390de8bc3b0c83cb4726c96d9de51ed Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Thu, 7 Aug 2014 19:54:36 +1000 Subject: [PATCH] videoaggregator: push the caps event as soon as we receive it Along with the required mandatory dependent events. Some elements need to perform an allocation query inside ::negotiated_caps(). Without the caps event being sent prior, downstream elements will be unable to answer and will return an error. https://bugzilla.gnome.org/show_bug.cgi?id=732662 --- libs/gst/base/gstaggregator.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 9274600882..0868d538f9 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -277,19 +277,6 @@ _check_all_pads_with_data_or_eos (GstAggregator * self, return FALSE; } -/** - * gst_aggregator_set_src_caps: - * @self: The #GstAggregator - * @caps: The #GstCaps to set later on the src pad. - * - * Sets the caps to be used on the src pad. - */ -void -gst_aggregator_set_src_caps (GstAggregator * self, GstCaps * caps) -{ - gst_caps_replace (&self->priv->srccaps, caps); -} - static void _reset_flow_values (GstAggregator * self) { @@ -350,6 +337,20 @@ _push_mandatory_events (GstAggregator * self) } } +/** + * gst_aggregator_set_src_caps: + * @self: The #GstAggregator + * @caps: The #GstCaps to set later on the src pad. + * + * Sets the caps to be used on the src pad. + */ +void +gst_aggregator_set_src_caps (GstAggregator * self, GstCaps * caps) +{ + gst_caps_replace (&self->priv->srccaps, caps); + _push_mandatory_events (self); +} + /** * gst_aggregator_finish_buffer: * @self: The #GstAggregator