summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-01-24 01:29:03 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-01-24 15:36:38 +0100
commit20aed9ed4f4cae6a2feabbea5fb48bad75359538 (patch)
treebd453d0395d6a82f96331dea905fdcc5bff619f2 /ffmpeg.c
parent969ba65ecc8910b7f386d2a12f7012f702bccab3 (diff)
ffmpeg: Allocate buffers of the size needed by the decoder.
Fixes bug127 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index f7da14c8c4..0fe418647a 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -469,9 +469,8 @@ static void reset_options(OptionsContext *o, int is_input)
init_opts();
}
-static int alloc_buffer(InputStream *ist, FrameBuffer **pbuf)
+static int alloc_buffer(AVCodecContext *s, InputStream *ist, FrameBuffer **pbuf)
{
- AVCodecContext *s = ist->st->codec;
FrameBuffer *buf = av_mallocz(sizeof(*buf));
int ret, i;
const int pixel_size = av_pix_fmt_descriptors[s->pix_fmt].comp[0].step_minus1+1;
@@ -547,7 +546,7 @@ static int codec_get_buffer(AVCodecContext *s, AVFrame *frame)
FrameBuffer *buf;
int ret, i;
- if (!ist->buffer_pool && (ret = alloc_buffer(ist, &ist->buffer_pool)) < 0)
+ if (!ist->buffer_pool && (ret = alloc_buffer(s, ist, &ist->buffer_pool)) < 0)
return ret;
buf = ist->buffer_pool;
@@ -557,7 +556,7 @@ static int codec_get_buffer(AVCodecContext *s, AVFrame *frame)
av_freep(&buf->base[0]);
av_free(buf);
ist->dr1 = 0;
- if ((ret = alloc_buffer(ist, &buf)) < 0)
+ if ((ret = alloc_buffer(s, ist, &buf)) < 0)
return ret;
}
buf->refcount++;