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 | ||
98790382 SS |
21 | #ifndef AVUTIL_LOG_H |
22 | #define AVUTIL_LOG_H | |
4b45de0e LA |
23 | |
24 | #include <stdarg.h> | |
af5f434f | 25 | #include "avutil.h" |
4b45de0e LA |
26 | |
27 | /** | |
bfe3676f | 28 | * Describes the class of an AVClass context structure. That is an |
95a6a015 SS |
29 | * arbitrary struct of which the first field is a pointer to an |
30 | * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). | |
4b45de0e | 31 | */ |
68485d27 | 32 | typedef struct { |
95a6a015 | 33 | /** |
91605c69 | 34 | * The name of the class; usually it is the same name as the |
e4a957d1 | 35 | * context structure type to which the AVClass is associated. |
95a6a015 | 36 | */ |
4b45de0e | 37 | const char* class_name; |
95a6a015 SS |
38 | |
39 | /** | |
bfe3676f | 40 | * A pointer to a function which returns the name of a context |
bf7e799c | 41 | * instance ctx associated with the class. |
95a6a015 SS |
42 | */ |
43 | const char* (*item_name)(void* ctx); | |
44 | ||
45 | /** | |
46 | * a pointer to the first option specified in the class if any or NULL | |
47 | * | |
48 | * @see av_set_default_options() | |
49 | */ | |
3666f75d | 50 | const struct AVOption *option; |
68485d27 | 51 | } AVClass; |
4b45de0e LA |
52 | |
53 | /* av_log API */ | |
54 | ||
434f2c18 LA |
55 | #define AV_LOG_QUIET -8 |
56 | ||
57 | /** | |
bfe3676f | 58 | * Something went really wrong and we will crash now. |
434f2c18 LA |
59 | */ |
60 | #define AV_LOG_PANIC 0 | |
61 | ||
62 | /** | |
7d685b48 DB |
63 | * Something went wrong and recovery is not possible. |
64 | * For example, no header was found for a format which depends | |
65 | * on headers or an illegal combination of parameters is used. | |
434f2c18 LA |
66 | */ |
67 | #define AV_LOG_FATAL 8 | |
68 | ||
69 | /** | |
7d685b48 DB |
70 | * Something went wrong and cannot losslessly be recovered. |
71 | * However, not all future data is affected. | |
434f2c18 LA |
72 | */ |
73 | #define AV_LOG_ERROR 16 | |
74 | ||
75 | /** | |
7d685b48 DB |
76 | * Something somehow does not look correct. This may or may not |
77 | * lead to problems. An example would be the use of '-vstrict -2'. | |
434f2c18 LA |
78 | */ |
79 | #define AV_LOG_WARNING 24 | |
80 | ||
81 | #define AV_LOG_INFO 32 | |
82 | #define AV_LOG_VERBOSE 40 | |
83 | ||
84 | /** | |
bfe3676f | 85 | * Stuff which is only useful for libav* developers. |
434f2c18 LA |
86 | */ |
87 | #define AV_LOG_DEBUG 48 | |
4b45de0e | 88 | |
3ec9a787 | 89 | /** |
bfe3676f DB |
90 | * Sends the specified message to the log if the level is less than or equal |
91 | * to the current av_log_level. By default, all logging messages are sent to | |
3ec9a787 PI |
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 | |
98790382 | 115 | #endif /* AVUTIL_LOG_H */ |