Make an aqscale parameter (equivalent to -aq option in ffmpeg) available in mencoder to get bitrate control for vorbis to work. Original patch by Debargha Mukherjee. Signed-off-by: Tobias Diedrich Index: mplayer-patchset1/libmpcodecs/ae_lavc.c =================================================================== --- mplayer-patchset1.orig/libmpcodecs/ae_lavc.c 2010-12-21 21:17:42.269376000 +0100 +++ mplayer-patchset1/libmpcodecs/ae_lavc.c 2010-12-22 11:35:54.133756000 +0100 @@ -195,6 +195,12 @@ lavc_actx->bit_rate = encoder->params.bitrate = lavc_param_abitrate * 1000; else lavc_actx->bit_rate = encoder->params.bitrate = lavc_param_abitrate; + + if(lavc_param_aqscale >= 0.0){ + lavc_actx->flags |= CODEC_FLAG_QSCALE; + lavc_actx->global_quality = (int)(FF_QP2LAMBDA * lavc_param_aqscale + 0.5); + } + if(lavc_param_audio_avopt){ if(parse_avopts(lavc_actx, lavc_param_audio_avopt) < 0){ mp_msg(MSGT_MENCODER,MSGL_ERR, "Your options /%s/ look like gibberish to me pal\n", lavc_param_audio_avopt); Index: mplayer-patchset1/libmpcodecs/ve.h =================================================================== --- mplayer-patchset1.orig/libmpcodecs/ve.h 2010-12-21 21:17:42.279364000 +0100 +++ mplayer-patchset1/libmpcodecs/ve.h 2010-12-22 11:35:54.135757000 +0100 @@ -28,6 +28,7 @@ extern char *lavc_param_acodec; extern char *lavc_param_audio_avopt; extern int lavc_param_abitrate; +extern float lavc_param_aqscale; extern int lavc_param_atag; extern int lavc_param_audio_global_header; Index: mplayer-patchset1/libmpcodecs/ve_lavc.c =================================================================== --- mplayer-patchset1.orig/libmpcodecs/ve_lavc.c 2010-12-22 11:35:53.918760000 +0100 +++ mplayer-patchset1/libmpcodecs/ve_lavc.c 2010-12-22 11:35:54.139757000 +0100 @@ -177,6 +177,7 @@ char *lavc_param_acodec = "mp2"; int lavc_param_atag = 0; int lavc_param_abitrate = 224; +float lavc_param_aqscale = -1; int lavc_param_audio_global_header= 0; static char *lavc_param_avopt = NULL; char *lavc_param_audio_avopt = NULL; @@ -188,6 +189,7 @@ const m_option_t lavcopts_conf[]={ {"acodec", &lavc_param_acodec, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"abitrate", &lavc_param_abitrate, CONF_TYPE_INT, CONF_RANGE, 1, 1000000, NULL}, + {"aqscale", &lavc_param_aqscale, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 99999.0, NULL}, {"atag", &lavc_param_atag, CONF_TYPE_INT, CONF_RANGE, 0, 0xffff, NULL}, {"vcodec", &lavc_param_vcodec, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"vbitrate", &lavc_param_vbitrate, CONF_TYPE_INT, CONF_RANGE, 4, MAX_BITRATE, NULL}, Index: mplayer-patchset1/DOCS/man/de/mplayer.1 =================================================================== --- mplayer-patchset1.orig/DOCS/man/de/mplayer.1 2010-12-22 12:14:27.048185000 +0100 +++ mplayer-patchset1/DOCS/man/de/mplayer.1 2010-12-22 12:16:42.474528000 +0100 @@ -8190,6 +8190,10 @@ Audiobitrate in kbps (Standard: 224) . .TP +.B aqscale= +Audioqualität (Codec-spezifisch) +. +.TP .B atag= Benutze die angegebene Windows-Audioformatkennung (z.B.\& atag=0x55). . Index: mplayer-patchset1/DOCS/man/en/mplayer.1 =================================================================== --- mplayer-patchset1.orig/DOCS/man/en/mplayer.1 2010-12-22 12:14:24.251421000 +0100 +++ mplayer-patchset1/DOCS/man/en/mplayer.1 2010-12-22 12:17:09.607385000 +0100 @@ -8322,6 +8322,10 @@ audio bitrate in kbps (default: 224) . .TP +.B aqscale= +audio quality (codec-specific) +. +.TP .B atag= Use the specified Windows audio format tag (e.g.\& atag=0x55). .