From 17aa02b9a112398f8d9f74dcb3db55c31e91c8fe Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Fri, 6 Jan 2012 03:07:31 +0200 Subject: interplayvideo: Handle changed video dimensions on the fly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavcodec/interplayvideo.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libavcodec/interplayvideo.c') diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c index db98bec9c5..724f5f1850 100644 --- a/libavcodec/interplayvideo.c +++ b/libavcodec/interplayvideo.c @@ -1019,9 +1019,6 @@ static av_cold int ipvideo_decode_init(AVCodecContext *avctx) dsputil_init(&s->dsp, avctx); - /* decoding map contains 4 bits of information per 8x8 block */ - s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2); - s->current_frame.data[0] = s->last_frame.data[0] = s->second_last_frame.data[0] = NULL; @@ -1036,6 +1033,9 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, int buf_size = avpkt->size; IpvideoContext *s = avctx->priv_data; + /* decoding map contains 4 bits of information per 8x8 block */ + s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2); + /* compressed buffer needs to be large enough to at least hold an entire * decoding map */ if (buf_size < s->decoding_map_size) @@ -1096,6 +1096,6 @@ AVCodec ff_interplay_video_decoder = { .init = ipvideo_decode_init, .close = ipvideo_decode_end, .decode = ipvideo_decode_frame, - .capabilities = CODEC_CAP_DR1, + .capabilities = CODEC_CAP_DR1 | CODEC_CAP_PARAM_CHANGE, .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"), }; -- cgit v1.2.3