[FFmpeg-devel] [PATCH 3/4] Implement dynamic memory allocation for MJPEG's picture
Måns Rullgård
mans
Wed Feb 16 22:38:02 CET 2011
Anatoly Nenashev <anatoly.nenashev at ovsoft.ru> writes:
> From 38608bf9c49c2ce2c7b3edbfb4d4641ca160a990 Mon Sep 17 00:00:00 2001
> From: anatoly <anatoly.nenashev at ovsoft.ru>
> Date: Tue, 15 Feb 2011 11:33:56 +0300
> Subject: [PATCH 3/4] Implement dynamic memory allocation for MJPEG's picture
>
> ---
> libavcodec/jpeglsdec.c | 18 +++++++++---------
> libavcodec/mjpegbdec.c | 2 +-
> libavcodec/mjpegdec.c | 44 +++++++++++++++++++++++++++-----------------
> libavcodec/mjpegdec.h | 2 +-
> 4 files changed, 38 insertions(+), 28 deletions(-)
[...]
> diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
> index 9792616..2db6760 100644
> --- a/libavcodec/mjpegdec.c
> +++ b/libavcodec/mjpegdec.c
> @@ -81,6 +81,13 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
> {
> MJpegDecodeContext *s = avctx->priv_data;
>
> + if (!s->picture_ptr) {
> + s->picture_ptr = av_mallocz(sizeof(AVFrame));
> + if (!s->picture_ptr)
> + return AVERROR(ENOMEM);
> + s->picture_ptr->reference = 0;
> + }
> +
> s->avctx = avctx;
> dsputil_init(&s->dsp, avctx);
> ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct);
[...]
> diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
> index 9c78ab2..a1dee59 100644
> --- a/libavcodec/mjpegdec.h
> +++ b/libavcodec/mjpegdec.h
> @@ -80,7 +80,7 @@ typedef struct MJpegDecodeContext {
> int h_max, v_max; /* maximum h and v counts */
> int quant_index[4]; /* quant table index for each component */
> int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */
> - AVFrame picture; /* picture structure */
> + AVFrame *picture_ptr; /* pointer to picture structure */
> int got_picture; ///< we found a SOF and picture is valid, too.
> int linesize[MAX_COMPONENTS]; ///< linesize << interlaced
> int8_t *qscale_table;
> --
Why don't you simply make an array: AVFrame picture[2]?
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list