From c253340ae6f74ffd8798bbd476e46d1b33a2d56e Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Mon, 16 Mar 2015 08:57:34 +0000 Subject: [PATCH] log: Introduce a more verbose debug level And deprecate av_dlog macro. --- cmdutils.c | 1 + doc/APIchanges | 3 +++ doc/avtools-common-opts.texi | 1 + libavutil/log.c | 9 ++++++--- libavutil/log.h | 9 +++++++++ libavutil/version.h | 5 ++++- 6 files changed, 24 insertions(+), 4 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index af8354aa19..c4a78199f3 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -724,6 +724,7 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg) { "info" , AV_LOG_INFO }, { "verbose", AV_LOG_VERBOSE }, { "debug" , AV_LOG_DEBUG }, + { "trace" , AV_LOG_TRACE }, }; char *tail; int level; diff --git a/doc/APIchanges b/doc/APIchanges index 35830f8278..5934f4517f 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2014-08-09 API changes, most recent first: +2015-xx-xx - xxxxxxx - lavu 54.12.0 + Add AV_LOG_TRACE for extremely verbose debugging. + 2015-xx-xx - xxxxxxx - lavu 54.11.0 Add av_small_strptime(). diff --git a/doc/avtools-common-opts.texi b/doc/avtools-common-opts.texi index 852d3f8236..79f764b58c 100644 --- a/doc/avtools-common-opts.texi +++ b/doc/avtools-common-opts.texi @@ -145,6 +145,7 @@ Set the logging level used by the library. @item info @item verbose @item debug +@item trace @end table By default the program logs to stderr, if coloring is supported by the diff --git a/libavutil/log.c b/libavutil/log.c index d38e40bfda..7f2cb08597 100644 --- a/libavutil/log.c +++ b/libavutil/log.c @@ -43,16 +43,19 @@ static int av_log_level = AV_LOG_INFO; static int flags; +#define NB_LEVELS 8 #if HAVE_SETCONSOLETEXTATTRIBUTE #include -static const uint8_t color[] = { 12, 12, 12, 14, 7, 10, 11 }; +static const uint8_t color[NB_LEVELS] = { 12, 12, 12, 14, 7, 10, 11, 8}; static int16_t background, attr_orig; static HANDLE con; #define set_color(x) SetConsoleTextAttribute(con, background | color[x]) #define reset_color() SetConsoleTextAttribute(con, attr_orig) #define print_256color(x) #else -static const uint8_t color[] = { 0x41, 0x41, 0x11, 0x03, 9, 0x02, 0x06 }; +static const uint8_t color[NB_LEVELS] = { + 0x41, 0x41, 0x11, 0x03, 9, 0x02, 0x06, 0x07 +}; #define set_color(x) fprintf(stderr, "\033[%d;3%dm", color[x] >> 4, color[x]&15) #define print_256color(x) fprintf(stderr, "\033[38;5;%dm", x) #define reset_color() fprintf(stderr, "\033[0m") @@ -159,7 +162,7 @@ void av_log_default_callback(void *avcl, int level, const char *fmt, va_list vl) fprintf(stderr, " Last message repeated %d times\n", count); count = 0; } - colored_fputs(av_clip(level >> 3, 0, 6), tint >> 8, line); + colored_fputs(av_clip(level >> 3, 0, NB_LEVELS - 1), tint >> 8, line); av_strlcpy(prev, line, sizeof line); } diff --git a/libavutil/log.h b/libavutil/log.h index 4e4424a553..d4daea9c1a 100644 --- a/libavutil/log.h +++ b/libavutil/log.h @@ -24,6 +24,7 @@ #include #include "avutil.h" #include "attributes.h" +#include "version.h" /** * Describe the class of an AVClass context structure. That is an @@ -143,6 +144,11 @@ typedef struct AVClass { */ #define AV_LOG_DEBUG 48 +/** + * Extremely verbose debugging, useful for libav* development. + */ +#define AV_LOG_TRACE 56 + /** * @} */ @@ -243,8 +249,10 @@ void av_log_default_callback(void *avcl, int level, const char *fmt, */ const char* av_default_item_name(void* ctx); +#if FF_API_DLOG /** * av_dlog macros + * @deprecated unused * Useful to print debug messages that shouldn't get compiled in normally. */ @@ -253,6 +261,7 @@ const char* av_default_item_name(void* ctx); #else # define av_dlog(pctx, ...) #endif +#endif /* FF_API_DLOG */ /** * Skip repeated messages, this requires the user app to use av_log() instead of diff --git a/libavutil/version.h b/libavutil/version.h index 14a406e7da..eb2574ae81 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -54,7 +54,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 54 -#define LIBAVUTIL_VERSION_MINOR 11 +#define LIBAVUTIL_VERSION_MINOR 12 #define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ @@ -111,6 +111,9 @@ #ifndef FF_API_OPT_TYPE_METADATA #define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 55) #endif +#ifndef FF_API_DLOG +#define FF_API_DLOG (LIBAVUTIL_VERSION_MAJOR < 55) +#endif /**