ra144dec: use a more descriptive calculation for output data size
authorJustin Ruggles <justin.ruggles@gmail.com>
Wed, 14 Sep 2011 18:24:02 +0000 (14:24 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Mon, 10 Oct 2011 15:38:57 +0000 (11:38 -0400)
libavcodec/ra144dec.c

index 10c85b7..6707601 100644 (file)
@@ -64,13 +64,15 @@ static int ra144_decode_frame(AVCodecContext * avctx, void *vdata,
     uint16_t block_coefs[4][10]; // LPC coefficients of each sub-block
     unsigned int lpc_refl[10];   // LPC reflection coefficients of the frame
     int i, j;
+    int out_size;
     int16_t *data = vdata;
     unsigned int energy;
 
     RA144Context *ractx = avctx->priv_data;
     GetBitContext gb;
 
-    if (*data_size < 2*160)
+    out_size = NBLOCKS * BLOCKSIZE * av_get_bytes_per_sample(avctx->sample_fmt);
+    if (*data_size < out_size)
         return -1;
 
     if(buf_size < 20) {
@@ -110,7 +112,7 @@ static int ra144_decode_frame(AVCodecContext * avctx, void *vdata,
 
     FFSWAP(unsigned int *, ractx->lpc_coef[0], ractx->lpc_coef[1]);
 
-    *data_size = 2*160;
+    *data_size = out_size;
     return 20;
 }