Ticket #3382: log.patch
| File log.patch, 2.9 KB (added by , 12 years ago) |
|---|
-
libavutil/log.c
old new 176 176 return avc->category + 16; 177 177 } 178 178 179 static const char *get_level_name(int level){ 180 switch (level) { 181 case AV_LOG_DEBUG: 182 return "DEBUG"; 183 case AV_LOG_VERBOSE: 184 return "VERBOSE"; 185 case AV_LOG_INFO: 186 return "INFO"; 187 case AV_LOG_WARNING: 188 return "WARNING"; 189 case AV_LOG_ERROR: 190 return "ERROR"; 191 case AV_LOG_FATAL: 192 return "FATAL"; 193 default: 194 return "N/A"; 195 } 196 } 197 179 198 static void format_line(void *ptr, int level, const char *fmt, va_list vl, 180 199 AVBPrint part[3], int *print_prefix, int type[2]) 181 200 { 182 201 AVClass* avc = ptr ? *(AVClass **) ptr : NULL; 183 202 av_bprint_init(part+0, 0, 1); 184 203 av_bprint_init(part+1, 0, 1); 185 av_bprint_init(part+2, 0, 65536); 204 av_bprint_init(part+2, 0, 1); 205 av_bprint_init(part+3, 0, 65536); 186 206 187 207 if(type) type[0] = type[1] = AV_CLASS_CATEGORY_NA + 16; 188 208 if (*print_prefix && avc) { … … 198 218 av_bprintf(part+1, "[%s @ %p] ", 199 219 avc->item_name(ptr), ptr); 200 220 if(type) type[1] = get_category(ptr); 221 222 av_bprintf(part+2, "[%s] ", get_level_name(level)); 201 223 } 202 224 203 av_vbprintf(part+ 2, fmt, vl);225 av_vbprintf(part+3, fmt, vl); 204 226 205 227 if(*part[0].str || *part[1].str || *part[2].str) { 206 228 char lastc = part[2].len && part[2].len <= part[2].size ? part[2].str[part[2].len - 1] : 0; … … 211 233 void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, 212 234 char *line, int line_size, int *print_prefix) 213 235 { 214 AVBPrint part[ 3];236 AVBPrint part[4]; 215 237 format_line(ptr, level, fmt, vl, part, print_prefix, NULL); 216 snprintf(line, line_size, "%s%s%s ", part[0].str, part[1].str, part[2].str);217 av_bprint_finalize(part+ 2, NULL);238 snprintf(line, line_size, "%s%s%s%s", part[0].str, part[1].str, part[2].str, part[3].str); 239 av_bprint_finalize(part+3, NULL); 218 240 } 219 241 220 242 void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) … … 222 244 static int print_prefix = 1; 223 245 static int count; 224 246 static char prev[LINE_SZ]; 225 AVBPrint part[ 3];247 AVBPrint part[4]; 226 248 char line[LINE_SZ]; 227 249 static int is_atty; 228 250 int type[2]; … … 234 256 #endif 235 257 236 258 format_line(ptr, level, fmt, vl, part, &print_prefix, type); 237 snprintf(line, sizeof(line), "%s%s%s ", part[0].str, part[1].str, part[2].str);259 snprintf(line, sizeof(line), "%s%s%s%s", part[0].str, part[1].str, part[2].str, part[3].str); 238 260 239 261 #if HAVE_ISATTY 240 262 if (!is_atty) … … 259 281 colored_fputs(type[1], part[1].str); 260 282 sanitize(part[2].str); 261 283 colored_fputs(av_clip(level >> 3, 0, 6), part[2].str); 284 sanitize(part[3].str); 285 colored_fputs(av_clip(level >> 3, 0, 6), part[3].str); 262 286 end: 263 287 av_bprint_finalize(part+2, NULL); 264 288 #if HAVE_PTHREADS
