+#if X264_BUILD >= 24
+ var_Get( p_enc, SOUT_CFG_PREFIX "me", &val );
+ if( !strcmp( val.psz_string, "dia" ) )
+ {
+ p_sys->param.analyse.i_me_method = X264_ME_DIA;
+ }
+ else if( !strcmp( val.psz_string, "hex" ) )
+ {
+ p_sys->param.analyse.i_me_method = X264_ME_HEX;
+ }
+ else if( !strcmp( val.psz_string, "umh" ) )
+ {
+ p_sys->param.analyse.i_me_method = X264_ME_UMH;
+ }
+ else if( !strcmp( val.psz_string, "esa" ) )
+ {
+ p_sys->param.analyse.i_me_method = X264_ME_ESA;
+ }
+ if( val.psz_string ) free( val.psz_string );
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "merange", &val );
+ if( val.i_int >= 1 && val.i_int <= 64 )
+ p_sys->param.analyse.i_me_range = val.i_int;
+#endif
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "direct", &val );
+ if( !strcmp( val.psz_string, "none" ) )
+ {
+ p_sys->param.analyse.i_direct_mv_pred = X264_DIRECT_PRED_NONE;
+ }
+ else if( !strcmp( val.psz_string, "spatial" ) )
+ {
+ p_sys->param.analyse.i_direct_mv_pred = X264_DIRECT_PRED_SPATIAL;
+ }
+ else if( !strcmp( val.psz_string, "temporal" ) )
+ {
+ p_sys->param.analyse.i_direct_mv_pred = X264_DIRECT_PRED_TEMPORAL;
+ }
+ if( val.psz_string ) free( val.psz_string );
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "psnr", &val );
+ p_sys->param.analyse.b_psnr = val.b_bool;
+
+#if X264_BUILD >= 0x0012
+ var_Get( p_enc, SOUT_CFG_PREFIX "weightb", &val );
+ p_sys->param.analyse.b_weighted_bipred = val.b_bool;
+#endif
+
+#if X264_BUILD >= 0x0013
+ var_Get( p_enc, SOUT_CFG_PREFIX "b-adapt", &val );
+ p_sys->param.b_bframe_adaptive = val.b_bool;
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "b-bias", &val );
+ if( val.i_int >= -100 && val.i_int <= 100 )
+ p_sys->param.i_bframe_bias = val.i_int;
+#endif
+
+#if X264_BUILD >= 23
+ var_Get( p_enc, SOUT_CFG_PREFIX "chroma-me", &val );
+ p_sys->param.analyse.b_chroma_me = val.b_bool;
+ var_Get( p_enc, SOUT_CFG_PREFIX "chroma-qp-offset", &val );
+ p_sys->param.analyse.i_chroma_qp_offset = val.i_int;
+#endif
+
+#if X264_BUILD >= 36
+ var_Get( p_enc, SOUT_CFG_PREFIX "mixed-refs", &val );
+ p_sys->param.analyse.b_mixed_references = val.b_bool;
+#endif
+
+#if X264_BUILD >= 37
+ var_Get( p_enc, SOUT_CFG_PREFIX "crf", &val );
+ if( val.i_int >= 0 && val.i_int <= 51 ) /* crf != 0 overrides qp */
+ p_sys->param.rc.i_rf_constant = val.i_int;
+#endif
+
+#if X264_BUILD >= 39
+ var_Get( p_enc, SOUT_CFG_PREFIX "trellis", &val );
+ if( val.i_int >= 0 && val.i_int <= 2 )
+ p_sys->param.analyse.i_trellis = val.i_int;
+#endif
+
+#if X264_BUILD >= 41
+ var_Get( p_enc, SOUT_CFG_PREFIX "b-rdo", &val );
+ p_sys->param.analyse.b_bframe_rdo = val.b_bool;
+#endif
+
+#if X264_BUILD >= 42
+ var_Get( p_enc, SOUT_CFG_PREFIX "fast-pskip", &val );
+ p_sys->param.analyse.b_fast_pskip = val.b_bool;
+#endif
+
+#if X264_BUILD >= 43
+ var_Get( p_enc, SOUT_CFG_PREFIX "bime", &val );
+ p_sys->param.analyse.b_bidir_me = val.b_bool;
+#endif
+
+#if X264_BUILD >= 44
+ var_Get( p_enc, SOUT_CFG_PREFIX "nr", &val );
+ p_sys->param.analyse.i_noise_reduction = val.i_int;
+#endif
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "asm", &val );
+ if( !val.b_bool ) p_sys->param.cpu = 0;
+
+#ifndef X264_ANALYSE_BSUB16x16
+# define X264_ANALYSE_BSUB16x16 0
+#endif