aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlberto Delmás <adelmas@gmail.com>2012-08-31 07:59:36 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2012-08-31 08:08:43 +0200
commitede3d6400d7c06863e6eb4bcff5f676480ae6b5e (patch)
treef20968e85f3701cd55e7d426b340337f6b4d427d
parentee769c6a7c1d4ec6560f5e5a6f457b770b10fb33 (diff)
downloadffmpeg-ede3d6400d7c06863e6eb4bcff5f676480ae6b5e.tar.gz
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>
-rw-r--r--libavcodec/mss1.c7
-rw-r--r--libavcodec/mss12.c4
-rw-r--r--libavcodec/mss2.c4
3 files changed, 10 insertions, 5 deletions
diff --git a/libavcodec/mss1.c b/libavcodec/mss1.c
index ada479eee7..caf0328ad0 100644
--- a/libavcodec/mss1.c
+++ b/libavcodec/mss1.c
@@ -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)
diff --git a/libavcodec/mss12.c b/libavcodec/mss12.c
index f0f23c0f8e..18f2f2808f 100644
--- a/libavcodec/mss12.c
+++ b/libavcodec/mss12.c
@@ -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;
diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c
index c0c47dc8d3..2a0bf47cde 100644
--- a/libavcodec/mss2.c
+++ b/libavcodec/mss2.c
@@ -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;
}