From 5b3f4b3ef590b1221d44d24345a846c1aa636b69 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 17 Dec 2013 16:27:36 +0100 Subject: [PATCH] avcodec/mjpegenc: drop dependancy on sizeof(AVFrame) Signed-off-by: Michael Niedermayer --- libavcodec/mjpegenc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index ffc29fd41f..f23343af84 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -537,8 +537,8 @@ static int amv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, { MpegEncContext *s = avctx->priv_data; - AVFrame pic = *pic_arg; - int i; + AVFrame *pic; + int i, ret; int chroma_h_shift, chroma_v_shift; av_pix_fmt_get_chroma_sub_sample(avctx->pix_fmt, &chroma_h_shift, &chroma_v_shift); @@ -547,13 +547,17 @@ static int amv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, if(s->avctx->flags & CODEC_FLAG_EMU_EDGE) return -1; + pic = av_frame_alloc(); + av_frame_ref(pic, pic_arg); //picture should be flipped upside-down for(i=0; i < 3; i++) { int vsample = i ? 2 >> chroma_v_shift : 2; - pic.data[i] += (pic.linesize[i] * (vsample * (8 * s->mb_height -((s->height/V_MAX)&7)) - 1 )); - pic.linesize[i] *= -1; + pic->data[i] += (pic->linesize[i] * (vsample * (8 * s->mb_height -((s->height/V_MAX)&7)) - 1 )); + pic->linesize[i] *= -1; } - return ff_MPV_encode_picture(avctx, pkt, &pic, got_packet); + ret = ff_MPV_encode_picture(avctx, pkt, pic, got_packet); + av_frame_free(&pic); + return ret; } #if CONFIG_MJPEG_ENCODER