vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
softhdsetupmenu.cpp
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2
17#include <vdr/menuitems.h>
18
19#include "audio.h"
20#include "codec_audio.h"
21#include "config.h"
22#include "logger.h"
23#include "softhddevice.h"
24#include "softhdsetupmenu.h"
25
33static inline cOsdItem *SeparatorName(const char *label)
34{
35 return new cOsdItem(cString::sprintf("%s:", label), osUnknown, false);
36}
37
45inline cOsdItem *cMenuSetupSoft::CollapsedItem(const char *label, int &flag, const char *msg)
46{
48
49 item = new cMenuEditBoolItem(cString::sprintf("* %s", label), &flag,
50 msg ? msg : tr("show"), tr("hide"));
51
52 return item;
53}
54
59{
60 int current;
61
62 current = Current(); // get current menu item index
63 Clear(); // clear the menu
64
65 //
66 // General
67 //
68 Add(CollapsedItem(tr("General"), m_cGeneralMenu));
69 if (m_cGeneralMenu) {
70 Add(new cMenuEditBoolItem(tr(" Hide main menu entry"), &m_cHideMainMenuEntry, trVDR("no"), trVDR("yes")));
71 }
72
73 //
74 // Video
75 //
76 Add(CollapsedItem(tr("Video"), m_cVideoMenu));
77 if (m_cVideoMenu) {
78 Add(new cMenuEditBoolItem(tr(" Enable HDR"), &m_cVideoEnableHDR, trVDR("no"), trVDR("yes")));
79 }
80
81 //
82 // Audio
83 //
84 Add(CollapsedItem(tr("Audio"), m_cAudioMenu));
85 if (m_cAudioMenu) {
86 Add(new cMenuEditBoolItem(tr(" Volume control"), &m_cAudioSoftvol, tr("hardware"), tr("software")));
87 Add(new cMenuEditBoolItem(tr(" Enable stereo downmix"), &m_cAudioDownmix, trVDR("no"), trVDR("yes")));
88 Add(new cMenuEditBoolItem(tr(" Enable passthrough"), &m_cAudioPassthroughDefault, trVDR("off"), trVDR("on")));
90 Add(new cMenuEditBoolItem(tr(" AC-3 passthrough"), &m_cAudioPassthroughAC3, trVDR("no"), trVDR("yes")));
91 Add(new cMenuEditBoolItem(tr(" E-AC-3 passthrough"), &m_cAudioPassthroughEAC3, trVDR("no"), trVDR("yes")));
92 Add(new cMenuEditBoolItem(tr(" DTS passthrough"), &m_cAudioPassthroughDTS, trVDR("no"), trVDR("yes")));
93 Add(new cMenuEditBoolItem(tr(" Enable automatic AES"), &m_cAudioAutoAES, trVDR("no"), trVDR("yes")));
94 }
95 Add(new cMenuEditIntItem(tr(" Audio/Video delay (ms)"), &m_cAudioDelay, -1000, 1000));
96 Add(new cMenuEditBoolItem(tr(" Enable normalize volume"), &m_cAudioNormalize, trVDR("no"), trVDR("yes")));
98 Add(new cMenuEditIntItem(tr(" Max normalize factor (/1000)"), &m_cAudioMaxNormalize, 0, 10000));
99 Add(new cMenuEditBoolItem(tr(" Enable volume compression"), &m_cAudioCompression, trVDR("no"), trVDR("yes")));
101 Add(new cMenuEditIntItem(tr(" Max compression factor (/1000)"), &m_cAudioMaxCompression, 0, 10000));
102 Add(new cMenuEditIntItem(tr(" Reduce stereo volume (/1000)"), &m_cAudioStereoDescent, 0, 1000));
103 }
104
105 //
106 // Audio filter
107 //
108 Add(CollapsedItem(tr("Audio equalizer"), m_cAudioFilterMenu));
109 if (m_cAudioFilterMenu) {
110 Add(new cMenuEditBoolItem(tr(" Enable audio equalizer"), &m_cAudioEq, trVDR("no"), trVDR("yes")));
111 if (m_cAudioEq) {
112 Add(new cMenuEditIntItem(tr(" 60 Hz band gain"), &m_cAudioEqBand[0], -15, 1));
113 Add(new cMenuEditIntItem(tr(" 72 Hz band gain"), &m_cAudioEqBand[1], -15, 1));
114 Add(new cMenuEditIntItem(tr(" 107 Hz band gain"), &m_cAudioEqBand[2], -15, 1));
115 Add(new cMenuEditIntItem(tr(" 150 Hz band gain"), &m_cAudioEqBand[3], -15, 1));
116 Add(new cMenuEditIntItem(tr(" 220 Hz band gain"), &m_cAudioEqBand[4], -15, 1));
117 Add(new cMenuEditIntItem(tr(" 310 Hz band gain"), &m_cAudioEqBand[5], -15, 1));
118 Add(new cMenuEditIntItem(tr(" 430 Hz band gain"), &m_cAudioEqBand[6], -15, 1));
119 Add(new cMenuEditIntItem(tr(" 620 Hz band gain"), &m_cAudioEqBand[7], -15, 1));
120 Add(new cMenuEditIntItem(tr(" 860 Hz band gain"), &m_cAudioEqBand[8], -15, 1));
121 Add(new cMenuEditIntItem(tr(" 1200 Hz band gain"), &m_cAudioEqBand[9], -15, 1));
122 Add(new cMenuEditIntItem(tr(" 1700 Hz band gain"), &m_cAudioEqBand[10], -15, 1));
123 Add(new cMenuEditIntItem(tr(" 2500 Hz band gain"), &m_cAudioEqBand[11], -15, 1));
124 Add(new cMenuEditIntItem(tr(" 3500 Hz band gain"), &m_cAudioEqBand[12], -15, 1));
125 Add(new cMenuEditIntItem(tr(" 4800 Hz band gain"), &m_cAudioEqBand[13], -15, 1));
126 Add(new cMenuEditIntItem(tr(" 7000 Hz band gain"), &m_cAudioEqBand[14], -15, 1));
127 Add(new cMenuEditIntItem(tr(" 9500 Hz band gain"), &m_cAudioEqBand[15], -15, 1));
128 Add(new cMenuEditIntItem(tr(" 13500 Hz band gain"), &m_cAudioEqBand[16], -15, 1));
129 Add(new cMenuEditIntItem(tr(" 17200 Hz band gain"), &m_cAudioEqBand[17], -15, 1));
130 }
131 }
132
133 //
134 // PiP
135 //
136 if (m_pDevice->UsePip()) {
137 Add(CollapsedItem(tr("Picture-in-picture"), m_cPipMenu));
138 if (m_cPipMenu) {
139 Add(new cMenuEditIntItem(tr(" video scaling factor (%)"), &m_cPipScalePercent, 10, 100));
140 Add(new cMenuEditIntItem(tr(" video left (%)"), &m_cPipLeftPercent, 0, 100));
141 Add(new cMenuEditIntItem(tr(" video top (%)"), &m_cPipTopPercent, 0, 100));
142 Add(new cMenuEditBoolItem(tr(" use alternative position as default"), &m_cPipUseAlt, trVDR("no"), trVDR("yes")));
143 Add(new cMenuEditIntItem(tr(" alternative video scaling factor (%)"), &m_cPipAltScalePercent, 10, 100));
144 Add(new cMenuEditIntItem(tr(" alternative video left (%)"), &m_cPipAltLeftPercent, 0, 100));
145 Add(new cMenuEditIntItem(tr(" alternative video top (%)"), &m_cPipAltTopPercent, 0, 100));
146 }
147 }
148
149 //
150 // Logging
151 //
152 Add(CollapsedItem(tr("Logging"), m_cLoggingMenu));
153 if (m_cLoggingMenu) {
154 Add(new cMenuEditBoolItem(tr(" Enable logging"), &m_cLogDefault, trVDR("off"), trVDR("on")));
155 if (m_cLogDefault) {
156 Add(new cMenuEditBoolItem(tr(" Standard debug logs"), &m_cLogDebug_, trVDR("no"), trVDR("yes")));
157 Add(new cMenuEditBoolItem(tr(" DRM debug logs"), &m_cLogDRM, trVDR("no"), trVDR("yes")));
158 Add(new cMenuEditBoolItem(tr(" Codec debug logs"), &m_cLogCodec, trVDR("no"), trVDR("yes")));
159 Add(new cMenuEditBoolItem(tr(" AV Sync debug logs"), &m_cLogAVSync, trVDR("no"), trVDR("yes")));
160 Add(new cMenuEditBoolItem(tr(" Sound debug logs"), &m_cLogSound, trVDR("no"), trVDR("yes")));
161 Add(new cMenuEditBoolItem(tr(" FFmpeg debug logs"), &m_cLogFFmpeg, trVDR("no"), trVDR("yes")));
162 Add(new cMenuEditBoolItem(tr(" Packet tracking logs"), &m_cLogPacket, trVDR("no"), trVDR("yes")));
163 Add(new cMenuEditBoolItem(tr(" OSD debug logs"), &m_cLogOSD, trVDR("no"), trVDR("yes")));
164 Add(new cMenuEditBoolItem(tr(" Grabbing debug logs"), &m_cLogGrab, trVDR("no"), trVDR("yes")));
165 Add(new cMenuEditBoolItem(tr(" Stillpicture debug logs"), &m_cLogStill, trVDR("no"), trVDR("yes")));
166 Add(new cMenuEditBoolItem(tr(" Trickspeed debug logs"), &m_cLogTrick, trVDR("no"), trVDR("yes")));
167 Add(new cMenuEditBoolItem(tr(" Mediaplayer debug logs"), &m_cLogMedia, trVDR("no"), trVDR("yes")));
168 Add(new cMenuEditBoolItem(tr(" OpenGL OSD debug logs"), &m_cLogGL, trVDR("no"), trVDR("yes")));
169 Add(new cMenuEditBoolItem(tr(" OpenGL OSD time measurement"), &m_cLogGLTime, trVDR("no"), trVDR("yes")));
170 Add(new cMenuEditBoolItem(tr(" OpenGL OSD time measurement (extensive)"), &m_cLogGLTimeAll, trVDR("no"), trVDR("yes")));
171 }
172 }
173
174 //
175 // Statistics
176 //
177 Add(CollapsedItem(tr("Statistics"), m_cStatisticsMenu));
178 if (m_cStatisticsMenu) {
179 int duped;
180 int dropped;
181 int counter;
183 Add(new cOsdItem(cString::sprintf(tr(" Frames duped(%d) dropped(%d) total(%d)"), duped, dropped, counter), osUnknown, false));
184#ifdef USE_GLES
185 Add(new cOsdItem(cString::sprintf(tr(" OSD: Using %s rendering"), m_pConfig->ConfigDisableOglOsd ? "software" : "hardware"), osUnknown, false));
186#else
187 Add(new cOsdItem(cString::sprintf(tr(" OSD: Using software rendering")), osUnknown, false));
188#endif
189 Add(new cOsdItem(cString::sprintf(tr(" Video decoder: %s (%s)"), m_pConfig->CurrentDecoderName, m_pConfig->CurrentDecoderType), osUnknown, false));
190 }
191
192 //
193 // Expert settings
194 //
195 Add(CollapsedItem(tr("Expert settings"), m_cExpertMenu));
196 if (m_cExpertMenu) {
197 Add(SeparatorName(tr(" Audio settings")));
198 Add(new cMenuEditIntItem(tr(" Adjust a/v buffer size (ms)"), &m_cAdditionalBufferLengthMs, - (m_pDevice->GetMinBufferFillLevelThresholdMs() - 100), 1000));
199
204 Add(new cOsdItem(cString::sprintf(tr(" Current a/v buffer size: %dms"), m_pDevice->GetMinBufferFillLevelThresholdMs() + m_cAdditionalBufferLengthMs), osUnknown, false));
205 Add(new cOsdItem(cString::sprintf(tr(" Audio jitter: %dms, max: %dms"), shortTermAudioJitter, longTermAudioJitter), osUnknown, false));
206 Add(new cOsdItem(cString::sprintf(tr(" Video jitter: %dms, max: %dms"), shortTermVideoJitter, longTermVideoJitter), osUnknown, false));
207
208 Add(SeparatorName(tr(" Video settings")));
209 Add(new cMenuEditBoolItem(tr(" Disable deinterlacer"), &m_cDisableDeint, trVDR("no"), trVDR("yes")));
210 Add(new cMenuEditBoolItem(tr(" Enable SW decoder fallback"), &m_cDecoderFallbackToSw, trVDR("no"), trVDR("yes")));
212 Add(new cOsdItem(cString::sprintf(tr(" (minimum: %d)"), m_pConfig->GetDecoderNeedsMaxPackets() + 1), osUnknown, false));
213 Add(new cMenuEditIntItem(tr(" fallback after num packets"), &m_cDecoderFallbackToSwNumPkts, 22));
214 }
215 Add(new cMenuEditBoolItem(tr(" H.264: Wait for I-Frames"), &m_cDecoderNeedsIFrame, trVDR("no"), trVDR("yes")));
216 Add(new cMenuEditBoolItem(tr(" H.264: Decoder needs video size for init"), &m_cParseH264Dimensions, trVDR("no"), trVDR("yes")));
217 Add(new cMenuEditIntItem(tr(" H.264: Parse stream until num I-Frames"), &m_cParseH264StreamStart, 0, 20));
218 Add(new cMenuEditIntItem(tr(" H.264: Drop invalid P-Frames until num I-Frames"), &m_cDropInvalidH264PFrames, 0, 20));
219#ifdef USE_GLES
220 Add(SeparatorName(tr(" OSD settings")));
222 Add(new cMenuEditIntItem(tr(" GPU mem used for image caching (MB)"), &m_cMaxSizeGPUImageCache, 0, 4000));
223 }
224#endif
225 }
226
227 SetCurrent(Get(current)); // restore selected menu entry
228 Display(); // display build menu
229}
230
237{
252
253 eOSState state = cMenuSetupPage::ProcessKey(key);
254
255 if (key != kNone) {
256 // update menu only, if something on the structure has changed
257 // this is needed because VDR menus are evil slow
272
273 Create(); // update menu
274 }
275 }
276
277 return state;
278}
279
286 : m_pDevice(device),
287 m_pConfig(m_pDevice->Config()),
288 m_pAudioDevice(m_pDevice->Audio())
289{
290 //
291 // General
292 //
293 m_cGeneralMenu = 0;
295
296 //
297 // Video
298 //
299 m_cVideoMenu = 0;
301
302 //
303 // Audio
304 //
305 m_cAudioMenu = 0;
319
320 //
321 // Audio equalizer
322 //
325 for (int i = 0; i < 18; i++) {
327 }
328
329 //
330 // Picture-in-picture
331 //
332 m_cPipMenu = 0;
340
341 //
342 // Logging
343 //
344 m_cLoggingMenu = 0;
361
362 //
363 // Statistics
364 //
366
367 //
368 // Expert settings
369 //
370 m_cExpertMenu = 0;
379#ifdef USE_GLES
381#endif
382
383 Create();
384}
385
390{
391 //
392 // General
393 //
395
396 //
397 // Video
398 //
401
402 //
403 // Audio
404 //
409 // FIXME: can handle more audio state changes here
410 // downmix changed reset audio, to get change direct
413 }
419 SetupStore("AudioPassthrough", m_pConfig->ConfigAudioPassthroughMask);
421 } else {
422 SetupStore("AudioPassthrough", -m_pConfig->ConfigAudioPassthroughMask);
424 }
436
437 //
438 // Audio equalizer
439 //
441 SetupStore("AudioEqBand01b", m_pConfig->ConfigAudioEqBand[0] = m_cAudioEqBand[0]);
442 SetupStore("AudioEqBand02b", m_pConfig->ConfigAudioEqBand[1] = m_cAudioEqBand[1]);
443 SetupStore("AudioEqBand03b", m_pConfig->ConfigAudioEqBand[2] = m_cAudioEqBand[2]);
444 SetupStore("AudioEqBand04b", m_pConfig->ConfigAudioEqBand[3] = m_cAudioEqBand[3]);
445 SetupStore("AudioEqBand05b", m_pConfig->ConfigAudioEqBand[4] = m_cAudioEqBand[4]);
446 SetupStore("AudioEqBand06b", m_pConfig->ConfigAudioEqBand[5] = m_cAudioEqBand[5]);
447 SetupStore("AudioEqBand07b", m_pConfig->ConfigAudioEqBand[6] = m_cAudioEqBand[6]);
448 SetupStore("AudioEqBand08b", m_pConfig->ConfigAudioEqBand[7] = m_cAudioEqBand[7]);
449 SetupStore("AudioEqBand09b", m_pConfig->ConfigAudioEqBand[8] = m_cAudioEqBand[8]);
450 SetupStore("AudioEqBand10b", m_pConfig->ConfigAudioEqBand[9] = m_cAudioEqBand[9]);
451 SetupStore("AudioEqBand11b", m_pConfig->ConfigAudioEqBand[10] = m_cAudioEqBand[10]);
452 SetupStore("AudioEqBand12b", m_pConfig->ConfigAudioEqBand[11] = m_cAudioEqBand[11]);
453 SetupStore("AudioEqBand13b", m_pConfig->ConfigAudioEqBand[12] = m_cAudioEqBand[12]);
454 SetupStore("AudioEqBand14b", m_pConfig->ConfigAudioEqBand[13] = m_cAudioEqBand[13]);
455 SetupStore("AudioEqBand15b", m_pConfig->ConfigAudioEqBand[14] = m_cAudioEqBand[14]);
456 SetupStore("AudioEqBand16b", m_pConfig->ConfigAudioEqBand[15] = m_cAudioEqBand[15]);
457 SetupStore("AudioEqBand17b", m_pConfig->ConfigAudioEqBand[16] = m_cAudioEqBand[16]);
458 SetupStore("AudioEqBand18b", m_pConfig->ConfigAudioEqBand[17] = m_cAudioEqBand[17]);
460
461 //
462 // Picture-in-picture
463 //
471 if (m_pDevice->UsePip())
473
474 //
475 // Logging
476 //
478 (m_cLogDebug_ ? L_DEBUG : 0) |
479 (m_cLogDRM ? L_DRM : 0) |
480 (m_cLogCodec ? L_CODEC : 0) |
481 (m_cLogAVSync ? L_AV_SYNC : 0) |
482 (m_cLogSound ? L_SOUND : 0) |
483 (m_cLogFFmpeg ? L_FFMPEG : 0) |
484 (m_cLogPacket ? L_PACKET : 0) |
485 (m_cLogOSD ? L_OSD : 0) |
486 (m_cLogGrab ? L_GRAB : 0) |
487 (m_cLogStill ? L_STILL : 0) |
488 (m_cLogTrick ? L_TRICK : 0) |
489 (m_cLogMedia ? L_MEDIA : 0) |
490 (m_cLogGL ? L_OPENGL : 0) |
498 } else {
499 SetupStore("LogLevel", -m_pConfig->ConfigLogLevels);
500 cSoftHdLogger::GetLogger()->SetLogLevel(0);
501 }
502
503 //
504 // Expert settings
505 //
509 LOGDEBUG("Disable deinterlacer!");
510 }
521#ifdef USE_GLES
523#endif
524}
Audio and Alsa Interface Header File.
void Create(void)
Build setup menu.
cSoftHdDevice * m_pDevice
virtual eOSState ProcessKey(eKeys)
Process key for setup menu.
cSoftHdAudio * m_pAudioDevice
cMenuSetupSoft(cSoftHdDevice *)
Init the setup menu parameters and build the menu.
virtual void Store(void)
Store settings.
int m_cDecoderFallbackToSwNumPkts
cSoftHdConfig * m_pConfig
cOsdItem * CollapsedItem(const char *, int &, const char *=NULL)
Create a collapsed item.
int m_cAdditionalBufferLengthMs
void SetStereoDescent(int)
Set stereo loudness descent.
Definition audio.cpp:1165
void SetAutoAES(bool appendAes)
Definition audio.h:82
void SetCompression(bool, int)
Set volume compression parameters.
Definition audio.cpp:1147
void SetSoftvol(bool softVolume)
Definition audio.h:77
void SetEq(int[18], int)
Set equalizer bands.
Definition audio.cpp:248
void SetDownmix(int downMix)
Definition audio.h:76
void SetNormalize(bool, int)
Set normalize volume parameters.
Definition audio.cpp:1135
bool ConfigParseH264Dimensions
parse h264 stream for width and height for decoder init
Definition config.h:81
int ConfigVideoAudioDelayMs
config audio delay
Definition config.h:47
std::atomic< int > StatMaxLongTermAudioJitterMs
logged max overall audio jitter since stream start
Definition config.h:106
void PrintLogLevel(int)
Definition config.cpp:110
bool ConfigLogState
flag logging on/off
Definition config.h:72
bool ConfigAudioNormalize
config use normalize volume
Definition config.h:48
int ConfigAudioAutoAES
config automatic AES handling
Definition config.h:46
int ConfigAudioStereoDescent
config reduce stereo loudness
Definition config.h:52
int ConfigMaxSizeGPUImageCache
config max gpu image cache size
Definition config.h:85
std::atomic< int > StatMaxShortTermAudioJitterMs
logged max audio jitter of the last 1000 packets
Definition config.h:105
int ConfigParseH264StreamStart
log frames at stream start up to the given number of I-Frames
Definition config.h:82
int ConfigDecoderFallbackToSwNumPkts
maximum number of packets sent before fallback to sw decoder
Definition config.h:79
bool ConfigAudioCompression
config use volume compression
Definition config.h:50
bool ConfigAudioPassthroughState
flag audio-passthrough on/off
Definition config.h:45
bool ConfigAudioSoftvol
config use software volume
Definition config.h:42
bool ConfigDisableDeint
disable deinterlacer
Definition config.h:77
int ConfigVideoEnableHDR
enable HDR
Definition config.h:39
int ConfigDisableOglOsd
config disable ogl osd
Definition config.h:97
int ConfigPipAltTopPercent
0 = aligned to top, 100 = aligned to bottom
Definition config.h:69
const char * CurrentDecoderType
current decoder type: "hardware" or "software"
Definition config.h:104
int ConfigAudioEqBand[18]
config equalizer filter bands
Definition config.h:56
int ConfigPipLeftPercent
0 = aligned to left, 100 = aligned to right
Definition config.h:63
int ConfigAdditionalBufferLengthMs
config size ms of a/v buffer
Definition config.h:76
int ConfigAudioMaxCompression
config max volume compression
Definition config.h:51
int ConfigPipAltLeftPercent
0 = aligned to left, 100 = aligned to right
Definition config.h:68
int ConfigLogLevels
loglevel config
Definition config.h:73
int ConfigPipAltScalePercent
alternative scale factor of pip video
Definition config.h:67
std::atomic< int > StatMaxShortTermVideoJitterMs
logged max video jitter of the last 1000 packets
Definition config.h:107
int ConfigPipTopPercent
0 = aligned to top, 100 = aligned to bottom
Definition config.h:64
bool ConfigDecoderNeedsIFrame
start h264 decoder only when an I-Frame arrives
Definition config.h:80
const char * CurrentDecoderName
current decoder name
Definition config.h:103
bool ConfigDecoderFallbackToSw
fallback to software decoder if the hardware decoder fails
Definition config.h:78
int GetDecoderNeedsMaxPackets(void)
Definition config.cpp:154
int ConfigAudioEq
config equalizer filter
Definition config.h:55
int ConfigPipScalePercent
scale factor of pip video
Definition config.h:62
int ConfigPipUseAlt
Definition config.h:65
int ConfigAudioPassthroughMask
config audio pass-through mask
Definition config.h:44
std::atomic< int > StatMaxLongTermVideoJitterMs
logged max overall video jitter since stream start
Definition config.h:108
bool ConfigHideMainMenuEntry
config hide main menu entry
Definition config.h:36
bool ConfigAudioDownmix
config ffmpeg audio downmix
Definition config.h:43
int ConfigAudioMaxNormalize
config max normalize factor
Definition config.h:49
int ConfigDropInvalidH264PFrames
drop P-Frames with invalid references on stream start up to the given number of I-Frames
Definition config.h:83
Output Device Implementation.
void PipSetSize(void)
void SetEnableHdr(bool)
Enable HDR display mode.
void GetStats(int *, int *, int *)
Get statistics from the renderer.
void ResetChannelId(void)
Reset the channel ID (restarts audio)
bool UsePip(void)
void SetDecoderFallbackToSw(bool)
Force the decoder to fallback to software if the hardware decoder fails after the configured amount o...
void SetDecoderNeedsIFrame(void)
Forces the h264 decoder to wait for an I-Frame to start.
void SetParseH264Dimensions(void)
Parse the h264 stream width and height before starting the decoder.
int GetMinBufferFillLevelThresholdMs(void)
void SetPassthroughMask(int)
Set the passthrough mask (called from setup menu or conf)
void SetDisableDeint(void)
Disables deinterlacer (called from setup menu or conf)
static std::shared_ptr< cSoftHdLogger > GetLogger()
Get an instance to the global logger.
Definition logger.cpp:43
Audio Decoder Header File.
Plugin Configuration Header File.
@ CODEC_EAC3
E-AC-3 bit mask.
Definition codec_audio.h:39
@ CODEC_AC3
AC-3 bit mask.
Definition codec_audio.h:38
@ CODEC_DTS
DTS bit mask.
Definition codec_audio.h:40
static cOsdItem * SeparatorName(const char *label)
Create a seperator item.
#define LOGDEBUG
log to LOG_DEBUG
Definition logger.h:45
@ L_PACKET
decoder packet/frame tracking logs
Definition logger.h:68
@ L_DRM
drm logs
Definition logger.h:60
@ L_OPENGL_TIME
opengl osd flush time measurement
Definition logger.h:66
@ L_STILL
stillpicture logs
Definition logger.h:62
@ L_FFMPEG
ffmpeg logs
Definition logger.h:70
@ L_AV_SYNC
audio/video sync logs
Definition logger.h:57
@ L_MEDIA
mediaplayer logs
Definition logger.h:64
@ L_OSD
osd logs
Definition logger.h:59
@ L_TRICK
trickspeed logs
Definition logger.h:63
@ L_OPENGL
opengl osd logs
Definition logger.h:65
@ L_DEBUG
common debug logs
Definition logger.h:56
@ L_OPENGL_TIME_ALL
opengl osd all commands time measurement
Definition logger.h:67
@ L_CODEC
codec logs
Definition logger.h:61
@ L_SOUND
sound logs
Definition logger.h:58
@ L_GRAB
grabbing logs
Definition logger.h:69
Logger Header File.
Output Device Header File.
static cOsdItem * SeparatorName(const char *label)
Create a seperator named item.
Plugin Setup Menu Header File.