[3/4] interplayvideo: Handle changed video dimensions on the fly

Message ID 1325848585-98200-3-git-send-email-martin@martin.st
State Committed
Commit 17aa02b9a112398f8d9f74dcb3db55c31e91c8fe
Headers show

Commit Message

Martin Storsjö Jan. 6, 2012, 11:16 a.m.
From: Paul B Mahol <onemda@gmail.com>

---
 libavcodec/interplayvideo.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

Comments

Paul B Mahol Jan. 6, 2012, 3:49 p.m. | #1
On 1/6/12, Martin Storsjoe <martin@martin.st> wrote:
> From: Paul B Mahol <onemda@gmail.com>
>
> ---
>  libavcodec/interplayvideo.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
>

OK ;)

Patch

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index db98bec..724f5f1 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"),
 };