Add means to adjust the log level per context.
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 8 May 2010 20:41:20 +0000 (20:41 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 8 May 2010 20:41:20 +0000 (20:41 +0000)
Originally committed as revision 23059 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/avutil.h
libavutil/log.c
libavutil/log.h

index e9e07b9..4bfe024 100644 (file)
@@ -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, \
index 9a8b66e..547287f 100644 (file)
@@ -89,8 +89,11 @@ static void (*av_log_callback)(void*, int, const char*, va_list) = av_log_defaul
 
 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);
 }
index 1c3e490..d4bc755 100644 (file)
@@ -56,6 +56,12 @@ typedef struct {
      */
 
     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 */