summaryrefslogtreecommitdiff
path: root/gst/audiomixer
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2015-07-02 18:33:43 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2015-07-30 14:00:05 -0400
commit10ef6403b68e33a35ff9ca177b672802c0508193 (patch)
tree70b1ac20195149a3eda0f74a62446f510066101a /gst/audiomixer
parent3f2bc1e4b2f893d4a93a108bd3738444620821f4 (diff)
downloadgstreamer-plugins-bad-10ef6403b68e33a35ff9ca177b672802c0508193.tar.gz
audiointerleave: Avoid caps processing if not yet negotiated
https://bugzilla.gnome.org/show_bug.cgi?id=745768
Diffstat (limited to 'gst/audiomixer')
-rw-r--r--gst/audiomixer/gstaudiointerleave.c7
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);