1 | /*
|
---|
2 | * copyright (c) 2006 Michael Niedermayer <[email protected]>
|
---|
3 | *
|
---|
4 | * This file is part of FFmpeg.
|
---|
5 | *
|
---|
6 | * FFmpeg is free software; you can redistribute it and/or
|
---|
7 | * modify it under the terms of the GNU Lesser General Public
|
---|
8 | * License as published by the Free Software Foundation; either
|
---|
9 | * version 2.1 of the License, or (at your option) any later version.
|
---|
10 | *
|
---|
11 | * FFmpeg is distributed in the hope that it will be useful,
|
---|
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
|
---|
17 | * License along with FFmpeg; if not, write to the Free Software
|
---|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
---|
19 | */
|
---|
20 |
|
---|
21 | #ifndef LOG_H
|
---|
22 | #define LOG_H
|
---|
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 */
|
---|
36 | const struct AVOption *option;
|
---|
37 | };
|
---|
38 |
|
---|
39 | /* av_log API */
|
---|
40 |
|
---|
41 | #if LIBAVUTIL_VERSION_INT < (50<<16)
|
---|
42 | #define AV_LOG_QUIET -1
|
---|
43 | #define AV_LOG_FATAL 0
|
---|
44 | #define AV_LOG_ERROR 0
|
---|
45 | #define AV_LOG_WARNING 1
|
---|
46 | #define AV_LOG_INFO 1
|
---|
47 | #define AV_LOG_VERBOSE 1
|
---|
48 | #define AV_LOG_DEBUG 2
|
---|
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
|
---|
84 | extern int av_log_level;
|
---|
85 |
|
---|
86 | /**
|
---|
87 | * Send the specified message to the log if the level is less than or equal to
|
---|
88 | * the current av_log_level. By default, all logging messages are sent to
|
---|
89 | * stderr. This behavior can be altered by setting a different av_vlog callback
|
---|
90 | * function.
|
---|
91 | *
|
---|
92 | * @param avcl A pointer to an arbitrary struct of which the first field is a
|
---|
93 | * pointer to an AVClass struct.
|
---|
94 | * @param level The importance level of the message, lower values signifying
|
---|
95 | * higher importance.
|
---|
96 | * @param fmt The format string (printf-compatible) that specifies how
|
---|
97 | * subsequent arguments are converted to output.
|
---|
98 | * @see av_vlog
|
---|
99 | */
|
---|
100 | #ifdef __GNUC__
|
---|
101 | extern void av_log(void*, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
|
---|
102 | #else
|
---|
103 | extern void av_log(void*, int level, const char *fmt, ...);
|
---|
104 | #endif
|
---|
105 |
|
---|
106 | #if LIBAVUTIL_VERSION_INT < (50<<16)
|
---|
107 | extern void av_vlog(void*, int level, const char *fmt, va_list);
|
---|
108 | extern int av_log_get_level(void);
|
---|
109 | extern void av_log_set_level(int);
|
---|
110 | extern void av_log_set_callback(void (*)(void*, int, const char*, va_list));
|
---|
111 | extern void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
|
---|
112 | #else
|
---|
113 | extern void (*av_vlog)(void*, int, const char*, va_list);
|
---|
114 | #endif
|
---|
115 |
|
---|
116 | #endif /* LOG_H */
|
---|