audiointerleave: Avoid caps processing if not yet negotiated

https://bugzilla.gnome.org/show_bug.cgi?id=745768
This commit is contained in:
Olivier Crête 2015-07-02 18:33:43 -04:00
parent f6507af946
commit c2794d1ad0

View file

@ -514,6 +514,11 @@ gst_audio_interleave_aggregate (GstAggregator * aggregator, gboolean timeout)
GstStructure *s;
gboolean ret;
if (self->sinkcaps == NULL || self->channels == 0) {
/* In this case, let the base class handle it */
goto not_negotiated;
}
srccaps = gst_caps_copy (self->sinkcaps);
s = gst_caps_get_structure (srccaps, 0);
@ -535,6 +540,8 @@ gst_audio_interleave_aggregate (GstAggregator * aggregator, gboolean timeout)
self->new_caps = FALSE;
}
not_negotiated:
GST_OBJECT_UNLOCK (aggregator);
return GST_AGGREGATOR_CLASS (parent_class)->aggregate (aggregator, timeout);