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)
{
}
/**
+ * 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
* @buffer: the #GstBuffer to push.
/* current caps */
GstCaps *current_caps;
- gboolean send_caps;
};
G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstVideoAggregator, gst_videoaggregator,
if (vagg->priv->current_caps == NULL ||
gst_caps_is_equal (caps, vagg->priv->current_caps) == FALSE) {
gst_caps_replace (&vagg->priv->current_caps, caps);
- vagg->priv->send_caps = TRUE;
+ gst_aggregator_set_src_caps (agg, caps);
}
done:
if (gst_pad_check_reconfigure (agg->srcpad))
gst_videoaggregator_update_src_caps (vagg);
- if (vagg->priv->send_caps) {
- gst_aggregator_set_src_caps (agg, vagg->priv->current_caps);
- vagg->priv->send_caps = FALSE;
- }
-
GST_VIDEO_AGGREGATOR_LOCK (vagg);
if (agg->segment.position == -1)
if (!GST_AGGREGATOR_CLASS (gst_videoaggregator_parent_class)->start (agg))
return FALSE;
- vagg->priv->send_caps = TRUE;
gst_segment_init (&agg->segment, GST_FORMAT_TIME);
gst_caps_replace (&vagg->priv->current_caps, NULL);