Commit 2c923983 authored by Michael Niedermayer's avatar Michael Niedermayer

qpeg: reset palette on seeks

Fixes Ticket1921
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 2754dbb6
......@@ -301,6 +301,18 @@ static int decode_frame(AVCodecContext *avctx,
return avpkt->size;
}
static void decode_flush(AVCodecContext *avctx){
QpegContext * const a = avctx->priv_data;
int i, pal_size;
const uint8_t *pal_src;
pal_size = FFMIN(1024U, avctx->extradata_size);
pal_src = avctx->extradata + avctx->extradata_size - pal_size;
for (i=0; i<pal_size/4; i++)
a->pal[i] = 0xFFU<<24 | AV_RL32(pal_src+4*i);
}
static av_cold int decode_init(AVCodecContext *avctx){
QpegContext * const a = avctx->priv_data;
......@@ -309,6 +321,8 @@ static av_cold int decode_init(AVCodecContext *avctx){
a->avctx = avctx;
avctx->pix_fmt= AV_PIX_FMT_PAL8;
decode_flush(avctx);
return 0;
}
......@@ -333,6 +347,7 @@ AVCodec ff_qpeg_decoder = {
.init = decode_init,
.close = decode_end,
.decode = decode_frame,
.flush = decode_flush,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Q-team QPEG"),
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment