]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/kmvc.c
avfilter: Remove deprecated resample_lavr_opts
[ffmpeg] / libavcodec / kmvc.c
index cd9e32f443064798a60b5f8757d27feb85dc96b1..56c1977254158614c22e272541465ffd08207539 100644 (file)
 typedef struct KmvcContext {
     AVCodecContext *avctx;
 
+    GetByteContext g;
+    uint8_t *cur, *prev;
     int setpal;
     int palsize;
     uint32_t pal[MAX_PALSIZE];
-    uint8_t *cur, *prev;
     uint8_t frm0[320 * 200], frm1[320 * 200];
-    GetByteContext g;
 } KmvcContext;
 
 typedef struct BitBuf {
@@ -275,6 +275,8 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame,
     if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
         return ret;
 
+    frame->palette_has_changed = ff_copy_palette(ctx->pal, avpkt, avctx);
+
     header = bytestream2_get_byte(&ctx->g);
 
     /* blocksize 127 is really palette change event */
@@ -303,9 +305,6 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame,
         }
     }
 
-    if (ff_copy_palette(ctx->pal, avpkt, avctx))
-        frame->palette_has_changed = 1;
-
     if (ctx->setpal) {
         ctx->setpal = 0;
         frame->palette_has_changed = 1;
@@ -346,13 +345,7 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame,
     }
 
     /* flip buffers */
-    if (ctx->cur == ctx->frm0) {
-        ctx->cur = ctx->frm1;
-        ctx->prev = ctx->frm0;
-    } else {
-        ctx->cur = ctx->frm0;
-        ctx->prev = ctx->frm1;
-    }
+    FFSWAP(uint8_t *, ctx->cur, ctx->prev);
 
     *got_frame = 1;