Coloring the log with ANSI.
Ive checked this on black and white background and found no problem in terms of readability. flames welcome. Originally committed as revision 22946 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
* logging functions
|
* logging functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
#include "avutil.h"
|
#include "avutil.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
@@ -32,11 +33,27 @@ static
|
|||||||
#endif
|
#endif
|
||||||
int av_log_level = AV_LOG_INFO;
|
int av_log_level = AV_LOG_INFO;
|
||||||
|
|
||||||
|
#if !HAVE_ISATTY
|
||||||
|
#define isatty(s) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef fprintf
|
||||||
|
static void colored_fputs(int color, const char *str){
|
||||||
|
if(isatty(2)){
|
||||||
|
fprintf(stderr, "\033[%dm\033[3%dm", color>>4, color&15);
|
||||||
|
}
|
||||||
|
fputs(str, stderr);
|
||||||
|
if(isatty(2)){
|
||||||
|
fprintf(stderr, "\033[0m");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
||||||
{
|
{
|
||||||
static int print_prefix=1;
|
static int print_prefix=1;
|
||||||
static int count;
|
static int count;
|
||||||
static char line[1024], prev[1024];
|
static char line[1024], prev[1024];
|
||||||
|
static const uint8_t color[]={0x41,0x41,0x11,0x03,9,9,9};
|
||||||
AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
|
AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
|
||||||
if(level>av_log_level)
|
if(level>av_log_level)
|
||||||
return;
|
return;
|
||||||
@@ -57,7 +74,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
|||||||
fprintf(stderr, " Last message repeated %d times\n", count);
|
fprintf(stderr, " Last message repeated %d times\n", count);
|
||||||
count=0;
|
count=0;
|
||||||
}
|
}
|
||||||
fputs(line, stderr);
|
colored_fputs(color[av_clip(level>>3, 0, 6)], line);
|
||||||
strcpy(prev, line);
|
strcpy(prev, line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user