]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
IMC decoder always operates on 64-byte blocks
authorkostya <kostya@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 2 Feb 2008 08:26:49 +0000 (08:26 +0000)
committerkostya <kostya@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 2 Feb 2008 08:26:49 +0000 (08:26 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@11804 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/imc.c

index 6d1ec098a0bf079b44aa72dc76fcaf1de89817e6..ed2e20379bc7ef68525384cefea529a61ee43bbc 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "imcdata.h"
 
+#define IMC_BLOCK_SIZE 64
 #define IMC_FRAME_ID 0x21
 #define BANDS 32
 #define COEFFS 256
@@ -637,11 +638,10 @@ static int imc_decode_frame(AVCodecContext * avctx,
     int counter, bitscount;
     uint16_t *buf16 = (uint16_t *) buf;
 
-    /* FIXME: input should not be modified */
-    for(i = 0; i < FFMIN(buf_size, avctx->block_align) / 2; i++)
+    for(i = 0; i < IMC_BLOCK_SIZE / 2; i++)
         buf16[i] = bswap_16(buf16[i]);
 
-    init_get_bits(&q->gb, buf, 512);
+    init_get_bits(&q->gb, buf, IMC_BLOCK_SIZE * 8);
 
     /* Check the frame header */
     imc_hdr = get_bits(&q->gb, 9);
@@ -788,7 +788,7 @@ static int imc_decode_frame(AVCodecContext * avctx,
 
     *data_size = COEFFS * sizeof(int16_t);
 
-    return avctx->block_align;
+    return IMC_BLOCK_SIZE;
 }