mirror of https://git.ffmpeg.org/ffmpeg.git
libxvid: use the AVFrame API properly.
This commit is contained in:
parent
863a670e48
commit
ffe04c3303
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue