Skip to content
Snippets Groups Projects
Commit 549cc941 authored by Sebastian Dröge's avatar Sebastian Dröge :tea: Committed by Tim-Philipp Müller
Browse files

aggregator: Actually handle NEED_DATA return from update_src_caps()

The documentation says that this allows the subclass to signal that it
needs more data before it can decide on caps, so let's actually
implement it that way.
parent 5bf13cdd
Loading
......@@ -1032,6 +1032,9 @@ gst_aggregator_update_src_caps (GstAggregator * self)
if (ret < GST_FLOW_OK) {
GST_WARNING_OBJECT (self, "Subclass failed to update provided caps");
goto done;
} else if (ret == GST_AGGREGATOR_FLOW_NEED_DATA) {
GST_DEBUG_OBJECT (self, "Subclass needs more data to decide on caps");
goto done;
}
if ((caps == NULL || gst_caps_is_empty (caps)) && ret >= GST_FLOW_OK) {
ret = GST_FLOW_NOT_NEGOTIATED;
......@@ -1145,6 +1148,8 @@ gst_aggregator_aggregate_func (GstAggregator * self)
flow_return = gst_aggregator_update_src_caps (self);
if (flow_return != GST_FLOW_OK)
gst_pad_mark_reconfigure (GST_AGGREGATOR_SRC_PAD (self));
if (flow_return == GST_AGGREGATOR_FLOW_NEED_DATA)
flow_return = GST_FLOW_OK;
}
if (timeout || flow_return >= GST_FLOW_OK) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment