From b3a5d0039cb9b14421d6f1cc4fa38f316ccf9f0c Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Sat, 11 Oct 2003 01:11:29 +0000 Subject: [PATCH] support a few more types of VQA files Originally committed as revision 2349 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vqavideo.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c index 28eea1df47..174116dbc3 100644 --- a/libavcodec/vqavideo.c +++ b/libavcodec/vqavideo.c @@ -312,6 +312,7 @@ static void vqa_decode_chunk(VqaContext *s) int i; unsigned char r, g, b; unsigned int *palette32; + int index_shift; int cbf0_chunk = -1; int cbfz_chunk = -1; @@ -462,6 +463,10 @@ static void vqa_decode_chunk(VqaContext *s) s->decode_buffer, s->decode_buffer_size, 1); /* render the final PAL8 frame */ + if (s->vector_height == 4) + index_shift = 4; + else + index_shift = 3; for (y = 0; y < s->frame.linesize[0] * s->height; y += s->frame.linesize[0] * s->vector_height) { @@ -482,7 +487,7 @@ static void vqa_decode_chunk(VqaContext *s) lobyte = s->decode_buffer[lobytes]; hibyte = s->decode_buffer[hibytes]; vector_index = (hibyte << 8) | lobyte; - vector_index *= 8; + vector_index <<= index_shift; lines = s->vector_height; break;