From 1a700c3ae671694c206bed7939b8462db652a9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Sat, 14 May 2016 14:41:28 +0200 Subject: [PATCH] opusdec: Use GST_AUDIO_DECODER_ERROR This way, the first invalid stream won't break all decoding. https://bugzilla.gnome.org/show_bug.cgi?id=766265 --- ext/opus/gstopusdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c index d403fcc280..740329a44a 100644 --- a/ext/opus/gstopusdec.c +++ b/ext/opus/gstopusdec.c @@ -554,9 +554,12 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer) gst_buffer_unmap (buf, &map); if (n < 0) { - GST_ELEMENT_ERROR (dec, STREAM, DECODE, ("Decoding error: %d", n), (NULL)); + GstFlowReturn ret = GST_FLOW_ERROR; + gst_buffer_unref (outbuf); - return GST_FLOW_ERROR; + GST_AUDIO_DECODER_ERROR (dec, 1, STREAM, DECODE, ("Error decoding stream"), + ("Decoding error (%d): %s", n, opus_strerror (n)), ret); + return ret; } GST_DEBUG_OBJECT (dec, "decoded %d samples", n); gst_buffer_set_size (outbuf, n * 2 * dec->n_channels);