aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-17 17:09:04 +0000
committerGravatar michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-17 17:09:04 +0000
commit07629da49394f2010f41d236c612988038942412 (patch)
treeccc5784e18518961d18954ded60a9e9dfbf8d85a
parent4b7c5a1141d7b4f42478459a433cdfb5f5335619 (diff)
supporting ffmpegs "hopefully better bitrate control"
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5167 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--cfg-mencoder.h6
-rw-r--r--mencoder.c12
2 files changed, 18 insertions, 0 deletions
diff --git a/cfg-mencoder.h b/cfg-mencoder.h
index b5b65b9af0..b2c2d6a5e2 100644
--- a/cfg-mencoder.h
+++ b/cfg-mencoder.h
@@ -52,9 +52,15 @@ struct config lameopts_conf[]={
struct config lavcopts_conf[]={
{"vcodec", &lavc_param_vcodec, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"vbitrate", &lavc_param_vbitrate, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL},
+ {"vratetol", &lavc_param_vrate_tolerance, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL},
{"vhq", &lavc_param_vhq, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"vme", &lavc_param_vme, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL},
{"vqscale", &lavc_param_vqscale, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
+ {"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
+ {"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, 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},
{"keyint", &lavc_param_keyint, CONF_TYPE_INT, 0, 0, 0, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
diff --git a/mencoder.c b/mencoder.c
index cdf724a9ba..688b08d143 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -74,9 +74,15 @@ static AVPicture lavc_venc_picture;
/* video options */
char *lavc_param_vcodec = NULL;
int lavc_param_vbitrate = -1;
+int lavc_param_vrate_tolerance = 1024*1024*8;
int lavc_param_vhq = 0; /* default is realtime encoding */
int lavc_param_vme = 3;
int lavc_param_vqscale = 0;
+int lavc_param_vqmin = 3;
+int lavc_param_vqmax = 15;
+int lavc_param_vqdiff = 3;
+float lavc_param_vqcompress = 0.5;
+float lavc_param_vqblur = 0.5;
int lavc_param_keyint = -1;
#endif
@@ -1086,7 +1092,13 @@ case VCODEC_LIBAVCODEC:
lavc_venc_context.bit_rate = lavc_param_vbitrate;
else
lavc_venc_context.bit_rate = 800000; /* default */
+ lavc_venc_context.bit_rate_tolerance= lavc_param_vrate_tolerance;
lavc_venc_context.frame_rate = (float)(force_ofps?force_ofps:sh_video->fps) * FRAME_RATE_BASE;
+ lavc_venc_context.qmin= lavc_param_vqmin;
+ lavc_venc_context.qmax= lavc_param_vqmax;
+ lavc_venc_context.max_qdiff= lavc_param_vqdiff;
+ lavc_venc_context.qcompress= lavc_param_vqcompress;
+ lavc_venc_context.qblur= lavc_param_vqblur;
/* keyframe interval */
if (lavc_param_keyint >= 0) /* != -1 */
lavc_venc_context.gop_size = lavc_param_keyint;