# HG changeset patch # User mru # Date 1110978570 0 # Node ID 1e52ef4887b5642eaacced0b52394a811fa8b523 # Parent d0a58dca5ad2e3047d2dba367e181b317b044ae2 set constant QP from AVCodecContext.global_quality. set key_frame flag on coded_picture correctly. diff -r d0a58dca5ad2 -r 1e52ef4887b5 x264.c --- a/x264.c Tue Mar 15 21:05:34 2005 +0000 +++ b/x264.c Wed Mar 16 13:09:30 2005 +0000 @@ -104,7 +104,8 @@ break; } - x4->out_pic.key_frame = x4->out_pic.key_frame == FF_I_TYPE; + x4->out_pic.key_frame = pic_out.i_type == X264_TYPE_IDR; + x4->out_pic.quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA; return bufsize; } @@ -139,6 +140,10 @@ x4->params.rc.i_qp_max = avctx->qmax; x4->params.rc.i_qp_step = avctx->max_qdiff; + if(avctx->flags & CODEC_FLAG_QSCALE && avctx->global_quality > 0) + x4->params.rc.i_qp_constant = + 12 + 6 * log2((double) avctx->global_quality / FF_QP2LAMBDA); + x4->params.i_width = avctx->width; x4->params.i_height = avctx->height; x4->params.vui.i_sar_width = avctx->sample_aspect_ratio.num;