/*****************************************************************************
* x264: top-level x264cli functions
*****************************************************************************
- * Copyright (C) 2003-2013 x264 project
+ * Copyright (C) 2003-2014 x264 project
*
* Authors: Loren Merritt <lorenm@u.washington.edu>
* Laurent Aimar <fenrir@via.ecp.fr>
/* Ctrl-C handler */
static volatile int b_ctrl_c = 0;
-static int b_exit_on_ctrl_c = 0;
static void sigint_handler( int a )
{
- if( b_exit_on_ctrl_c )
- {
-#ifdef _WIN32
- SetConsoleTitleW( org_console_title );
-#endif
- exit( 0 );
- }
b_ctrl_c = 1;
}
"raw",
"mkv",
"flv",
-#if HAVE_GPAC
+#if HAVE_GPAC || HAVE_LSMASH
"mp4",
#endif
0
printf( "intel: %.2f (%d)\n", __INTEL_COMPILER / 100.f, __INTEL_COMPILER_BUILD_DATE );
#elif defined(__GNUC__)
printf( "gcc: " __VERSION__ "\n" );
+#elif defined(_MSC_FULL_VER)
+ printf( "msvc: %.2f (%u)\n", _MSC_VER / 100.f, _MSC_FULL_VER );
#else
printf( "using an unknown compiler\n" );
#endif
printf( INDENT );
for( int i = X264_CSP_NONE+1; i < X264_CSP_CLI_MAX; i++ )
{
- printf( "%s", x264_cli_csps[i].name );
- if( i+1 < X264_CSP_CLI_MAX )
- printf( ", " );
+ if( x264_cli_csps[i].name )
+ {
+ printf( "%s", x264_cli_csps[i].name );
+ if( i+1 < X264_CSP_CLI_MAX )
+ printf( ", " );
+ }
}
#if HAVE_LAVF
printf( "\n" );
" .264 -> Raw bytestream\n"
" .mkv -> Matroska\n"
" .flv -> Flash Video\n"
- " .mp4 -> MP4 if compiled with GPAC support (%s)\n"
+ " .mp4 -> MP4 if compiled with GPAC or L-SMASH support (%s)\n"
"Output bit depth: %d (configured at compile time)\n"
"\n"
"Options:\n"
"no",
#endif
#if HAVE_GPAC
- "yes",
+ "gpac",
+#elif HAVE_LSMASH
+ "lsmash",
#else
"no",
#endif
H2( " --nal-hrd <string> Signal HRD information (requires vbv-bufsize)\n"
" - none, vbr, cbr (cbr not allowed in .mp4)\n" );
+ H2( " --filler Force hard-CBR and generate filler (implied by\n"
+ " --nal-hrd cbr)\n" );
H2( " --pic-struct Force pic_struct in Picture Timing SEI\n" );
H2( " --crop-rect <string> Add 'left,top,right,bottom' to the bitstream-level\n"
" cropping rectangle\n" );
H0( " --frames <integer> Maximum number of frames to encode\n" );
H0( " --level <string> Specify level (as defined by Annex A)\n" );
H1( " --bluray-compat Enable compatibility hacks for Blu-ray support\n" );
- H1( " --avcintra-compat Enable compatibility hacks for AVC-Intra support\n" );
+ H1( " --avcintra-class <integer> Use compatibility hacks for AVC-Intra class\n"
+ " - 50, 100, 200\n" );
H1( " --stitchable Don't optimize headers based on video content\n"
" Ensures ability to recombine a segmented encode\n" );
H1( "\n" );
H2( " --opencl Enable use of OpenCL\n" );
H2( " --opencl-clbin <string> Specify path of compiled OpenCL kernel cache\n" );
H2( " --opencl-device <integer> Specify OpenCL device ordinal\n" );
- H2( " --visualize Show MB types overlayed on the encoded video\n" );
H2( " --dump-yuv <string> Save reconstructed frames\n" );
H2( " --sps-id <integer> Set SPS and PPS id numbers [%d]\n", defaults->i_sps_id );
H2( " --aud Use access unit delimiters\n" );
OPT_THREAD_INPUT,
OPT_QUIET,
OPT_NOPROGRESS,
- OPT_VISUALIZE,
OPT_LONGHELP,
OPT_PROFILE,
OPT_PRESET,
{ "b-pyramid", required_argument, NULL, 0 },
{ "open-gop", no_argument, NULL, 0 },
{ "bluray-compat", no_argument, NULL, 0 },
- { "avcintra-compat", no_argument, NULL, 0 },
+ { "avcintra-class", required_argument, NULL, 0 },
{ "min-keyint", required_argument, NULL, 'i' },
{ "keyint", required_argument, NULL, 'I' },
{ "intra-refresh", no_argument, NULL, 0 },
{ "verbose", no_argument, NULL, 'v' },
{ "log-level", required_argument, NULL, OPT_LOG_LEVEL },
{ "no-progress", no_argument, NULL, OPT_NOPROGRESS },
- { "visualize", no_argument, NULL, OPT_VISUALIZE },
{ "dump-yuv", required_argument, NULL, 0 },
{ "sps-id", required_argument, NULL, 0 },
{ "aud", no_argument, NULL, 0 },
{ "output-csp", required_argument, NULL, OPT_OUTPUT_CSP },
{ "input-range", required_argument, NULL, OPT_INPUT_RANGE },
{ "stitchable", no_argument, NULL, 0 },
+ { "filler", no_argument, NULL, 0 },
{0, 0, 0, 0}
};
if( !strcasecmp( ext, "mp4" ) )
{
-#if HAVE_GPAC
+#if HAVE_GPAC || HAVE_LSMASH
cli_output = mp4_output;
param->b_annexb = 0;
param->b_repeat_headers = 0;
int csp = info->csp & X264_CSP_MASK;
if( output_csp == X264_CSP_I420 && (csp < X264_CSP_I420 || csp > X264_CSP_NV12) )
param->i_csp = X264_CSP_I420;
- else if( output_csp == X264_CSP_I422 && (csp < X264_CSP_I422 || csp > X264_CSP_NV16) )
+ else if( output_csp == X264_CSP_I422 && (csp < X264_CSP_I422 || csp > X264_CSP_V210) )
param->i_csp = X264_CSP_I422;
else if( output_csp == X264_CSP_I444 && (csp < X264_CSP_I444 || csp > X264_CSP_YV24) )
param->i_csp = X264_CSP_I444;
case OPT_NOPROGRESS:
opt->b_progress = 0;
break;
- case OPT_VISUALIZE:
-#if HAVE_VISUALIZE
- param->b_visualize = 1;
- b_exit_on_ctrl_c = 1;
-#else
- x264_cli_log( "x264", X264_LOG_WARNING, "not compiled with visualization support\n" );
-#endif
- break;
case OPT_TUNE:
case OPT_PRESET:
break;