MSS1 and MSS2: set final pixel format after common stuff has been initialised

This way it won't interfere with WMV9 initialisation inside MSS2 decoder and
avplay will play it fine.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
This commit is contained in:
Alberto Delmás 2012-08-31 07:59:36 +02:00 committed by Kostya Shishkov
parent ee769c6a7c
commit ede3d6400d
3 changed files with 10 additions and 5 deletions

View File

@ -189,11 +189,16 @@ static int mss1_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
static av_cold int mss1_decode_init(AVCodecContext *avctx)
{
MSS1Context * const c = avctx->priv_data;
int ret;
c->ctx.avctx = avctx;
avctx->coded_frame = &c->pic;
return ff_mss12_decode_init(&c->ctx, 0);
ret = ff_mss12_decode_init(&c->ctx, 0);
avctx->pix_fmt = PIX_FMT_PAL8;
return ret;
}
static av_cold int mss1_decode_end(AVCodecContext *avctx)

View File

@ -690,10 +690,6 @@ av_cold int ff_mss12_decode_init(MSS12Context *c, int version)
return AVERROR(ENOMEM);
}
avctx->pix_fmt = version ? c->free_colours == 127 ? PIX_FMT_RGB555
: PIX_FMT_RGB24
: PIX_FMT_PAL8;
codec_init(c, version);
return 0;

View File

@ -844,6 +844,10 @@ static av_cold int mss2_decode_init(AVCodecContext *avctx)
return ret;
}
ff_mss2dsp_init(&ctx->dsp);
avctx->pix_fmt = c->free_colours == 127 ? PIX_FMT_RGB555
: PIX_FMT_RGB24;
return 0;
}