Browse Source

libxvid: Do not entangle coded_frame

tags/n2.8
Vittorio Giovara 10 years ago
parent
commit
7fc8d8a1b3
1 changed files with 9 additions and 9 deletions
  1. +9
    -9
      libavcodec/libxvid.c

+ 9
- 9
libavcodec/libxvid.c View File

@@ -663,7 +663,6 @@ 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;
struct xvid_context *x = avctx->priv_data; struct xvid_context *x = avctx->priv_data;
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;
char *tmp; char *tmp;
@@ -749,23 +748,24 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
if (xerr > 0) { if (xerr > 0) {
*got_packet = 1; *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) 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) 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) 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 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) { if (xvid_enc_frame.out_flags & XVID_KEYFRAME) {
p->key_frame = 1;
avctx->coded_frame->key_frame = 1;
pkt->flags |= AV_PKT_FLAG_KEY; pkt->flags |= AV_PKT_FLAG_KEY;
if (x->quicktime_format) if (x->quicktime_format)
return xvid_strip_vol_header(avctx, pkt, return xvid_strip_vol_header(avctx, pkt,
xvid_enc_stats.hlength, xerr); xvid_enc_stats.hlength, xerr);
} else
p->key_frame = 0;
} else {
avctx->coded_frame->key_frame = 0;
}


pkt->size = xerr; pkt->size = xerr;




Loading…
Cancel
Save