annotate log.h @ 1028:5dbb12a37c3d libavutil tip

Move av_set_options_string() from libavfilter to libavutil.
author stefano
date Mon, 27 Sep 2010 22:09:53 +0000
parents 4a16166d580e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
1 /*
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
3 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
4 * This file is part of FFmpeg.
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
5 *
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
8 * License as published by the Free Software Foundation; either
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
10 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
14 * Lesser General Public License for more details.
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
15 *
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
19 */
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 88
diff changeset
20
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 504
diff changeset
21 #ifndef AVUTIL_LOG_H
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 504
diff changeset
22 #define AVUTIL_LOG_H
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
23
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
24 #include <stdarg.h>
602
0b84593767d8 add the necessary include for LIBAV*_VERSION_*
aurel
parents: 567
diff changeset
25 #include "avutil.h"
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
26
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
27 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 923
diff changeset
28 * Describe the class of an AVClass context structure. That is an
499
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
29 * arbitrary struct of which the first field is a pointer to an
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
30 * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
31 */
754
e67b4de734af Remove useless definition of struct AVCLASS.
stefano
parents: 738
diff changeset
32 typedef struct {
499
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
33 /**
504
b66f7eda69d1 minor wording fix
diego
parents: 503
diff changeset
34 * The name of the class; usually it is the same name as the
503
1a16a6f15796 minor spelling fix
diego
parents: 499
diff changeset
35 * context structure type to which the AVClass is associated.
499
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
36 */
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
37 const char* class_name;
499
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
38
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
39 /**
636
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 602
diff changeset
40 * A pointer to a function which returns the name of a context
738
4f98a323598c Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents: 689
diff changeset
41 * instance ctx associated with the class.
499
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
42 */
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
43 const char* (*item_name)(void* ctx);
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
44
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
45 /**
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
46 * a pointer to the first option specified in the class if any or NULL
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
47 *
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
48 * @see av_set_default_options()
67ea650d4590 Enhance documentation for AVClass
benoit
parents: 494
diff changeset
49 */
144
daeb1d7eec41 make option field const
bcoudurier
parents: 116
diff changeset
50 const struct AVOption *option;
912
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
51
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
52 /**
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
53 * LIBAVUTIL_VERSION with which this structure was created.
913
de7b577403bc Fix typo.
jai_menon
parents: 912
diff changeset
54 * This is used to allow fields to be added without requiring major
912
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
55 * version bumps everywhere.
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
56 */
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
57
5ffcf744a157 Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
michael
parents: 754
diff changeset
58 int version;
917
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
59
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
60 /**
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
61 * Offset in the structure where log_level_offset is stored.
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
62 * 0 means there is no such variable
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
63 */
3ab411c447c4 Add means to adjust the log level per context.
michael
parents: 913
diff changeset
64 int log_level_offset_offset;
923
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
65
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
66 /**
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
67 * Offset in the structure where a pointer to the parent context for loging is stored.
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
68 * for example a decoder that uses eval.c could pass its AVCodecContext to eval as such
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
69 * parent context. And a av_log() implementation could then display the parent context
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
70 * can be NULL of course
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
71 */
13c95c3e8449 Make it possible for a log context to keep track of its parent context.
michael
parents: 922
diff changeset
72 int parent_log_context_offset;
754
e67b4de734af Remove useless definition of struct AVCLASS.
stefano
parents: 738
diff changeset
73 } AVClass;
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
74
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
75 /* av_log API */
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
76
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
77 #define AV_LOG_QUIET -8
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
78
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
79 /**
636
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 602
diff changeset
80 * Something went really wrong and we will crash now.
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
81 */
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
82 #define AV_LOG_PANIC 0
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
83
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
84 /**
637
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
85 * Something went wrong and recovery is not possible.
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
86 * For example, no header was found for a format which depends
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
87 * on headers or an illegal combination of parameters is used.
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
88 */
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
89 #define AV_LOG_FATAL 8
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
90
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
91 /**
637
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
92 * Something went wrong and cannot losslessly be recovered.
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
93 * However, not all future data is affected.
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
94 */
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
95 #define AV_LOG_ERROR 16
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
96
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
97 /**
637
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
98 * Something somehow does not look correct. This may or may not
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
99 * lead to problems. An example would be the use of '-vstrict -2'.
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
100 */
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
101 #define AV_LOG_WARNING 24
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
102
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
103 #define AV_LOG_INFO 32
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
104 #define AV_LOG_VERBOSE 40
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
105
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
106 /**
636
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 602
diff changeset
107 * Stuff which is only useful for libav* developers.
233
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
108 */
0e59652783b7 Increase the av_log() levels, and add some documentation for them
lucabe
parents: 163
diff changeset
109 #define AV_LOG_DEBUG 48
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
110
270
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
111 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 923
diff changeset
112 * Send the specified message to the log if the level is less than or equal
636
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 602
diff changeset
113 * to the current av_log_level. By default, all logging messages are sent to
270
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
114 * stderr. This behavior can be altered by setting a different av_vlog callback
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
115 * function.
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
116 *
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
117 * @param avcl A pointer to an arbitrary struct of which the first field is a
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
118 * pointer to an AVClass struct.
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
119 * @param level The importance level of the message, lower values signifying
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
120 * higher importance.
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
121 * @param fmt The format string (printf-compatible) that specifies how
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
122 * subsequent arguments are converted to output.
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
123 * @see av_vlog
55cd41bc50bf Move the unaltered Doxygen docs from the log source code to the accompanying
takis
parents: 233
diff changeset
124 */
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
125 #ifdef __GNUC__
969
dd2093c239e4 Add parameter names to av_log/av_vlog function declarations.
diego
parents: 957
diff changeset
126 void av_log(void *avcl, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
127 #else
969
dd2093c239e4 Add parameter names to av_log/av_vlog function declarations.
diego
parents: 957
diff changeset
128 void av_log(void *avcl, int level, const char *fmt, ...);
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
129 #endif
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
130
969
dd2093c239e4 Add parameter names to av_log/av_vlog function declarations.
diego
parents: 957
diff changeset
131 void av_vlog(void *avcl, int level, const char *fmt, va_list);
494
4b4a3fb11c25 remove useless extern keyword.
benoit
parents: 408
diff changeset
132 int av_log_get_level(void);
4b4a3fb11c25 remove useless extern keyword.
benoit
parents: 408
diff changeset
133 void av_log_set_level(int);
4b4a3fb11c25 remove useless extern keyword.
benoit
parents: 408
diff changeset
134 void av_log_set_callback(void (*)(void*, int, const char*, va_list));
4b4a3fb11c25 remove useless extern keyword.
benoit
parents: 408
diff changeset
135 void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
922
2acb0b1891c0 av_default_item_name() so Simply AVClasses need 1 function less.
michael
parents: 917
diff changeset
136 const char* av_default_item_name(void* ctx);
81
5cfa773a3bdd Move av_log() & friends to libavutil
lucabe
parents:
diff changeset
137
1019
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
138 /**
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
139 * Skip repeated messages, this requires the user app to use av_log() instead of
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
140 * (f)printf as the 2 would otherwise interfere and lead to
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
141 * "Last message repeated x times" messages below (f)printf messages with some
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
142 * bad luck.
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
143 * Also to receive the last, "last repeated" line if any, the user app must
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
144 * call av_log(NULL, AV_LOG_QUIET, ""); at the end
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
145 */
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
146 #define AV_LOG_SKIP_REPEATED 1
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
147 void av_log_set_flags(int arg);
4a16166d580e 2nd try to fix av_log() repeated detection
michael
parents: 969
diff changeset
148
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 504
diff changeset
149 #endif /* AVUTIL_LOG_H */