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:
parent
56672aeaee
commit
7fc8d8a1b3
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user