X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftscc.c;h=043d78d0188031e59f978a95cd4654dfda2e8d42;hb=a247ac640df3da573cd661065bf53f37863e2b46;hp=fc1ec4de0d48dd41c719d26222b55dbdbec01133;hpb=ef71ef5f30ddf1cd61e46628a04608892caf76d2;p=ffmpeg diff --git a/libavcodec/tscc.c b/libavcodec/tscc.c index fc1ec4de0d4..043d78d0188 100644 --- a/libavcodec/tscc.c +++ b/libavcodec/tscc.c @@ -38,6 +38,7 @@ #include #include "avcodec.h" +#include "decode.h" #include "internal.h" #include "msrledec.h" @@ -72,15 +73,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, int palette_has_changed = 0; if (c->avctx->pix_fmt == AV_PIX_FMT_PAL8) { - int size; - const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &size); - - if (pal && size == AVPALETTE_SIZE) { - palette_has_changed = 1; - memcpy(c->pal, pal, AVPALETTE_SIZE); - } else if (pal) { - av_log(avctx, AV_LOG_ERROR, "Palette size %d is wrong\n", size); - } + palette_has_changed = ff_copy_palette(c->pal, avpkt, avctx); } ret = inflateReset(&c->zstream); @@ -103,7 +96,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, return AVERROR_UNKNOWN; } - if ((ret = ff_reget_buffer(avctx, frame)) < 0) + if ((ret = ff_reget_buffer(avctx, frame, 0)) < 0) return ret; if (ret != Z_DATA_ERROR) { @@ -187,7 +180,7 @@ static av_cold int decode_end(AVCodecContext *avctx) return 0; } -AVCodec ff_tscc_decoder = { +const AVCodec ff_tscc_decoder = { .name = "camtasia", .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Capture Codec"), .type = AVMEDIA_TYPE_VIDEO,