changeset 917:3ab411c447c4 libavutil

Add means to adjust the log level per context.
author michael
date Sat, 08 May 2010 20:41:20 +0000
parents 2860cc0b5562
children e0e9e51684ef
files avutil.h log.c log.h
diffstat 3 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/avutil.h	Wed May 05 21:44:47 2010 +0000
+++ b/avutil.h	Sat May 08 20:41:20 2010 +0000
@@ -41,7 +41,7 @@
 
 #define LIBAVUTIL_VERSION_MAJOR 50
 #define LIBAVUTIL_VERSION_MINOR 15
-#define LIBAVUTIL_VERSION_MICRO  1
+#define LIBAVUTIL_VERSION_MICRO  2
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \
--- a/log.c	Wed May 05 21:44:47 2010 +0000
+++ b/log.c	Sat May 08 20:41:20 2010 +0000
@@ -89,8 +89,11 @@
 
 void av_log(void* avcl, int level, const char *fmt, ...)
 {
+    AVClass* avc= avcl ? *(AVClass**)avcl : NULL;
     va_list vl;
     va_start(vl, fmt);
+    if(avc && avc->version >= (50<<16 | 15<<8 | 2) && avc->log_level_offset_offset && level>=AV_LOG_FATAL)
+        level += *(int*)(((uint8_t*)avcl) + avc->log_level_offset_offset);
     av_vlog(avcl, level, fmt, vl);
     va_end(vl);
 }
--- a/log.h	Wed May 05 21:44:47 2010 +0000
+++ b/log.h	Sat May 08 20:41:20 2010 +0000
@@ -56,6 +56,12 @@
      */
 
     int version;
+
+    /**
+     * Offset in the structure where log_level_offset is stored.
+     * 0 means there is no such variable
+     */
+    int log_level_offset_offset;
 } AVClass;
 
 /* av_log API */