[vlc-devel] [PATCH 3/3] codec: x264: remove duplicate checks on configuration range
Zhao Zhili
quinkblack at foxmail.com
Tue Aug 28 05:58:53 CEST 2018
There is case I can't figure out
add_float( SOUT_CFG_PREFIX "qcomp", 0.60, QCOMP_TEXT,
QCOMP_LONGTEXT, true )
change_float_range( 0, 1 )
if( fabs(var_GetFloat( p_enc, SOUT_CFG_PREFIX "qcomp" ) - 0.60) >
0.005 )
p_sys->param.rc.f_qcompress = var_GetFloat( p_enc,
SOUT_CFG_PREFIX "qcomp" );
They can't both be correct and I don't know which one is correct.
On 2018年08月28日 11:50, Zhao Zhili wrote:
> The range is already limited by change_integer_range.
>
> Some code also checks whether the configuration has the default value or
> not, and don't assign to x264_param_t if it's the default value. It
> based on the precondition that the default values are the same as x264
> param_default() set.
> ---
> modules/codec/x264.c | 64 ++++++++++++++++------------------------------------
> 1 file changed, 20 insertions(+), 44 deletions(-)
>
> diff --git a/modules/codec/x264.c b/modules/codec/x264.c
> index 0efd802..97bc823 100644
> --- a/modules/codec/x264.c
> +++ b/modules/codec/x264.c
> @@ -953,31 +953,20 @@ static int Open ( vlc_object_t *p_this )
> else /* Set default to CRF */
> {
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "crf" );
> - if( i_val > 0 && i_val <= 51 )
> - {
> - p_sys->param.rc.f_rf_constant = i_val;
> - p_sys->param.rc.i_rc_method = X264_RC_CRF;
> - }
> + p_sys->param.rc.f_rf_constant = i_val;
> + p_sys->param.rc.i_rc_method = X264_RC_CRF;
> }
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qpstep" );
> - if( i_val >= 0 && i_val <= 51 ) p_sys->param.rc.i_qp_step = i_val;
> + p_sys->param.rc.i_qp_step = i_val;
>
> - i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qpmin" );
> - if( i_val >= 0 && i_val <= 51 )
> - {
> - i_qmin = i_val;
> - p_sys->param.rc.i_qp_min = i_qmin;
> - }
> - i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qpmax" );
> - if( i_val >= 0 && i_val <= 51 )
> - {
> - i_qmax = i_val;
> - p_sys->param.rc.i_qp_max = i_qmax;
> - }
> + i_qmin = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qpmin" );
> + p_sys->param.rc.i_qp_min = i_qmin;
> + i_qmax = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qpmax" );
> + p_sys->param.rc.i_qp_max = i_qmax;
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "qp" );
> - if( i_val >= 0 && i_val <= 51 )
> + if( i_val >= 0 )
> {
> if( i_qmin > i_val ) i_qmin = i_val;
> if( i_qmax < i_val ) i_qmax = i_val;
> @@ -1088,8 +1077,7 @@ static int Open ( vlc_object_t *p_this )
> p_sys->param.b_bluray_compat = var_GetBool( p_enc, SOUT_CFG_PREFIX "bluray-compat" );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "bframes" );
> - if( i_val >= 0 && i_val <= 16 && i_val != 3 )
> - p_sys->param.i_bframe = i_val;
> + p_sys->param.i_bframe = i_val;
>
> p_sys->param.b_intra_refresh = var_GetBool( p_enc, SOUT_CFG_PREFIX "intra-refresh" );
>
> @@ -1110,12 +1098,10 @@ static int Open ( vlc_object_t *p_this )
> free( psz_val );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "ref" );
> - if( i_val > 0 && i_val <= 15 && i_val != 3 )
> - p_sys->param.i_frame_reference = i_val;
> + p_sys->param.i_frame_reference = i_val;
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "scenecut" );
> - if( i_val >= -1 && i_val <= 100 && i_val != 40 )
> - p_sys->param.i_scenecut_threshold = i_val;
> + p_sys->param.i_scenecut_threshold = i_val;
>
> p_sys->param.b_deterministic = var_GetBool( p_enc,
> SOUT_CFG_PREFIX "non-deterministic" );
> @@ -1155,8 +1141,7 @@ static int Open ( vlc_object_t *p_this )
> free( psz_val );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "merange" );
> - if( i_val >= 0 && i_val <= 64 && i_val != 16 )
> - p_sys->param.analyse.i_me_range = i_val;
> + p_sys->param.analyse.i_me_range = i_val;
>
> p_sys->param.analyse.i_mv_range = var_GetInteger( p_enc,
> SOUT_CFG_PREFIX "mvrange" );
> @@ -1191,12 +1176,10 @@ static int Open ( vlc_object_t *p_this )
> p_sys->param.analyse.i_weighted_pred = var_GetInteger( p_enc, SOUT_CFG_PREFIX "weightp" );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "b-adapt" );
> - if( i_val != 1 )
> - p_sys->param.i_bframe_adaptive = i_val;
> + p_sys->param.i_bframe_adaptive = i_val;
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "b-bias" );
> - if( i_val >= -100 && i_val <= 100 && i_val != 0)
> - p_sys->param.i_bframe_bias = i_val;
> + p_sys->param.i_bframe_bias = i_val;
>
> p_sys->param.analyse.b_chroma_me = var_GetBool( p_enc,
> SOUT_CFG_PREFIX "chroma-me" );
> @@ -1207,28 +1190,24 @@ static int Open ( vlc_object_t *p_this )
> SOUT_CFG_PREFIX "mixed-refs" );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "trellis" );
> - if( i_val >= 0 && i_val <= 2 && i_val != 1 )
> - p_sys->param.analyse.i_trellis = i_val;
> + p_sys->param.analyse.i_trellis = i_val;
>
> if( !var_GetBool( p_enc, SOUT_CFG_PREFIX "fast-pskip" ) )
> p_sys->param.analyse.b_fast_pskip = var_GetBool( p_enc,
> SOUT_CFG_PREFIX "fast-pskip" );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "nr" );
> - if( i_val > 0 && i_val <= 1000 )
> - p_sys->param.analyse.i_noise_reduction = i_val;
> + p_sys->param.analyse.i_noise_reduction = i_val;
>
> if( !var_GetBool( p_enc, SOUT_CFG_PREFIX "dct-decimate" ) )
> p_sys->param.analyse.b_dct_decimate = var_GetBool( p_enc,
> SOUT_CFG_PREFIX "dct-decimate" );
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "deadzone-inter" );
> - if( i_val >= 0 && i_val <= 32 && i_val != 21 )
> - p_sys->param.analyse.i_luma_deadzone[0] = i_val;
> + p_sys->param.analyse.i_luma_deadzone[0] = i_val;
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "deadzone-intra" );
> - if( i_val >= 0 && i_val <= 32 && i_val != 11)
> - p_sys->param.analyse.i_luma_deadzone[1] = i_val;
> + p_sys->param.analyse.i_luma_deadzone[1] = i_val;
>
> if( !var_GetBool( p_enc, SOUT_CFG_PREFIX "asm" ) )
> p_sys->param.cpu = 0;
> @@ -1340,7 +1319,7 @@ static int Open ( vlc_object_t *p_this )
> }
>
> i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "pass" );
> - if( i_val > 0 && i_val <= 3 )
> + if( i_val > 0 )
> {
> p_sys->param.rc.b_stat_write = i_val & 1;
> p_sys->param.rc.b_stat_read = i_val & 2;
> @@ -1369,10 +1348,7 @@ static int Open ( vlc_object_t *p_this )
> vlc_mutex_unlock( &pthread_win32_mutex );
> #endif
>
> - if( var_GetInteger( p_enc, SOUT_CFG_PREFIX "lookahead" ) != 40 )
> - {
> - p_sys->param.rc.i_lookahead = var_GetInteger( p_enc, SOUT_CFG_PREFIX "lookahead" );
> - }
> + p_sys->param.rc.i_lookahead = var_GetInteger( p_enc, SOUT_CFG_PREFIX "lookahead" );
>
> /* We don't want repeated headers, we repeat p_extra ourself if needed */
> p_sys->param.b_repeat_headers = 0;
More information about the vlc-devel
mailing list