vlc | branch: master | Ilkka Ollakka <[email protected]> | Tue Feb 21 10:18:17 2012 +0200| [3d57163266191be0149093a67bdfb01ab638d6ff] | committer: Ilkka Ollakka
x264: add frame-packing option > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d57163266191be0149093a67bdfb01ab638d6ff --- modules/codec/x264.c | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) diff --git a/modules/codec/x264.c b/modules/codec/x264.c index 7c9f623..006c9d1 100644 --- a/modules/codec/x264.c +++ b/modules/codec/x264.c @@ -153,6 +153,15 @@ static void x264_log( void *, int i_level, const char *psz, va_list ); #define INTERLACED_TEXT N_("Interlaced mode") #define INTERLACED_LONGTEXT N_( "Pure-interlaced mode.") +#define FRAMEPACKING_TEXT N_("Frame packing") +#define FRAMEPACKING_LONGTEXT N_( "For stereoscopic videos define frame arrangement:\n" \ + " 0: checkerboard - pixels are alternatively from L and R\n" \ + " 1: column alternation - L and R are interlaced by column\n" \ + " 2: row alternation - L and R are interlaced by row\n" \ + " 3: side by side - L is on the left, R on the right\n" \ + " 4: top bottom - L is on top, R on bottom\n" \ + " 5: frame alternation - one view per frame" ) + #define INTRAREFRESH_TEXT N_("Use Periodic Intra Refresh") #define INTRAREFRESH_LONGTEXT N_("Use Periodic Intra Refresh instead of IDR frames") @@ -499,6 +508,11 @@ vlc_module_begin () add_bool( SOUT_CFG_PREFIX "interlaced", false, INTERLACED_TEXT, INTERLACED_LONGTEXT, true ) +#if X264_BUILD >= 111 + add_integer( SOUT_CFG_PREFIX "frame-packing", -1, FRAMEPACKING_TEXT, FRAMEPACKING_LONGTEXT, true ) + change_integer_range( -1, 5) +#endif + add_integer( SOUT_CFG_PREFIX "slices", 0, SLICE_COUNT, SLICE_COUNT_LONGTEXT, true ) add_integer( SOUT_CFG_PREFIX "slice-max-size", 0, SLICE_MAX_SIZE, SLICE_MAX_SIZE_LONGTEXT, true ) add_integer( SOUT_CFG_PREFIX "slice-max-mbs", 0, SLICE_MAX_MBS, SLICE_MAX_MBS_LONGTEXT, true ) @@ -714,7 +728,7 @@ static const char *const ppsz_sout_options[] = { "verbose", "vbv-bufsize", "vbv-init", "vbv-maxrate", "weightb", "weightp", "aq-mode", "aq-strength", "psy-rd", "psy", "profile", "lookahead", "slices", "slice-max-size", "slice-max-mbs", "intra-refresh", "mbtree", "hrd", - "tune","preset", "opengop", "bluray-compat", NULL + "tune","preset", "opengop", "bluray-compat", "frame-packing", NULL }; static block_t *Encode( encoder_t *, picture_t * ); @@ -936,6 +950,11 @@ static int Open ( vlc_object_t *p_this ) if( fabs( var_GetFloat( p_enc, SOUT_CFG_PREFIX "aq-strength" ) - 1.0) > 0.005 ) p_sys->param.rc.f_aq_strength = var_GetFloat( p_enc, SOUT_CFG_PREFIX "aq-strength" ); +#if X264_BUILD >= 111 + if( var_GetInteger( p_enc, SOUT_CFG_PREFIX "frame-packing" ) > -1 ) + p_sys->param.i_frame_packing = var_GetInteger( p_enc, SOUT_CFG_PREFIX "frame-packing" ); +#endif + if( var_GetBool( p_enc, SOUT_CFG_PREFIX "verbose" ) ) p_sys->param.i_log_level = X264_LOG_DEBUG; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
