]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/kmvc.c
Merge remote-tracking branch 'tjoppen/opatom_demuxing_and_seeking'
[ffmpeg] / libavcodec / kmvc.c
index 7ac4c01fba0d01973cc8cb6c836544f1725a6f44..8663c9524a8fbd4ac04537bd06c8ee0428301edf 100644 (file)
@@ -238,7 +238,7 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *data_size, AVPa
     if (ctx->pic.data[0])
         avctx->release_buffer(avctx, &ctx->pic);
 
-    ctx->pic.reference = 1;
+    ctx->pic.reference = 3;
     ctx->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
     if (avctx->get_buffer(avctx, &ctx->pic) < 0) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
@@ -251,7 +251,7 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *data_size, AVPa
     if (buf[0] == 127) {
         buf += 3;
         for (i = 0; i < 127; i++) {
-            ctx->pal[i + (header & 0x81)] = AV_RB24(buf);
+            ctx->pal[i + (header & 0x81)] = 0xFF << 24 | AV_RB24(buf);
             buf += 4;
         }
         buf -= 127 * 4 + 3;
@@ -269,7 +269,7 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *data_size, AVPa
         ctx->pic.palette_has_changed = 1;
         // palette starts from index 1 and has 127 entries
         for (i = 1; i <= ctx->palsize; i++) {
-            ctx->pal[i] = bytestream_get_be24(&buf);
+            ctx->pal[i] = 0xFF << 24 | bytestream_get_be24(&buf);
         }
     }
 
@@ -356,7 +356,7 @@ static av_cold int decode_init(AVCodecContext * avctx)
     c->prev = c->frm1;
 
     for (i = 0; i < 256; i++) {
-        c->pal[i] = i * 0x10101;
+        c->pal[i] = 0xFF << 24 | i * 0x10101;
     }
 
     if (avctx->extradata_size < 12) {