mirror of https://git.ffmpeg.org/ffmpeg.git
fixing unused variables & adding missing options
Originally committed as revision 1043 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fb7566d082
commit
ac2830ecd3
43
ffmpeg.c
43
ffmpeg.c
|
@ -92,9 +92,11 @@ static int video_qmax = 31;
|
||||||
static int video_qdiff = 3;
|
static int video_qdiff = 3;
|
||||||
static float video_qblur = 0.5;
|
static float video_qblur = 0.5;
|
||||||
static float video_qcomp = 0.5;
|
static float video_qcomp = 0.5;
|
||||||
|
#if 0 //experimental, (can be removed)
|
||||||
static float video_rc_qsquish=1.0;
|
static float video_rc_qsquish=1.0;
|
||||||
static float video_rc_qmod_amp=0;
|
static float video_rc_qmod_amp=0;
|
||||||
static int video_rc_qmod_freq=0;
|
static int video_rc_qmod_freq=0;
|
||||||
|
#endif
|
||||||
static char *video_rc_override_string=NULL;
|
static char *video_rc_override_string=NULL;
|
||||||
static char *video_rc_eq="tex^qComp";
|
static char *video_rc_eq="tex^qComp";
|
||||||
static int video_rc_buffer_size=0;
|
static int video_rc_buffer_size=0;
|
||||||
|
@ -1446,6 +1448,11 @@ void opt_video_rc_eq(char *arg)
|
||||||
video_rc_eq = arg;
|
video_rc_eq = arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void opt_video_rc_override_string(char *arg)
|
||||||
|
{
|
||||||
|
video_rc_override_string = arg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void opt_workaround_bugs(const char *arg)
|
void opt_workaround_bugs(const char *arg)
|
||||||
{
|
{
|
||||||
|
@ -1632,6 +1639,10 @@ void opt_qcomp(const char *arg)
|
||||||
video_qcomp = atof(arg);
|
video_qcomp = atof(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void opt_rc_initial_cplx(const char *arg)
|
||||||
|
{
|
||||||
|
video_rc_initial_cplx = atof(arg);
|
||||||
|
}
|
||||||
void opt_b_qfactor(const char *arg)
|
void opt_b_qfactor(const char *arg)
|
||||||
{
|
{
|
||||||
video_b_qfactor = atof(arg);
|
video_b_qfactor = atof(arg);
|
||||||
|
@ -1953,6 +1964,9 @@ void opt_output_file(const char *filename)
|
||||||
st->stream_copy = 1;
|
st->stream_copy = 1;
|
||||||
video_enc->codec_type = CODEC_TYPE_VIDEO;
|
video_enc->codec_type = CODEC_TYPE_VIDEO;
|
||||||
} else {
|
} else {
|
||||||
|
char *p;
|
||||||
|
int i;
|
||||||
|
|
||||||
codec_id = file_oformat->video_codec;
|
codec_id = file_oformat->video_codec;
|
||||||
if (video_codec_id != CODEC_ID_NONE)
|
if (video_codec_id != CODEC_ID_NONE)
|
||||||
codec_id = video_codec_id;
|
codec_id = video_codec_id;
|
||||||
|
@ -2004,10 +2018,37 @@ void opt_output_file(const char *filename)
|
||||||
video_enc->qblur = video_qblur;
|
video_enc->qblur = video_qblur;
|
||||||
video_enc->qcompress = video_qcomp;
|
video_enc->qcompress = video_qcomp;
|
||||||
video_enc->rc_eq = video_rc_eq;
|
video_enc->rc_eq = video_rc_eq;
|
||||||
|
|
||||||
|
p= video_rc_override_string;
|
||||||
|
for(i=0; p; i++){
|
||||||
|
int start, end, q;
|
||||||
|
int e=sscanf(p, "%d,%d,%d", &start, &end, &q);
|
||||||
|
if(e!=3){
|
||||||
|
fprintf(stderr, "error parsing rc_override\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
video_enc->rc_override=
|
||||||
|
realloc(video_enc->rc_override, sizeof(RcOverride)*(i+1));
|
||||||
|
video_enc->rc_override[i].start_frame= start;
|
||||||
|
video_enc->rc_override[i].end_frame = end;
|
||||||
|
if(q>0){
|
||||||
|
video_enc->rc_override[i].qscale= q;
|
||||||
|
video_enc->rc_override[i].quality_factor= 1.0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
video_enc->rc_override[i].qscale= 0;
|
||||||
|
video_enc->rc_override[i].quality_factor= -q/100.0;
|
||||||
|
}
|
||||||
|
p= strchr(p, '/');
|
||||||
|
if(p) p++;
|
||||||
|
}
|
||||||
|
video_enc->rc_override_count=i;
|
||||||
|
|
||||||
video_enc->rc_max_rate = video_rc_max_rate;
|
video_enc->rc_max_rate = video_rc_max_rate;
|
||||||
video_enc->rc_min_rate = video_rc_min_rate;
|
video_enc->rc_min_rate = video_rc_min_rate;
|
||||||
video_enc->rc_buffer_size = video_rc_buffer_size;
|
video_enc->rc_buffer_size = video_rc_buffer_size;
|
||||||
video_enc->rc_buffer_aggressivity= video_rc_buffer_aggressivity;
|
video_enc->rc_buffer_aggressivity= video_rc_buffer_aggressivity;
|
||||||
|
video_enc->rc_initial_cplx= video_rc_initial_cplx;
|
||||||
video_enc->i_quant_factor = video_i_qfactor;
|
video_enc->i_quant_factor = video_i_qfactor;
|
||||||
video_enc->b_quant_factor = video_b_qfactor;
|
video_enc->b_quant_factor = video_b_qfactor;
|
||||||
video_enc->i_quant_offset = video_i_qoffset;
|
video_enc->i_quant_offset = video_i_qoffset;
|
||||||
|
@ -2390,11 +2431,13 @@ const OptionDef options[] = {
|
||||||
{ "qdiff", HAS_ARG | OPT_EXPERT, {(void*)opt_qdiff}, "max difference between the quantiser scale (VBR)", "q" },
|
{ "qdiff", HAS_ARG | OPT_EXPERT, {(void*)opt_qdiff}, "max difference between the quantiser scale (VBR)", "q" },
|
||||||
{ "qblur", HAS_ARG | OPT_EXPERT, {(void*)opt_qblur}, "video quantiser scale blur (VBR)", "blur" },
|
{ "qblur", HAS_ARG | OPT_EXPERT, {(void*)opt_qblur}, "video quantiser scale blur (VBR)", "blur" },
|
||||||
{ "qcomp", HAS_ARG | OPT_EXPERT, {(void*)opt_qcomp}, "video quantiser scale compression (VBR)", "compression" },
|
{ "qcomp", HAS_ARG | OPT_EXPERT, {(void*)opt_qcomp}, "video quantiser scale compression (VBR)", "compression" },
|
||||||
|
{ "rc_init_cplx", HAS_ARG | OPT_EXPERT, {(void*)opt_rc_initial_cplx}, "initial complexity for 1-pass encoding", "complexity" },
|
||||||
{ "b_qfactor", HAS_ARG | OPT_EXPERT, {(void*)opt_b_qfactor}, "qp factor between p and b frames", "factor" },
|
{ "b_qfactor", HAS_ARG | OPT_EXPERT, {(void*)opt_b_qfactor}, "qp factor between p and b frames", "factor" },
|
||||||
{ "i_qfactor", HAS_ARG | OPT_EXPERT, {(void*)opt_i_qfactor}, "qp factor between p and i frames", "factor" },
|
{ "i_qfactor", HAS_ARG | OPT_EXPERT, {(void*)opt_i_qfactor}, "qp factor between p and i frames", "factor" },
|
||||||
{ "b_qoffset", HAS_ARG | OPT_EXPERT, {(void*)opt_b_qoffset}, "qp offset between p and b frames", "offset" },
|
{ "b_qoffset", HAS_ARG | OPT_EXPERT, {(void*)opt_b_qoffset}, "qp offset between p and b frames", "offset" },
|
||||||
{ "i_qoffset", HAS_ARG | OPT_EXPERT, {(void*)opt_i_qoffset}, "qp offset between p and i frames", "offset" },
|
{ "i_qoffset", HAS_ARG | OPT_EXPERT, {(void*)opt_i_qoffset}, "qp offset between p and i frames", "offset" },
|
||||||
{ "rc_eq", HAS_ARG | OPT_EXPERT, {(void*)opt_video_rc_eq}, "", "equation" },
|
{ "rc_eq", HAS_ARG | OPT_EXPERT, {(void*)opt_video_rc_eq}, "", "equation" },
|
||||||
|
{ "rc_override", HAS_ARG | OPT_EXPERT, {(void*)opt_video_rc_override_string}, "Rate control override", "qualities for specific intervals" },
|
||||||
{ "bt", HAS_ARG, {(void*)opt_video_bitrate_tolerance}, "set video bitrate tolerance (in kbit/s)", "tolerance" },
|
{ "bt", HAS_ARG, {(void*)opt_video_bitrate_tolerance}, "set video bitrate tolerance (in kbit/s)", "tolerance" },
|
||||||
{ "maxrate", HAS_ARG, {(void*)opt_video_bitrate_max}, "set max video bitrate tolerance (in kbit/s)", "bitrate" },
|
{ "maxrate", HAS_ARG, {(void*)opt_video_bitrate_max}, "set max video bitrate tolerance (in kbit/s)", "bitrate" },
|
||||||
{ "minrate", HAS_ARG, {(void*)opt_video_bitrate_min}, "set min video bitrate tolerance (in kbit/s)", "bitrate" },
|
{ "minrate", HAS_ARG, {(void*)opt_video_bitrate_min}, "set min video bitrate tolerance (in kbit/s)", "bitrate" },
|
||||||
|
|
Loading…
Reference in New Issue