From 621bf0d22e6861e5ef1b2b72f68e6ccfc2dec7ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 6 Dec 2013 00:22:20 +0000 Subject: [PATCH] gsmdec: fix decoding of audio/ms-gsm variant Alternates between 33 and 32 byte frames, but must start with a 33 byte frame. This has been broken for ages since the element was ported to the audio decoder base class. https://bugzilla.gnome.org/show_bug.cgi?id=709416 --- ext/gsm/gstgsmdec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/gsm/gstgsmdec.c b/ext/gsm/gstgsmdec.c index 95c2c11378..6547b5f0d7 100644 --- a/ext/gsm/gstgsmdec.c +++ b/ext/gsm/gstgsmdec.c @@ -192,17 +192,17 @@ gst_gsmdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, size = gst_adapter_available (adapter); g_return_val_if_fail (size > 0, GST_FLOW_ERROR); - /* WAV49 requires alternating 33 and 32 bytes of input */ - if (gsmdec->use_wav49) { - gsmdec->needed = (gsmdec->needed == 33 ? 32 : 33); - } - if (size < gsmdec->needed) return GST_FLOW_EOS; *offset = 0; *length = gsmdec->needed; + /* WAV49 requires alternating 33 and 32 bytes of input */ + if (gsmdec->use_wav49) { + gsmdec->needed = (gsmdec->needed == 33 ? 32 : 33); + } + return GST_FLOW_OK; }