Commit | Line | Data |
---|---|---|
04d7f601 DB |
1 | /* |
2 | * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> | |
3 | * | |
b78e7197 DB |
4 | * This file is part of FFmpeg. |
5 | * | |
6 | * FFmpeg is free software; you can redistribute it and/or | |
04d7f601 DB |
7 | * modify it under the terms of the GNU Lesser General Public |
8 | * License as published by the Free Software Foundation; either | |
b78e7197 | 9 | * version 2.1 of the License, or (at your option) any later version. |
04d7f601 | 10 | * |
b78e7197 | 11 | * FFmpeg is distributed in the hope that it will be useful, |
04d7f601 DB |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
b78e7197 | 17 | * License along with FFmpeg; if not, write to the Free Software |
04d7f601 DB |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ | |
20 | ||
5b21bdab DB |
21 | #ifndef FFMPEG_LOG_H |
22 | #define FFMPEG_LOG_H | |
4b45de0e LA |
23 | |
24 | #include <stdarg.h> | |
25 | ||
26 | /** | |
27 | * Used by av_log | |
28 | */ | |
29 | typedef struct AVCLASS AVClass; | |
30 | struct AVCLASS { | |
31 | const char* class_name; | |
32 | const char* (*item_name)(void*); /* actually passing a pointer to an AVCodecContext | |
33 | or AVFormatContext, which begin with an AVClass. | |
34 | Needed because av_log is in libavcodec and has no visibility | |
35 | of AVIn/OutputFormat */ | |
3666f75d | 36 | const struct AVOption *option; |
4b45de0e LA |
37 | }; |
38 | ||
39 | /* av_log API */ | |
40 | ||
434f2c18 | 41 | #if LIBAVUTIL_VERSION_INT < (50<<16) |
4b45de0e | 42 | #define AV_LOG_QUIET -1 |
434f2c18 | 43 | #define AV_LOG_FATAL 0 |
4b45de0e | 44 | #define AV_LOG_ERROR 0 |
434f2c18 | 45 | #define AV_LOG_WARNING 1 |
4b45de0e | 46 | #define AV_LOG_INFO 1 |
434f2c18 | 47 | #define AV_LOG_VERBOSE 1 |
4b45de0e | 48 | #define AV_LOG_DEBUG 2 |
434f2c18 LA |
49 | #else |
50 | #define AV_LOG_QUIET -8 | |
51 | ||
52 | /** | |
53 | * something went really wrong and we will crash now | |
54 | */ | |
55 | #define AV_LOG_PANIC 0 | |
56 | ||
57 | /** | |
58 | * something went wrong and recovery is not possible | |
59 | * like no header in a format which depends on it or a combination | |
60 | * of parameters which are not allowed | |
61 | */ | |
62 | #define AV_LOG_FATAL 8 | |
63 | ||
64 | /** | |
65 | * something went wrong and cannot losslessly be recovered | |
66 | * but not all future data is affected | |
67 | */ | |
68 | #define AV_LOG_ERROR 16 | |
69 | ||
70 | /** | |
71 | * something somehow does not look correct / something which may or may not | |
72 | * lead to some problems like use of -vstrict -2 | |
73 | */ | |
74 | #define AV_LOG_WARNING 24 | |
75 | ||
76 | #define AV_LOG_INFO 32 | |
77 | #define AV_LOG_VERBOSE 40 | |
78 | ||
79 | /** | |
80 | * stuff which is only useful for libav* developers | |
81 | */ | |
82 | #define AV_LOG_DEBUG 48 | |
83 | #endif | |
a309073b MR |
84 | |
85 | #if LIBAVUTIL_VERSION_INT < (50<<16) | |
918a4591 | 86 | extern int av_log_level; |
a309073b | 87 | #endif |
4b45de0e | 88 | |
3ec9a787 PI |
89 | /** |
90 | * Send the specified message to the log if the level is less than or equal to | |
91 | * the current av_log_level. By default, all logging messages are sent to | |
92 | * stderr. This behavior can be altered by setting a different av_vlog callback | |
93 | * function. | |
94 | * | |
95 | * @param avcl A pointer to an arbitrary struct of which the first field is a | |
96 | * pointer to an AVClass struct. | |
97 | * @param level The importance level of the message, lower values signifying | |
98 | * higher importance. | |
99 | * @param fmt The format string (printf-compatible) that specifies how | |
100 | * subsequent arguments are converted to output. | |
101 | * @see av_vlog | |
102 | */ | |
4b45de0e | 103 | #ifdef __GNUC__ |
07c37ca7 | 104 | void av_log(void*, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); |
4b45de0e | 105 | #else |
07c37ca7 | 106 | void av_log(void*, int level, const char *fmt, ...); |
4b45de0e LA |
107 | #endif |
108 | ||
07c37ca7 SS |
109 | void av_vlog(void*, int level, const char *fmt, va_list); |
110 | int av_log_get_level(void); | |
111 | void av_log_set_level(int); | |
112 | void av_log_set_callback(void (*)(void*, int, const char*, va_list)); | |
113 | void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl); | |
4b45de0e | 114 | |
5b21bdab | 115 | #endif /* FFMPEG_LOG_H */ |