vdr-plugin-softhddevice-drm-gles 1.6.2
logger.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2
12#ifndef __LOGGER_H
13#define __LOGGER_H
14
15#include <atomic>
16#include <cstdarg>
17#include <memory>
18
25#define AV_LOGLEVEL AV_LOG_INFO
26
27/********************************************************************************
28 * Logger macros
29 *******************************************************************************/
30
32#define LOGFATAL cSoftHdLogger::GetLogger()->LogFatal
34#define LOGERROR cSoftHdLogger::GetLogger()->LogError
36#define LOGWARNING cSoftHdLogger::GetLogger()->LogWarning
38#define LOGINFO cSoftHdLogger::GetLogger()->LogInfo
40#define LOGDEBUG cSoftHdLogger::GetLogger()->LogDebug
42#define LOGDEBUG2 cSoftHdLogger::GetLogger()->LogDebug2
43
51 L_DEBUG = (1 << 0),
52 L_AV_SYNC = (1 << 1),
53 L_SOUND = (1 << 2),
54 L_OSD = (1 << 3),
55 L_DRM = (1 << 4),
56 L_CODEC = (1 << 5),
57 L_STILL = (1 << 6),
58 L_TRICK = (1 << 7),
59 L_MEDIA = (1 << 8),
60 L_OPENGL = (1 << 9),
61 L_OPENGL_TIME = (1 << 10),
62 L_OPENGL_TIME_ALL = (1 << 11),
63 L_PACKET = (1 << 12),
64 L_GRAB = (1 << 13),
65 L_FFMPEG = (1 << 14),
66};
67
74public:
75 static std::shared_ptr<cSoftHdLogger> GetLogger();
76 static void LogFFmpegCallback(void *, int, const char *, va_list);
77 void LogFatal(const char *format, ...);
78 void LogError(const char *format, ...);
79 void LogWarning(const char *format, ...);
80 void LogInfo(const char *format, ...);
81 void LogDebug(const char *format, ...);
82 void LogDebug2(const int cat, const char *format, ...);
83 void LogFFmpeg(const char *, va_list);
84 void SetLogLevel(int level);
85
86private:
87 cSoftHdLogger(void) = default;
88 cSoftHdLogger(const cSoftHdLogger &) = delete;
90
91 static constexpr int MAX_LOGMESSAGE_SIZE = 512;
92
93 std::atomic<int> m_logLevel = 0;
94};
95
98#endif
Logger.
Definition logger.h:73
std::atomic< int > m_logLevel
loglevel mask (see enum LogFlags)
Definition logger.h:93
cSoftHdLogger(const cSoftHdLogger &)=delete
cSoftHdLogger & operator=(const cSoftHdLogger &)=delete
cSoftHdLogger(void)=default
static constexpr int MAX_LOGMESSAGE_SIZE
max size of the log message
Definition logger.h:91
static std::shared_ptr< cSoftHdLogger > GetLogger()
Get an instance to the global logger.
Definition logger.cpp:50
void LogInfo(const char *format,...)
Log to syslog LOG_INFO.
Definition logger.cpp:128
void LogError(const char *format,...)
Log to syslog LOG_ERR.
Definition logger.cpp:90
void LogFFmpeg(const char *, va_list)
Log to syslog LOG_DEBUG and add prefix [FFMpeg] to output.
Definition logger.cpp:226
void LogDebug(const char *format,...)
Log to syslog LOG_DEBUG.
Definition logger.cpp:147
void LogWarning(const char *format,...)
Log to syslog LOG_WARNING.
Definition logger.cpp:109
static void LogFFmpegCallback(void *, int, const char *, va_list)
Callback for ffmpeg logs.
Definition logger.cpp:248
void SetLogLevel(int level)
Set the loglevel.
Definition logger.cpp:61
void LogFatal(const char *format,...)
Log to syslog LOG_ERR and abort.
Definition logger.cpp:69
void LogDebug2(const int cat, const char *format,...)
Log to syslog LOG_DEBUG and add logging category to output.
Definition logger.cpp:166
LogFlags
Logger Flags.
Definition logger.h:50
@ L_PACKET
decoder packet/frame tracking logs
Definition logger.h:63
@ L_DRM
drm logs
Definition logger.h:55
@ L_OPENGL_TIME
opengl osd flush time measurement
Definition logger.h:61
@ L_STILL
stillpicture logs
Definition logger.h:57
@ L_FFMPEG
ffmpeg logs
Definition logger.h:65
@ L_AV_SYNC
audio/video sync logs
Definition logger.h:52
@ L_MEDIA
mediaplayer logs
Definition logger.h:59
@ L_OSD
osd logs
Definition logger.h:54
@ L_TRICK
trickspeed logs
Definition logger.h:58
@ L_OPENGL
opengl osd logs
Definition logger.h:60
@ L_DEBUG
common debug logs
Definition logger.h:51
@ L_OPENGL_TIME_ALL
opengl osd all commands time measurement
Definition logger.h:62
@ L_CODEC
codec logs
Definition logger.h:56
@ L_SOUND
sound logs
Definition logger.h:53
@ L_GRAB
grabbing logs
Definition logger.h:64