diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-11-17 02:43:57 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-11-17 02:48:17 +0100 |
commit | 8d193a24f2da825aaf5382e4aa42ab533806b033 (patch) | |
tree | 179ac9e6e4fc57d0e11855418d30309ce408a1ff /libavcodec/mss3.c | |
parent | 72df87088c8a6593d66b207140edd32b4d2fb6ee (diff) | |
parent | 730bac7bab3c7dcd9fcb7c70f154e5f4cfaef9a7 (diff) | |
download | ffmpeg-8d193a24f2da825aaf5382e4aa42ab533806b033.tar.gz |
Merge commit '730bac7bab3c7dcd9fcb7c70f154e5f4cfaef9a7'
* commit '730bac7bab3c7dcd9fcb7c70f154e5f4cfaef9a7':
mss4: use the AVFrame API properly.
mss3: use the AVFrame API properly.
mss2: use the AVFrame API properly.
mss1: use the AVFrame API properly.
Conflicts:
libavcodec/mss1.c
libavcodec/mss2.c
libavcodec/mss3.c
libavcodec/mss4.c
See: 02fe531afefa7ac3fcc552f8e83461a4bfa7f868
See: ff1c13b133d548b3ce103f91999b6cc1bb7e65cc
See: 310bf283542ff81a9ec8fa7492fe7d625e80562f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mss3.c')
-rw-r--r-- | libavcodec/mss3.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/libavcodec/mss3.c b/libavcodec/mss3.c index a3aec80c2d..c6bb838045 100644 --- a/libavcodec/mss3.c +++ b/libavcodec/mss3.c @@ -803,15 +803,24 @@ static int mss3_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, return buf_size; } +static av_cold int mss3_decode_end(AVCodecContext *avctx) +{ + MSS3Context * const c = avctx->priv_data; + int i; + + av_frame_free(&c->pic); + for (i = 0; i < 3; i++) + av_freep(&c->dct_coder[i].prev_dc); + + return 0; +} + static av_cold int mss3_decode_init(AVCodecContext *avctx) { MSS3Context * const c = avctx->priv_data; int i; c->avctx = avctx; - c->pic = av_frame_alloc(); - if (!c->pic) - return AVERROR(ENOMEM); if ((avctx->width & 0xF) || (avctx->height & 0xF)) { av_log(avctx, AV_LOG_ERROR, @@ -838,6 +847,12 @@ static av_cold int mss3_decode_init(AVCodecContext *avctx) } } + c->pic = av_frame_alloc(); + if (!c->pic) { + mss3_decode_end(avctx); + return AVERROR(ENOMEM); + } + avctx->pix_fmt = AV_PIX_FMT_YUV420P; init_coders(c); @@ -845,18 +860,6 @@ static av_cold int mss3_decode_init(AVCodecContext *avctx) return 0; } -static av_cold int mss3_decode_end(AVCodecContext *avctx) -{ - MSS3Context * const c = avctx->priv_data; - int i; - - av_frame_free(&c->pic); - for (i = 0; i < 3; i++) - av_freep(&c->dct_coder[i].prev_dc); - - return 0; -} - AVCodec ff_msa1_decoder = { .name = "msa1", .long_name = NULL_IF_CONFIG_SMALL("MS ATC Screen"), |