|
|
|
@@ -268,7 +268,8 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame, |
|
|
|
int i, ret; |
|
|
|
int header; |
|
|
|
int blocksize; |
|
|
|
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL); |
|
|
|
int pal_size; |
|
|
|
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &pal_size); |
|
|
|
|
|
|
|
bytestream2_init(&ctx->g, avpkt->data, avpkt->size); |
|
|
|
|
|
|
|
@@ -303,9 +304,11 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (pal) { |
|
|
|
if (pal && pal_size == AVPALETTE_SIZE) { |
|
|
|
frame->palette_has_changed = 1; |
|
|
|
memcpy(ctx->pal, pal, AVPALETTE_SIZE); |
|
|
|
} else if (pal) { |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Palette size %d is wrong\n", pal_size); |
|
|
|
} |
|
|
|
|
|
|
|
if (ctx->setpal) { |
|
|
|
|