diff options
author | Peter Ross <pross@xvid.org> | 2011-03-13 08:27:05 +0300 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2011-03-14 15:07:29 +0300 |
commit | 6e7cf13b6b1d0e08969b64129b9022cc1171d875 (patch) | |
tree | 8852cc6dd1223ec3359cd002cfb4e58322a01b34 /libavcodec | |
parent | 7f05c164d8ccbfded9bcefdb41942bc28d85c87a (diff) |
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 <rsbultje@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mmvideo.c | 9 |
1 files 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; |