mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-12 18:35:35 +00:00
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.
This commit is contained in:
parent
5bf13cdd53
commit
549cc941eb
1 changed files with 5 additions and 0 deletions
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue