diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-07-02 18:33:43 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-07-30 14:00:05 -0400 |
commit | 10ef6403b68e33a35ff9ca177b672802c0508193 (patch) | |
tree | 70b1ac20195149a3eda0f74a62446f510066101a | |
parent | 3f2bc1e4b2f893d4a93a108bd3738444620821f4 (diff) | |
download | gstreamer-plugins-bad-10ef6403b68e33a35ff9ca177b672802c0508193.tar.gz |
audiointerleave: Avoid caps processing if not yet negotiated
https://bugzilla.gnome.org/show_bug.cgi?id=745768
-rw-r--r-- | gst/audiomixer/gstaudiointerleave.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gst/audiomixer/gstaudiointerleave.c b/gst/audiomixer/gstaudiointerleave.c index 01ce19cca..39b86e87d 100644 --- a/gst/audiomixer/gstaudiointerleave.c +++ b/gst/audiomixer/gstaudiointerleave.c @@ -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); |