fprintf( stderr, "%s", string );
}
+int global_verbosity_level; //Necessary for hb_deep_log
+/**********************************************************************
+ * hb_deep_log
+ **********************************************************************
+ * If verbose mode is >= level, print message with timestamp. Messages
+ * longer than 360 characters are stripped ;p
+ *********************************************************************/
+void hb_deep_log( hb_debug_level_t level, char * log, ... )
+{
+ char string[362]; /* 360 chars + \n + \0 */
+ time_t _now;
+ struct tm * now;
+ va_list args;
+
+ if( global_verbosity_level < level )
+ {
+ /* Hiding message */
+ return;
+ }
+
+ /* Get the time */
+ _now = time( NULL );
+ now = localtime( &_now );
+ sprintf( string, "[%02d:%02d:%02d] ",
+ now->tm_hour, now->tm_min, now->tm_sec );
+
+ /* Convert the message to a string */
+ va_start( args, log );
+ vsnprintf( string + 11, 349, log, args );
+ va_end( args );
+
+ /* Add the end of line */
+ strcat( string, "\n" );
+
+ /* Print it */
+ fprintf( stderr, "%s", string );
+}
+
/**********************************************************************
* hb_error
**********************************************************************
hb_handle_t * h = calloc( sizeof( hb_handle_t ), 1 );
uint64_t date;
- /* See hb_log() in common.c */
- if( verbose > HB_DEBUG_NONE )
- {
+ /* See hb_deep_log() and hb_log() in common.c */
+ global_verbosity_level = verbose;
+ if( verbose )
putenv( "HB_DEBUG=1" );
- }
/* Check for an update on the website if asked to */
h->build = -1;
* common.c
**********************************************************************/
void hb_log( char * log, ... );
+extern int global_verbosity_level; // Global variable for hb_deep_log
+typedef enum hb_debug_level_s
+{
+ HB_SUPPORT_LOG = 1, // Logging helpful in tech support
+ HB_MEMORY_LOG = 2, // logging about memory usage
+ HB_GRANULAR_LOG = 3 // logging on sample-by-sample
+} hb_debug_level_t;
+void hb_deep_log( hb_debug_level_t level, char * log, ... );
void hb_error( char * fmt, ...);
int hb_list_bytes( hb_list_t * );
"### General Handbrake Options------------------------------------------------\n\n"
" -h, --help Print help\n"
" -u, --update Check for updates and exit\n"
- " -v, --verbose Be verbose\n"
+ " -v, --verbose <#> Be verbose (optional argument: logging level)\n"
" -C, --cpu Set CPU count (default: autodetected)\n"
" -Z. --preset <string> Use a built-in preset. Capitalization matters, and\n"
" if the preset name has spaces, surround it with\n"
{
{ "help", no_argument, NULL, 'h' },
{ "update", no_argument, NULL, 'u' },
- { "verbose", no_argument, NULL, 'v' },
+ { "verbose", optional_argument, NULL, 'v' },
{ "cpu", required_argument, NULL, 'C' },
{ "format", required_argument, NULL, 'f' },
int c;
c = getopt_long( argc, argv,
- "hvuC:f:4i:Io:t:Lc:m::a:6:s:UFN:e:E:2dD:7895gpOP::w:l:n:b:q:S:B:r:R:Qx:TY:X:Z:z",
+ "hv::uC:f:4i:Io:t:Lc:m::a:6:s:UFN:e:E:2dD:7895gpOP::w:l:n:b:q:S:B:r:R:Qx:TY:X:Z:z",
long_options, &option_index );
if( c < 0 )
{
update = 1;
break;
case 'v':
- debug = HB_DEBUG_ALL;
+ if( optarg != NULL )
+ {
+ debug = atoi( optarg );
+ }
+ else
+ {
+ debug = 1;
+ }
break;
case 'C':
cpu = atoi( optarg );