1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

libxvid: Do not entangle coded_frame

This commit is contained in:
Vittorio Giovara 2015-07-15 18:41:13 +01:00
parent 56672aeaee
commit 7fc8d8a1b3

View File

@ -663,7 +663,6 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
{
int xerr, i, ret, user_packet = !!pkt->data;
struct xvid_context *x = avctx->priv_data;
AVFrame *p = avctx->coded_frame;
int mb_width = (avctx->width + 15) / 16;
int mb_height = (avctx->height + 15) / 16;
char *tmp;
@ -749,23 +748,24 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
if (xerr > 0) {
*got_packet = 1;
p->quality = xvid_enc_stats.quant * FF_QP2LAMBDA;
avctx->coded_frame->quality = xvid_enc_stats.quant * FF_QP2LAMBDA;
if (xvid_enc_stats.type == XVID_TYPE_PVOP)
p->pict_type = AV_PICTURE_TYPE_P;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
else if (xvid_enc_stats.type == XVID_TYPE_BVOP)
p->pict_type = AV_PICTURE_TYPE_B;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_B;
else if (xvid_enc_stats.type == XVID_TYPE_SVOP)
p->pict_type = AV_PICTURE_TYPE_S;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_S;
else
p->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
if (xvid_enc_frame.out_flags & XVID_KEYFRAME) {
p->key_frame = 1;
avctx->coded_frame->key_frame = 1;
pkt->flags |= AV_PKT_FLAG_KEY;
if (x->quicktime_format)
return xvid_strip_vol_header(avctx, pkt,
xvid_enc_stats.hlength, xerr);
} else
p->key_frame = 0;
} else {
avctx->coded_frame->key_frame = 0;
}
pkt->size = xerr;