VQA v1 support
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 29 Nov 2006 05:40:37 +0000 (05:40 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 29 Nov 2006 05:40:37 +0000 (05:40 +0000)
Originally committed as revision 7183 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vqavideo.c

index 2a546d8..912ced0 100644 (file)
@@ -471,7 +471,22 @@ static void vqa_decode_chunk(VqaContext *s)
             case 1:
 /* still need sample media for this case (only one game, "Legend of
  * Kyrandia III : Malcolm's Revenge", is known to use this version) */
-                lines = 0;
+                lobyte = s->decode_buffer[lobytes * 2];
+                hibyte = s->decode_buffer[(lobytes * 2) + 1];
+                vector_index = ((hibyte << 8) | lobyte) >> 3;
+                vector_index <<= index_shift;
+                lines = s->vector_height;
+                /* uniform color fill - a quick hack */
+                if (hibyte == 0xFF) {
+                    while (lines--) {
+                        s->frame.data[0][pixel_ptr + 0] = 255 - lobyte;
+                        s->frame.data[0][pixel_ptr + 1] = 255 - lobyte;
+                        s->frame.data[0][pixel_ptr + 2] = 255 - lobyte;
+                        s->frame.data[0][pixel_ptr + 3] = 255 - lobyte;
+                        pixel_ptr += s->frame.linesize[0];
+                    }
+                    lines=0;
+                }
                 break;
 
             case 2: