opus: Do not call vector_fmul_scalar on zero samples
authorKieran Kunhya <kierank@obe.tv>
Wed, 28 Oct 2015 16:01:56 +0000 (17:01 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Wed, 28 Oct 2015 16:57:07 +0000 (17:57 +0100)
The x86 variant of this function crashes in that specific case.

CC: libav-devel@libav.org
libavcodec/opusdec.c

index 919e5e3..92e651c 100644 (file)
@@ -587,7 +587,7 @@ static int opus_decode_packet(AVCodecContext *avctx, void *data,
             memset(frame->extended_data[i], 0, frame->linesize[0]);
         }
 
-        if (c->gain_i) {
+        if (c->gain_i && decoded_samples > 0) {
             c->fdsp.vector_fmul_scalar((float*)frame->extended_data[i],
                                        (float*)frame->extended_data[i],
                                        c->gain, FFALIGN(decoded_samples, 8));