Commit 0fe04628 authored by Kostya Shishkov's avatar Kostya Shishkov

IMC decoder always operates on 64-byte blocks

Originally committed as revision 11804 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 815f98cc
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "imcdata.h" #include "imcdata.h"
#define IMC_BLOCK_SIZE 64
#define IMC_FRAME_ID 0x21 #define IMC_FRAME_ID 0x21
#define BANDS 32 #define BANDS 32
#define COEFFS 256 #define COEFFS 256
...@@ -637,11 +638,10 @@ static int imc_decode_frame(AVCodecContext * avctx, ...@@ -637,11 +638,10 @@ static int imc_decode_frame(AVCodecContext * avctx,
int counter, bitscount; int counter, bitscount;
uint16_t *buf16 = (uint16_t *) buf; uint16_t *buf16 = (uint16_t *) buf;
/* FIXME: input should not be modified */ for(i = 0; i < IMC_BLOCK_SIZE / 2; i++)
for(i = 0; i < FFMIN(buf_size, avctx->block_align) / 2; i++)
buf16[i] = bswap_16(buf16[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 */ /* Check the frame header */
imc_hdr = get_bits(&q->gb, 9); imc_hdr = get_bits(&q->gb, 9);
...@@ -788,7 +788,7 @@ static int imc_decode_frame(AVCodecContext * avctx, ...@@ -788,7 +788,7 @@ static int imc_decode_frame(AVCodecContext * avctx,
*data_size = COEFFS * sizeof(int16_t); *data_size = COEFFS * sizeof(int16_t);
return avctx->block_align; return IMC_BLOCK_SIZE;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment