"tradeoffs involved in the motion estimation decision process " \
"(lower = quicker and higher = better quality)." )
+#define ME_TEXT N_("Motion estimation algorithm.")
+#define ME_LONGTEXT N_( "Selects the motion estimation algorithm: "\
+ " dia - diamond (fastest) \n" \
+ " hex - hexagon (default setting) \n" \
+ " umh - uneven multi-hexagon (better but slower) \n" \
+ " esa - exhaustive search (extremely slow, primarily for testing) " )
+
+#define MERANGE_TEXT N_("Motion estimation search range.")
+#define MERANGE_LONGTEXT N_( "Maximum distance to search for motion estimation, "\
+ "measured from predicted position(s). Default of 16 is good for most footage, "\
+ "high motion sequences may benefit from settings between 24-32." )
+
+#define NO_PSNR_TEXT N_("Disable PSNR calculation.")
+#define NO_PSNR_LONGTEXT N_( "This has no effect on actual encoding quality, "\
+ "it just prevents the stats from being calculated (for speed)." )
+
+#define NO_B_ADAPT_TEXT N_("Disable adaptive B-frames.")
+#define NO_B_ADAPT_LONGTEXT N_( "If this is on, the specified number of consequtive B-frames "\
+ "will always be used, except possibly before an I-frame. " )
+
+#define B_BIAS_TEXT N_("Bias the choice to use B-frames.")
+#define B_BIAS_LONGTEXT N_( "Positive values cause more= B-frames, negative values cause less B-frames. " )
+
+
+#if X264_BUILD >= 23
+static char *enc_me_list[] =
+ { "", "dia", "hex", "umh", "esa" };
+static char *enc_me_list_text[] =
+ { N_("default"), N_("dia"), N_("hex"), N_("umh"), N_("esa") };
+#endif
+
static char *enc_analyse_list[] =
{ "", "all", "normal", "fast", "none" };
static char *enc_analyse_list_text[] =
change_integer_range( 1, 5 );
#endif
+#if X264_BUILD >= 23
+/* r221 */ add_string( SOUT_CFG_PREFIX "me", "hex", NULL, ME_TEXT,
+ ME_LONGTEXT, VLC_FALSE );
+ change_string_list( enc_me_list, enc_me_list_text, 0 );
+
+/* r221 */ add_integer( SOUT_CFG_PREFIX "merange", 16, NULL, MERANGE_TEXT,
+ MERANGE_LONGTEXT, VLC_FALSE );
+ change_integer_range( 1, 64 );
+#endif
+
+/* r44 */ add_bool( SOUT_CFG_PREFIX "no-psnr", 0, NULL, NO_PSNR_TEXT,
+ NO_PSNR_LONGTEXT, VLC_FALSE );
+
+#if X264_BUILD >= 0x0013
+/* r137 */ add_bool( SOUT_CFG_PREFIX "no-b-adapt", 0, NULL, NO_B_ADAPT_TEXT,
+ NO_B_ADAPT_LONGTEXT, VLC_FALSE );
+
+/* r137 */ add_integer( SOUT_CFG_PREFIX "b-bias", 0, NULL, B_BIAS_TEXT,
+ B_BIAS_LONGTEXT, VLC_FALSE );
+ change_integer_range( -100, 100 );
+#endif
+
+
vlc_module_end();
/*****************************************************************************
static const char *ppsz_sout_options[] = {
"qp", "qp-min", "qp-max", "cabac", "loopfilter", "analyse",
"keyint", "keyint-min", "bframes", "bpyramid", "frameref", "scenecut",
- "subpel", "tolerance", "vbv-maxrate", "vbv-bufsize", "vbv-init", NULL
+ "subpel", "me", "merange", "no-psnr", "no-b-adapt", "b-bias", "tolerance",
+ "vbv-maxrate", "vbv-bufsize", "vbv-init", NULL
};
static block_t *Encode( encoder_t *, picture_t * );
p_sys->param.analyse.i_subpel_refine = val.i_int;
#endif
+#if X264_BUILD >= 23
+ 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 "no-psnr", &val );
+ p_sys->param.analyse.b_psnr = ! val.b_bool;
+
+#if X264_BUILD >= 0x0013
+ var_Get( p_enc, SOUT_CFG_PREFIX "no-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
+
#ifndef X264_ANALYSE_BSUB16x16
# define X264_ANALYSE_BSUB16x16 0
#endif