MLT 7.40.0
Multimedia Framework
mlt_log.h
Go to the documentation of this file.
1
22#ifndef MLT_LOG_H
23#define MLT_LOG_H
24
25#include "mlt_export.h"
26#include <stdarg.h>
27#include <stdint.h>
28
29#define MLT_LOG_QUIET -8
30
34#define MLT_LOG_PANIC 0
35
41#define MLT_LOG_FATAL 8
42
47#define MLT_LOG_ERROR 16
48
53#define MLT_LOG_WARNING 24
54
55#define MLT_LOG_INFO 32
56#define MLT_LOG_VERBOSE 40
57#define MLT_LOG_TIMINGS 44
58
62#define MLT_LOG_DEBUG 48
63
77#ifdef __GNUC__
78MLT_EXPORT void mlt_log(void *service, int level, const char *fmt, ...)
79 __attribute__((__format__(__printf__, 3, 4)));
80#else
81MLT_EXPORT void mlt_log(void *service, int level, const char *fmt, ...);
82#endif
83
84#ifdef _MSC_VER
85
86#define MLT_LOG_EXPAND_ARGS(...) , ##__VA_ARGS__
87
88#define mlt_log_panic(service, format, ...) \
89 mlt_log((service), MLT_LOG_PANIC, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
90#define mlt_log_fatal(service, format, ...) \
91 mlt_log((service), MLT_LOG_FATAL, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
92#define mlt_log_error(service, format, ...) \
93 mlt_log((service), MLT_LOG_ERROR, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
94#define mlt_log_warning(service, format, ...) \
95 mlt_log((service), MLT_LOG_WARNING, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
96#define mlt_log_info(service, format, ...) \
97 mlt_log((service), MLT_LOG_INFO, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
98#define mlt_log_verbose(service, format, ...) \
99 mlt_log((service), MLT_LOG_VERBOSE, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
100#define mlt_log_timings(service, format, ...) \
101 mlt_log((service), MLT_LOG_TIMINGS, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
102#define mlt_log_debug(service, format, ...) \
103 mlt_log((service), MLT_LOG_DEBUG, format MLT_LOG_EXPAND_ARGS(__VA_ARGS__))
104
105#else
106
107#define mlt_log_panic(service, format, args...) mlt_log((service), MLT_LOG_PANIC, (format), ##args)
108#define mlt_log_fatal(service, format, args...) mlt_log((service), MLT_LOG_FATAL, (format), ##args)
109#define mlt_log_error(service, format, args...) mlt_log((service), MLT_LOG_ERROR, (format), ##args)
110#define mlt_log_warning(service, format, args...) \
111 mlt_log((service), MLT_LOG_WARNING, (format), ##args)
112#define mlt_log_info(service, format, args...) mlt_log((service), MLT_LOG_INFO, (format), ##args)
113#define mlt_log_verbose(service, format, args...) \
114 mlt_log((service), MLT_LOG_VERBOSE, (format), ##args)
115#define mlt_log_timings(service, format, args...) \
116 mlt_log((service), MLT_LOG_TIMINGS, (format), ##args)
117#define mlt_log_debug(service, format, args...) mlt_log((service), MLT_LOG_DEBUG, (format), ##args)
118
119#endif
120
121MLT_EXPORT void mlt_vlog(void *service, int level, const char *fmt, va_list);
122MLT_EXPORT int mlt_log_get_level(void);
123MLT_EXPORT void mlt_log_set_level(int);
124MLT_EXPORT void mlt_log_set_callback(void (*)(void *, int, const char *, va_list));
125
126#define mlt_log_timings_begin() \
127 { \
128 int64_t _mlt_log_timings_begin = mlt_log_timings_now(), _mlt_log_timings_end;
129
130#define mlt_log_timings_end(service, msg) \
131 _mlt_log_timings_end = mlt_log_timings_now(); \
132 mlt_log_timings(service, \
133 "%s:%d: T(%s)=%" PRId64 " us\n", \
134 __FILE__, \
135 __LINE__, \
136 msg, \
137 _mlt_log_timings_end - _mlt_log_timings_begin); \
138 }
139
140MLT_EXPORT int64_t mlt_log_timings_now(void);
141
142#endif /* MLT_LOG_H */
MLT_EXPORT void mlt_vlog(void *service, int level, const char *fmt, va_list)
Definition mlt_log.c:91
MLT_EXPORT void mlt_log_set_level(int)
Definition mlt_log.c:102
MLT_EXPORT int64_t mlt_log_timings_now(void)
Definition mlt_log.c:112
MLT_EXPORT int mlt_log_get_level(void)
Definition mlt_log.c:97
MLT_EXPORT void mlt_log_set_callback(void(*)(void *, int, const char *, va_list))
Definition mlt_log.c:107
MLT_EXPORT void mlt_log(void *service, int level, const char *fmt,...)
Send the specified message to the log if the level is less than or equal to the current logging level...
struct __attribute__((aligned(16)))
private to mlt_pool_s, for tracking items to release
Definition mlt_pool.c:103