summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libhb/common.c70
-rw-r--r--libhb/decssasub.c11
-rw-r--r--libhb/internal.h1
3 files changed, 40 insertions, 42 deletions
diff --git a/libhb/common.c b/libhb/common.c
index 5f3ce49f8..2b2917e5d 100644
--- a/libhb/common.c
+++ b/libhb/common.c
@@ -852,18 +852,18 @@ void hb_list_close( hb_list_t ** _l )
*_l = NULL;
}
+int global_verbosity_level; //Necessary for hb_deep_log
/**********************************************************************
- * hb_log
+ * hb_valog
**********************************************************************
* If verbose mode is one, print message with timestamp. Messages
* longer than 180 characters are stripped ;p
*********************************************************************/
-void hb_log( char * log, ... )
+void hb_valog( hb_debug_level_t level, const char * prefix, const char * log, va_list args)
{
char string[362]; /* 360 chars + \n + \0 */
time_t _now;
struct tm * now;
- va_list args;
if( !getenv( "HB_DEBUG" ) )
{
@@ -871,16 +871,30 @@ void hb_log( char * log, ... )
return;
}
+ 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 );
+ if ( prefix && *prefix )
+ {
+ // limit the prefix length
+ snprintf( string, 40, "[%02d:%02d:%02d] %s ",
+ now->tm_hour, now->tm_min, now->tm_sec, prefix );
+ }
+ else
+ {
+ sprintf( string, "[%02d:%02d:%02d] ",
+ now->tm_hour, now->tm_min, now->tm_sec );
+ }
+ int end = strlen( string );
/* Convert the message to a string */
- va_start( args, log );
- vsnprintf( string + 11, 349, log, args );
- va_end( args );
+ vsnprintf( string + end, 361 - end, log, args );
/* Add the end of line */
strcat( string, "\n" );
@@ -889,7 +903,21 @@ void hb_log( char * log, ... )
fprintf( stderr, "%s", string );
}
-int global_verbosity_level; //Necessary for hb_deep_log
+/**********************************************************************
+ * hb_log
+ **********************************************************************
+ * If verbose mode is one, print message with timestamp. Messages
+ * longer than 180 characters are stripped ;p
+ *********************************************************************/
+void hb_log( char * log, ... )
+{
+ va_list args;
+
+ va_start( args, log );
+ hb_valog( 0, NULL, log, args );
+ va_end( args );
+}
+
/**********************************************************************
* hb_deep_log
**********************************************************************
@@ -898,33 +926,11 @@ int global_verbosity_level; //Necessary for hb_deep_log
*********************************************************************/
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 );
+ hb_valog( level, NULL, log, args );
va_end( args );
-
- /* Add the end of line */
- strcat( string, "\n" );
-
- /* Print it */
- fprintf( stderr, "%s", string );
}
/**********************************************************************
diff --git a/libhb/decssasub.c b/libhb/decssasub.c
index 460a8ddc0..2d2ec3d2b 100644
--- a/libhb/decssasub.c
+++ b/libhb/decssasub.c
@@ -19,7 +19,6 @@
*
* @author David Foster (davidfstr)
*/
-
#include <stdlib.h>
#include <stdio.h>
#include "hb.h"
@@ -574,15 +573,7 @@ static void ssa_log(int level, const char *fmt, va_list args, void *data)
{
if ( level < 5 ) // same as default verbosity when no callback is set
{
- char *msg;
- if ( vasprintf( &msg, fmt, args ) < 0 )
- {
- hb_log( "decssasub: could not report libass message\n" );
- return;
- }
- hb_log( "[ass] %s", msg ); // no need for extra '\n' because libass sends it
-
- free( msg );
+ hb_valog( 1, "[ass]", fmt, args );
}
}
diff --git a/libhb/internal.h b/libhb/internal.h
index f92ce263a..b78072ad8 100644
--- a/libhb/internal.h
+++ b/libhb/internal.h
@@ -15,6 +15,7 @@ typedef enum hb_debug_level_s
HB_HOUSEKEEPING_LOG = 2, // stuff we hate scrolling through
HB_GRANULAR_LOG = 3 // sample-by-sample
} hb_debug_level_t;
+void hb_valog( hb_debug_level_t level, const char * prefix, const char * log, va_list args) HB_WPRINTF(3,0);
void hb_deep_log( hb_debug_level_t level, char * log, ... ) HB_WPRINTF(2,3);
void hb_error( char * fmt, ...) HB_WPRINTF(1,2);