libxvid: use the AVFrame API properly.

This commit is contained in:
Anton Khirnov 2013-11-09 10:14:46 +01:00
parent 863a670e48
commit ffe04c3303
1 changed files with 4 additions and 4 deletions

View File

@ -54,7 +54,6 @@ struct xvid_context {
int me_flags; /**< Motion Estimation flags */ int me_flags; /**< Motion Estimation flags */
int qscale; /**< Do we use constant scale? */ int qscale; /**< Do we use constant scale? */
int quicktime_format; /**< Are we in a QT-based format? */ int quicktime_format; /**< Are we in a QT-based format? */
AVFrame encoded_picture; /**< Encoded frame information */
char *twopassbuffer; /**< Character buffer for two-pass */ char *twopassbuffer; /**< Character buffer for two-pass */
char *old_twopassbuffer; /**< Old character buffer (two-pass) */ char *old_twopassbuffer; /**< Old character buffer (two-pass) */
char *twopassfile; /**< second pass temp file name */ char *twopassfile; /**< second pass temp file name */
@ -606,7 +605,9 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) {
} }
x->encoder_handle = xvid_enc_create.handle; x->encoder_handle = xvid_enc_create.handle;
avctx->coded_frame = &x->encoded_picture; avctx->coded_frame = av_frame_alloc();
if (!avctx->coded_frame)
return AVERROR(ENOMEM);
return 0; return 0;
} }
@ -617,7 +618,7 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
int xerr, i, ret, user_packet = !!pkt->data; int xerr, i, ret, user_packet = !!pkt->data;
char *tmp; char *tmp;
struct xvid_context *x = avctx->priv_data; struct xvid_context *x = avctx->priv_data;
AVFrame *p = &x->encoded_picture; AVFrame *p = avctx->coded_frame;
int mb_width = (avctx->width + 15) / 16; int mb_width = (avctx->width + 15) / 16;
int mb_height = (avctx->height + 15) / 16; int mb_height = (avctx->height + 15) / 16;
@ -633,7 +634,6 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
/* Start setting up the frame */ /* Start setting up the frame */
xvid_enc_frame.version = XVID_VERSION; xvid_enc_frame.version = XVID_VERSION;
xvid_enc_stats.version = XVID_VERSION; xvid_enc_stats.version = XVID_VERSION;
*p = *picture;
/* Let Xvid know where to put the frame. */ /* Let Xvid know where to put the frame. */
xvid_enc_frame.bitstream = pkt->data; xvid_enc_frame.bitstream = pkt->data;