]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/xan.c
Add MxPEG decoder
[ffmpeg] / libavcodec / xan.c
index 1d697c6a844ea5099e0b0cd11049e394c5f55423..520331634c3ffc42c063e853ac3825cfe6843aee 100644 (file)
@@ -358,9 +358,6 @@ static void xan_wc3_decode_frame(XanContext *s) {
     }
 }
 
-static void xan_wc4_decode_frame(XanContext *s) {
-}
-
 #if RUNTIME_GAMMA
 static inline unsigned mul(unsigned a, unsigned b)
 {
@@ -515,23 +512,12 @@ static int xan_decode_frame(AVCodecContext *avctx,
     if (!s->frame_size)
         s->frame_size = s->current_frame.linesize[0] * s->avctx->height;
 
-    if (avctx->codec->id == CODEC_ID_XAN_WC3) {
-        memcpy(s->current_frame.data[1], s->palettes + s->cur_palette * AVPALETTE_COUNT, AVPALETTE_SIZE);
-    } else {
-        AVPaletteControl *palette_control = avctx->palctrl;
-    palette_control->palette_changed = 0;
-    memcpy(s->current_frame.data[1], palette_control->palette,
-           AVPALETTE_SIZE);
-    s->current_frame.palette_has_changed = 1;
-    }
+    memcpy(s->current_frame.data[1], s->palettes + s->cur_palette * AVPALETTE_COUNT, AVPALETTE_SIZE);
 
     s->buf = buf;
     s->size = buf_size;
 
-    if (avctx->codec->id == CODEC_ID_XAN_WC3)
-        xan_wc3_decode_frame(s);
-    else if (avctx->codec->id == CODEC_ID_XAN_WC4)
-        xan_wc4_decode_frame(s);
+    xan_wc3_decode_frame(s);
 
     /* release the last frame if it is allocated */
     if (s->last_frame.data[0])
@@ -559,11 +545,12 @@ static av_cold int xan_decode_end(AVCodecContext *avctx)
 
     av_freep(&s->buffer1);
     av_freep(&s->buffer2);
+    av_freep(&s->palettes);
 
     return 0;
 }
 
-AVCodec xan_wc3_decoder = {
+AVCodec ff_xan_wc3_decoder = {
     "xan_wc3",
     AVMEDIA_TYPE_VIDEO,
     CODEC_ID_XAN_WC3,
@@ -576,17 +563,3 @@ AVCodec xan_wc3_decoder = {
     .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III / Xan"),
 };
 
-/*
-AVCodec xan_wc4_decoder = {
-    "xan_wc4",
-    AVMEDIA_TYPE_VIDEO,
-    CODEC_ID_XAN_WC4,
-    sizeof(XanContext),
-    xan_decode_init,
-    NULL,
-    xan_decode_end,
-    xan_decode_frame,
-    CODEC_CAP_DR1,
-    .long_name = NULL_IF_CONFIG_SMALL("Wing Commander IV / Xxan"),
-};
-*/