comparison log.c @ 924:d45ace227adf libavutil

Print parent log context too, if available.
author michael
date Wed, 19 May 2010 22:51:38 +0000
parents 2acb0b1891c0
children 252d7a7ee7d5
comparison
equal deleted inserted replaced
923:13c95c3e8449 924:d45ace227adf
66 static char line[1024], prev[1024]; 66 static char line[1024], prev[1024];
67 static const uint8_t color[]={0x41,0x41,0x11,0x03,9,9,9}; 67 static const uint8_t color[]={0x41,0x41,0x11,0x03,9,9,9};
68 AVClass* avc= ptr ? *(AVClass**)ptr : NULL; 68 AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
69 if(level>av_log_level) 69 if(level>av_log_level)
70 return; 70 return;
71 line[0]=0;
71 #undef fprintf 72 #undef fprintf
72 if(print_prefix && avc) { 73 if(print_prefix && avc) {
73 snprintf(line, sizeof(line), "[%s @ %p]", avc->item_name(ptr), ptr); 74 if(avc->version >= (50<<16 | 15<<8 | 3) && avc->parent_log_context_offset){
74 }else 75 AVClass** parent= *(AVClass***)(((uint8_t*)ptr) + avc->parent_log_context_offset);
75 line[0]=0; 76 if(parent && *parent){
77 snprintf(line, sizeof(line), "[%s @ %p]", (*parent)->item_name(parent), parent);
78 }
79 }
80 snprintf(line + strlen(line), sizeof(line) - strlen(line), "[%s @ %p]", avc->item_name(ptr), ptr);
81 }
76 82
77 vsnprintf(line + strlen(line), sizeof(line) - strlen(line), fmt, vl); 83 vsnprintf(line + strlen(line), sizeof(line) - strlen(line), fmt, vl);
78 84
79 print_prefix= line[strlen(line)-1] == '\n'; 85 print_prefix= line[strlen(line)-1] == '\n';
80 if(print_prefix && !strcmp(line, prev)){ 86 if(print_prefix && !strcmp(line, prev)){