diff x264.c @ 2563:1e52ef4887b5 libavcodec

set constant QP from AVCodecContext.global_quality. set key_frame flag on coded_picture correctly.
author mru
date Wed, 16 Mar 2005 13:09:30 +0000
parents e5af3bc1d038
children f06d5bf3da71
line wrap: on
line diff
--- 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;