From 6e7cf13b6b1d0e08969b64129b9022cc1171d875 Mon Sep 17 00:00:00 2001 From: Peter Ross Date: Sun, 13 Mar 2011 16:27:05 +1100 Subject: [PATCH] mm decoder: move buffer allocation from decode_init() to decode_frame() This permits playback in ffplay when libavfilter is enabled. Signed-off-by: Ronald S. Bultje --- libavcodec/mmvideo.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c index 60e00fbe29..92420b1d25 100644 --- a/libavcodec/mmvideo.c +++ b/libavcodec/mmvideo.c @@ -59,10 +59,6 @@ static av_cold int mm_decode_init(AVCodecContext *avctx) avctx->pix_fmt = PIX_FMT_PAL8; s->frame.reference = 1; - if (avctx->get_buffer(avctx, &s->frame)) { - av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; - } return 0; } @@ -182,6 +178,11 @@ static int mm_decode_frame(AVCodecContext *avctx, buf += MM_PREAMBLE_SIZE; buf_size -= MM_PREAMBLE_SIZE; + if (avctx->reget_buffer(avctx, &s->frame) < 0) { + av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); + return -1; + } + switch(type) { case MM_TYPE_PALETTE : mm_decode_pal(s, buf, buf_end); return buf_size; case MM_TYPE_INTRA : mm_decode_intra(s, 0, 0, buf, buf_size); break;