x264一共有5个信息等级
#define X264_LOG_NONE (-1)
#define X264_LOG_ERROR 0
#define X264_LOG_WARNING 1
#define X264_LOG_INFO 2
#define X264_LOG_DEBUG 3
None、error、warning、info、debug
void x264_cli_log( const char *name, int i_level, const char *fmt, ... )
{
// cli_log_level 是打印的log等级
// 只打印 等级<= cli_log_level 的信息
// 默认是 2
if( i_level > cli_log_level )
return;
char *s_level;
switch( i_level )
{
case X264_LOG_ERROR:
s_level = "error";
break;
case X264_LOG_WARNING:
s_level = "warning";
break;
case X264_LOG_INFO:
s_level = "info";
break;
case X264_LOG_DEBUG:
s_level = "debug";
break;
default:
s_level = "unknown";
break;
}
fprintf( stderr, "%s [%s]: ", name, s_level );
va_list arg;
va_start( arg, fmt );
x264_vfprintf( stderr, fmt, arg );
va_end( arg );
}
在其中加入一个等级,时常输出我想要的信息
#define X264_LOG_DJ (-2)
#define X264_LOG_NONE (-1)
#define X264_LOG_ERROR 0
#define X264_LOG_WARNING 1
#define X264_LOG_INFO 2
#define X264_LOG_DEBUG 3
void x264_cli_log( const char *name, int i_level, const char *fmt, ... )
{
if( i_level > cli_log_level )
return;
char *s_level;
switch( i_level )
{
case X264_LOG_DJ:
s_level = "dj";
break;
case X264_LOG_ERROR:
s_level = "error";
break;
case X264_LOG_WARNING:
s_level = "warning";
break;
case X264_LOG_INFO:
s_level = "info";
break;
case X264_LOG_DEBUG:
s_level = "debug";
break;
default:
s_level = "unknown";
break;
}
fprintf( stderr, "%s [%s]: ", name, s_level );
va_list arg;
va_start( arg, fmt );
x264_vfprintf( stderr, fmt, arg );
va_end( arg );
}
void x264_log_default( void *p_unused, int i_level, const char *psz_fmt, va_list arg )
{
char *psz_prefix;
switch( i_level )
{
case X264_LOG_ERROR:
psz_prefix = "error";
break;
case X264_LOG_WARNING:
psz_prefix = "warning";
break;
case X264_LOG_INFO:
psz_prefix = "info";
break;
case X264_LOG_DEBUG:
psz_prefix = "debug";
break;
default:
psz_prefix = "unknown";
break;
}
fprintf( stderr, "x264 [%s]: ", psz_prefix );
x264_vfprintf( stderr, psz_fmt, arg );
}