Index: libmpcodecs/ve_lavc.c =================================================================== --- libmpcodecs/ve_lavc.c (revision 20571) +++ libmpcodecs/ve_lavc.c (working copy) @@ -52,6 +52,8 @@ static int lavc_param_mb_qmax = 31; static float lavc_param_lmin = 2; static float lavc_param_lmax = 31; +static float lavc_param_mb_lmin = 2; +static float lavc_param_mb_lmax = 31; static int lavc_param_vqdiff = 3; static float lavc_param_vqcompress = 0.5; static float lavc_param_vqblur = 0.5; @@ -175,6 +177,8 @@ {"mbqmax", &lavc_param_mb_qmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, {"lmin", &lavc_param_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, {"lmax", &lavc_param_lmax, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, + {"mblmin", &lavc_param_mb_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, + {"mblmax", &lavc_param_mb_lmax, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, {"vqdiff", &lavc_param_vqdiff, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, {"vqcomp", &lavc_param_vqcompress, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"vqblur", &lavc_param_vqblur, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, @@ -341,6 +345,8 @@ lavc_venc_context->mb_qmax= lavc_param_mb_qmax; lavc_venc_context->lmin= (int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5); lavc_venc_context->lmax= (int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5); + lavc_venc_context->mb_lmin= (int)(FF_QP2LAMBDA * lavc_param_mb_lmin + 0.5); + lavc_venc_context->mb_lmax= (int)(FF_QP2LAMBDA * lavc_param_mb_lmax + 0.5); lavc_venc_context->max_qdiff= lavc_param_vqdiff; lavc_venc_context->qcompress= lavc_param_vqcompress; lavc_venc_context->qblur= lavc_param_vqblur; Index: DOCS/man/en/mplayer.1 =================================================================== --- DOCS/man/en/mplayer.1 (revision 20571) +++ DOCS/man/en/mplayer.1 (working copy) @@ -7126,8 +7126,15 @@ . .TP .B lmin=<0.01\-255.0> -Minimum Lagrange multiplier for ratecontrol, you probably want it to be -equal to or lower than vqmin (default: 2.0). +Minimum frame-level Lagrange multiplier for ratecontrol (default: 2.0). +Lavc will rarely use quantizers below the value of lmin. +Lowering lmin will make lavc more likely to choose lower quantizers for +some frames, but not lower than the value of vqmin. +Likewise, raising lmin will make lavc less likely to choose low +quantizers, even if vqmin would have allowed them. +You probably want to set lmin approximately equal to vqmin. +When adaptive quantization is in use, changing lmin/lmax may have less +of an effect; see mblmin/mblmax. .RE . .TP @@ -7136,6 +7143,20 @@ .RE . .TP +.B mblmin=<0.01\-255.0> +Minimum macroblock-level Lagrange multiplier for ratecontrol +(default:2.0). +This parameter affects adaptive quantization options like qprd, +lumi_mask, etc.. +.RE +. +.TP +.B mblmax=<0.01\-255.0> +Maximum macroblock-level Lagrange multiplier for ratecontrol +(default: 31.0). +.RE +. +.TP .B vqscale=<0\-31> Constant quantizer /\: constant quality encoding (selects fixed quantizer mode). A lower value means better quality but larger files (default: 0).