Fix buffer handling for stereo mace files, fixes some random sig11
authorAlan Curry <pacman@world.std.com>
Tue, 5 Sep 2006 21:17:30 +0000 (21:17 +0000)
committerRoberto Togni <r_togni@tiscali.it>
Tue, 5 Sep 2006 21:17:30 +0000 (21:17 +0000)
Patch by Alan Curry !<! pacman !@! TheWorld !.! com !>!

Originally committed as revision 6178 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mace.c

index a104fb0..be50d3d 100644 (file)
@@ -410,18 +410,18 @@ static int mace_decode_frame(AVCodecContext *avctx,
 #ifdef DEBUG
 puts("mace_decode_frame[3]()");
 #endif
-        Exp1to3(c, buf, samples, buf_size / 2, avctx->channels, 1);
+        Exp1to3(c, buf, samples, buf_size / 2 / avctx->channels, avctx->channels, 1);
         if (avctx->channels == 2)
-            Exp1to3(c, buf, samples+1, buf_size / 2, 2, 2);
+            Exp1to3(c, buf, samples+1, buf_size / 2 / 2, 2, 2);
         *data_size = 2 * 3 * buf_size;
         break;
     case CODEC_ID_MACE6:
 #ifdef DEBUG
 puts("mace_decode_frame[6]()");
 #endif
-        Exp1to6(c, buf, samples, buf_size, avctx->channels, 1);
+        Exp1to6(c, buf, samples, buf_size / avctx->channels, avctx->channels, 1);
         if (avctx->channels == 2)
-            Exp1to6(c, buf, samples+1, buf_size, 2, 2);
+            Exp1to6(c, buf, samples+1, buf_size / 2, 2, 2);
         *data_size = 2 * 6 * buf_size;
         break;
     default: