Browse Source

Limit av_log repeat detection to terminals so as to avoid filling files with

lots of mess.

Originally committed as revision 25117 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Michael Niedermayer 15 years ago
parent
commit
c157fe6356
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      libavutil/log.c

+ 7
- 1
libavutil/log.c View File

@@ -85,6 +85,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
static int print_prefix=1;
static int count;
static char line[1024], prev[1024];
static int detect_repeats;
AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
if(level>av_log_level)
return;
@@ -103,7 +104,12 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
vsnprintf(line + strlen(line), sizeof(line) - strlen(line), fmt, vl);

print_prefix= line[strlen(line)-1] == '\n';
if(print_prefix && !strcmp(line, prev)){

#if HAVE_ISATTY
if(!detect_repeats) detect_repeats= isatty(2) ? 1 : -1;
#endif

if(print_prefix && detect_repeats==1 && !strcmp(line, prev)){
count++;
fprintf(stderr, " Last message repeated %d times\r", count);
return;


Loading…
Cancel
Save