static char * output = NULL;
static char * format = NULL;
static int titleindex = 1;
+static int titlescan = 0;
static int longest_title = 0;
static char * native_language = NULL;
static int native_dub = 0;
return 1;
}
-#if defined( PTW32_STATIC_LIB )
- pthread_win32_process_attach_np();
- pthread_win32_thread_attach_np();
-#endif
-
/* Register our error handler */
hb_register_error_handler(&hb_cli_error_handler);
"date.\n" );
}
hb_close( &h );
+ hb_global_close();
return 0;
}
/* Clean up */
hb_close( &h );
+ hb_global_close();
if( input ) free( input );
if( output ) free( output );
if( format ) free( format );
fprintf( stderr, "HandBrake has exited.\n" );
-#if defined( PTW32_STATIC_LIB )
- pthread_win32_thread_detach_np();
- pthread_win32_process_detach_np();
-#endif
-
return 0;
}
case HB_STATE_SCANNING:
/* Show what title is currently being scanned */
fprintf( stderr, "Scanning title %d", p.title_cur );
- if( !titleindex )
+ if( !titleindex || titlescan )
fprintf( stderr, " of %d", p.title_count );
fprintf( stderr, "...\n" );
break;
title = hb_list_item( list, 0 );
}
- if( !titleindex )
+ if( !titleindex || titlescan )
{
/* Scan-only mode, print infos and exit */
int i;
maxWidth = 960;
if( !x264opts )
{
- x264opts = strdup("cabac=0:ref=2:me=umh:b-adapt=2:weightb=0:trellis=0:weightp=0");
+ x264opts = strdup("cabac=0:ref=2:me=umh:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500");
}
anamorphic_mode = 2;
job->chapter_markers = 1;
if (modulus)
{
- job->anamorphic.modulus = modulus;
+ job->modulus = modulus;
}
if( itu_par )
if (modulus)
{
- job->anamorphic.modulus = modulus;
+ job->modulus = modulus;
}
if( itu_par )
"### Source Options-----------------------------------------------------------\n\n"
" -i, --input <string> Set input device\n"
- " -t, --title <number> Select a title to encode (0 to scan only,\n"
+ " -t, --title <number> Select a title to encode (0 to scan all titles only,\n"
" default: 1)\n"
+ " --scan Scan selected title only.\n"
" -L, --longest Select the longest title\n"
" -c, --chapters <string> Select chapters (e.g. \"1-3\" for chapters\n"
" 1 to 3, or \"3\" for chapter 3 only,\n"
" --itu-par Use wider, ITU pixel aspect values for loose and\n"
" custom anamorphic, useful with underscanned sources\n"
" --modulus Set the number you want the scaled pixel dimensions\n"
- " <number> to divide cleanly by, for loose and custom\n"
- " anamorphic modes (default: 16)\n"
+ " <number> to divide cleanly by. Does not affect strict\n"
+ " anamorphic mode, which is always mod 2 (default: 16)\n"
" -M --color-matrix Set the color space signaled by the output\n"
" <601 or 709> (Bt.601 is mostly for SD content, Bt.709 for HD,\n"
" default: set by resolution)\n"
printf("\n + iPhone & iPod Touch: -e x264 -q 20.0 -a 1 -E faac -B 128 -6 dpl2 -R 48 -D 0.0 -f mp4 -X 480 -m -x cabac=0:ref=2:me=umh:bframes=0:subme=6:8x8dct=0:trellis=0\n");
- printf("\n + AppleTV: -e x264 -q 20.0 -a 1,1 -E faac,ac3 -B 160,160 -6 dpl2,auto -R 48,Auto -D 0.0,0.0 -f mp4 -4 -X 960 --loose-anamorphic -m -x cabac=0:ref=2:me=umh:b-adapt=2:weightb=0:trellis=0:weightp=0\n");
+ printf("\n + AppleTV: -e x264 -q 20.0 -a 1,1 -E faac,ac3 -B 160,160 -6 dpl2,auto -R 48,Auto -D 0.0,0.0 -f mp4 -4 -X 960 --loose-anamorphic -m -x cabac=0:ref=2:me=umh:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500\n");
printf("\n>\n");
#define SRT_LANG 273
#define SRT_DEFAULT 274
#define ROTATE_FILTER 275
+ #define SCAN_ONLY 276
for( ;; )
{
{ "ipod-atom", no_argument, NULL, 'I' },
{ "title", required_argument, NULL, 't' },
+ { "scan", no_argument, NULL, SCAN_ONLY },
{ "longest", no_argument, NULL, 'L' },
{ "chapters", required_argument, NULL, 'c' },
{ "angle", required_argument, NULL, ANGLE },
case 't':
titleindex = atoi( optarg );
break;
+ case SCAN_ONLY:
+ titlescan = 1;
+ break;
case 'L':
longest_title = 1;
break;
}
/* Parse format */
- if( titleindex > 0 )
+ if( titleindex > 0 && !titlescan )
{
if( output == NULL || *output == '\0' )
{