And deprecate av_dlog macro.
---
This seemed to be the general consensus on IRC.
Up for discussion.
Vittorio

 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 e01ad24..35f4004 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 cf8d828..c779392 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.10.0
+  Add AV_LOG_TRACE for extremely verbose debugging.
+
 2015-xx-xx - xxxxxxx - lavc 56.13
   Add width, height, coded_width, coded_height and format to
   AVCodecParserContext.
diff --git a/doc/avtools-common-opts.texi b/doc/avtools-common-opts.texi
index 8468eca..64caccd 100644
--- a/doc/avtools-common-opts.texi
+++ b/doc/avtools-common-opts.texi
@@ -142,6 +142,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 d38e40b..7f2cb08 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 <windows.h>
-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 4e4424a..827e488 100644
--- a/libavutil/log.h
+++ b/libavutil/log.h
@@ -24,6 +24,7 @@
 #include <stdarg.h>
 #include "avutil.h"
 #include "attributes.h"
+#include "version.h"
 
 /**
  * Describe the class of an AVClass context structure. That is an
@@ -144,6 +145,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
+ * @note deprecated
  * 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 77595a8..f1152fd 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -54,7 +54,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 54
-#define LIBAVUTIL_VERSION_MINOR  9
+#define LIBAVUTIL_VERSION_MINOR 10
 #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
 
 
 /**
-- 
1.9.3 (Apple Git-50)

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to