Browse Source

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>
tags/n1.0
Alberto Delmás Kostya Shishkov 13 years ago
parent
commit
ede3d6400d
3 changed files with 10 additions and 5 deletions
  1. +6
    -1
      libavcodec/mss1.c
  2. +0
    -4
      libavcodec/mss12.c
  3. +4
    -0
      libavcodec/mss2.c

+ 6
- 1
libavcodec/mss1.c 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)


+ 0
- 4
libavcodec/mss12.c 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;


+ 4
- 0
libavcodec/mss2.c 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;
}



Loading…
Cancel
Save