From 2d8591c27e2dc582a7020e2580e16278dbfbddff Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Sat, 9 Apr 2011 15:49:51 +0200 Subject: make containers pass palette change in AVPacket Signed-off-by: Luca Barbato --- libavcodec/qtrle.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'libavcodec/qtrle.c') diff --git a/libavcodec/qtrle.c b/libavcodec/qtrle.c index a8cc903fcb..e14c306c6b 100644 --- a/libavcodec/qtrle.c +++ b/libavcodec/qtrle.c @@ -46,6 +46,7 @@ typedef struct QtrleContext { const unsigned char *buf; int size; + uint32_t pal[256]; } QtrleContext; #define CHECK_STREAM_PTR(n) \ @@ -511,12 +512,15 @@ static int qtrle_decode_frame(AVCodecContext *avctx, } if(has_palette) { - /* make the palette available on the way out */ - memcpy(s->frame.data[1], s->avctx->palctrl->palette, AVPALETTE_SIZE); - if (s->avctx->palctrl->palette_changed) { + const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL); + + if (pal) { s->frame.palette_has_changed = 1; - s->avctx->palctrl->palette_changed = 0; + memcpy(s->pal, pal, AVPALETTE_SIZE); } + + /* make the palette available on the way out */ + memcpy(s->frame.data[1], s->pal, AVPALETTE_SIZE); } done: -- cgit v1.2.3