vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
softhdsetupmenu.cpp
Go to the documentation of this file.
1
25#include <vdr/menuitems.h>
26
27#include "audio.h"
28#include "codec_audio.h"
29#include "config.h"
30#include "logger.h"
31#include "softhddevice.h"
32#include "softhdsetupmenu.h"
33
34/*****************************************************************************
35 * cMenuSetupSoft - Setup menu
36 ****************************************************************************/
37
43static inline cOsdItem *SeparatorName(const char *label)
44{
45 return new cOsdItem(cString::sprintf("%s:", label), osUnknown, false);
46}
47
55inline cOsdItem *cMenuSetupSoft::CollapsedItem(const char *label, int &flag, const char *msg)
56{
57 cOsdItem *item;
58
59 item = new cMenuEditBoolItem(cString::sprintf("* %s", label), &flag,
60 msg ? msg : tr("show"), tr("hide"));
61
62 return item;
63}
64
69{
70 int current;
71
72 current = Current(); // get current menu item index
73 Clear(); // clear the menu
74
75 //
76 // General
77 //
78 Add(CollapsedItem(tr("General"), m_cGeneralMenu));
79 if (m_cGeneralMenu) {
80 Add(new cMenuEditBoolItem(tr(" Hide main menu entry"), &m_cHideMainMenuEntry, trVDR("no"), trVDR("yes")));
81 }
82
83 //
84 // Audio
85 //
86 Add(CollapsedItem(tr("Audio"), m_cAudioMenu));
87 if (m_cAudioMenu) {
88 Add(new cMenuEditBoolItem(tr(" Volume control"), &m_cAudioSoftvol, tr("hardware"), tr("software")));
89 Add(new cMenuEditBoolItem(tr(" Enable stereo downmix"), &m_cAudioDownmix, trVDR("no"), trVDR("yes")));
90 Add(new cMenuEditBoolItem(tr(" Enable passthrough"), &m_cAudioPassthroughDefault, trVDR("off"), trVDR("on")));
92 Add(new cMenuEditBoolItem(tr(" AC-3 passthrough"), &m_cAudioPassthroughAC3, trVDR("no"), trVDR("yes")));
93 Add(new cMenuEditBoolItem(tr(" E-AC-3 passthrough"), &m_cAudioPassthroughEAC3, trVDR("no"), trVDR("yes")));
94 Add(new cMenuEditBoolItem(tr(" DTS passthrough"), &m_cAudioPassthroughDTS, trVDR("no"), trVDR("yes")));
95 Add(new cMenuEditBoolItem(tr(" Enable automatic AES"), &m_cAudioAutoAES, trVDR("no"), trVDR("yes")));
96 }
97 Add(new cMenuEditIntItem(tr(" Audio/Video delay (ms)"), &m_cAudioDelay, -1000, 1000));
98 Add(new cMenuEditBoolItem(tr(" Enable normalize volume"), &m_cAudioNormalize, trVDR("no"), trVDR("yes")));
100 Add(new cMenuEditIntItem(tr(" Max normalize factor (/1000)"), &m_cAudioMaxNormalize, 0, 10000));
101 Add(new cMenuEditBoolItem(tr(" Enable volume compression"), &m_cAudioCompression, trVDR("no"), trVDR("yes")));
103 Add(new cMenuEditIntItem(tr(" Max compression factor (/1000)"), &m_cAudioMaxCompression, 0, 10000));
104 Add(new cMenuEditIntItem(tr(" Reduce stereo volume (/1000)"), &m_cAudioStereoDescent, 0, 1000));
105 }
106
107 //
108 // Audio filter
109 //
110 Add(CollapsedItem(tr("Audio equalizer"), m_cAudioFilterMenu));
111 if (m_cAudioFilterMenu) {
112 Add(new cMenuEditBoolItem(tr(" Enable audio equalizer"), &m_cAudioEq, trVDR("no"), trVDR("yes")));
113 if (m_cAudioEq) {
114 Add(new cMenuEditIntItem(tr(" 60 Hz band gain"), &m_cAudioEqBand[0], -15, 1));
115 Add(new cMenuEditIntItem(tr(" 72 Hz band gain"), &m_cAudioEqBand[1], -15, 1));
116 Add(new cMenuEditIntItem(tr(" 107 Hz band gain"), &m_cAudioEqBand[2], -15, 1));
117 Add(new cMenuEditIntItem(tr(" 150 Hz band gain"), &m_cAudioEqBand[3], -15, 1));
118 Add(new cMenuEditIntItem(tr(" 220 Hz band gain"), &m_cAudioEqBand[4], -15, 1));
119 Add(new cMenuEditIntItem(tr(" 310 Hz band gain"), &m_cAudioEqBand[5], -15, 1));
120 Add(new cMenuEditIntItem(tr(" 430 Hz band gain"), &m_cAudioEqBand[6], -15, 1));
121 Add(new cMenuEditIntItem(tr(" 620 Hz band gain"), &m_cAudioEqBand[7], -15, 1));
122 Add(new cMenuEditIntItem(tr(" 860 Hz band gain"), &m_cAudioEqBand[8], -15, 1));
123 Add(new cMenuEditIntItem(tr(" 1200 Hz band gain"), &m_cAudioEqBand[9], -15, 1));
124 Add(new cMenuEditIntItem(tr(" 1700 Hz band gain"), &m_cAudioEqBand[10], -15, 1));
125 Add(new cMenuEditIntItem(tr(" 2500 Hz band gain"), &m_cAudioEqBand[11], -15, 1));
126 Add(new cMenuEditIntItem(tr(" 3500 Hz band gain"), &m_cAudioEqBand[12], -15, 1));
127 Add(new cMenuEditIntItem(tr(" 4800 Hz band gain"), &m_cAudioEqBand[13], -15, 1));
128 Add(new cMenuEditIntItem(tr(" 7000 Hz band gain"), &m_cAudioEqBand[14], -15, 1));
129 Add(new cMenuEditIntItem(tr(" 9500 Hz band gain"), &m_cAudioEqBand[15], -15, 1));
130 Add(new cMenuEditIntItem(tr(" 13500 Hz band gain"), &m_cAudioEqBand[16], -15, 1));
131 Add(new cMenuEditIntItem(tr(" 17200 Hz band gain"), &m_cAudioEqBand[17], -15, 1));
132 }
133 }
134
135 //
136 // PiP
137 //
138 if (m_pDevice->UsePip()) {
139 Add(CollapsedItem(tr("Picture-in-picture"), m_cPipMenu));
140 if (m_cPipMenu) {
141 Add(new cMenuEditIntItem(tr(" video scaling factor (%)"), &m_cPipScalePercent, 10, 100));
142 Add(new cMenuEditIntItem(tr(" video left (%)"), &m_cPipLeftPercent, 0, 100));
143 Add(new cMenuEditIntItem(tr(" video top (%)"), &m_cPipTopPercent, 0, 100));
144 Add(new cMenuEditBoolItem(tr(" use alternative position as default"), &m_cPipUseAlt, trVDR("no"), trVDR("yes")));
145 Add(new cMenuEditIntItem(tr(" alternative video scaling factor (%)"), &m_cPipAltScalePercent, 10, 100));
146 Add(new cMenuEditIntItem(tr(" alternative video left (%)"), &m_cPipAltLeftPercent, 0, 100));
147 Add(new cMenuEditIntItem(tr(" alternative video top (%)"), &m_cPipAltTopPercent, 0, 100));
148 }
149 }
150
151 //
152 // Logging
153 //
154 Add(CollapsedItem(tr("Logging"), m_cLoggingMenu));
155 if (m_cLoggingMenu) {
156 Add(new cMenuEditBoolItem(tr(" Enable logging"), &m_cLogDefault, trVDR("off"), trVDR("on")));
157 if (m_cLogDefault) {
158 Add(new cMenuEditBoolItem(tr(" Standard debug logs"), &m_cLogDebug_, trVDR("no"), trVDR("yes")));
159 Add(new cMenuEditBoolItem(tr(" DRM debug logs"), &m_cLogDRM, trVDR("no"), trVDR("yes")));
160 Add(new cMenuEditBoolItem(tr(" Codec debug logs"), &m_cLogCodec, trVDR("no"), trVDR("yes")));
161 Add(new cMenuEditBoolItem(tr(" AV Sync debug logs"), &m_cLogAVSync, trVDR("no"), trVDR("yes")));
162 Add(new cMenuEditBoolItem(tr(" Sound debug logs"), &m_cLogSound, trVDR("no"), trVDR("yes")));
163 Add(new cMenuEditBoolItem(tr(" FFmpeg debug logs"), &m_cLogFFmpeg, trVDR("no"), trVDR("yes")));
164 Add(new cMenuEditBoolItem(tr(" Packet tracking logs"), &m_cLogPacket, trVDR("no"), trVDR("yes")));
165 Add(new cMenuEditBoolItem(tr(" OSD debug logs"), &m_cLogOSD, trVDR("no"), trVDR("yes")));
166 Add(new cMenuEditBoolItem(tr(" Grabbing debug logs"), &m_cLogGrab, trVDR("no"), trVDR("yes")));
167 Add(new cMenuEditBoolItem(tr(" Stillpicture debug logs"), &m_cLogStill, trVDR("no"), trVDR("yes")));
168 Add(new cMenuEditBoolItem(tr(" Trickspeed debug logs"), &m_cLogTrick, trVDR("no"), trVDR("yes")));
169 Add(new cMenuEditBoolItem(tr(" Mediaplayer debug logs"), &m_cLogMedia, trVDR("no"), trVDR("yes")));
170 Add(new cMenuEditBoolItem(tr(" OpenGL OSD debug logs"), &m_cLogGL, trVDR("no"), trVDR("yes")));
171 Add(new cMenuEditBoolItem(tr(" OpenGL OSD time measurement"), &m_cLogGLTime, trVDR("no"), trVDR("yes")));
172 Add(new cMenuEditBoolItem(tr(" OpenGL OSD time measurement (extensive)"), &m_cLogGLTimeAll, trVDR("no"), trVDR("yes")));
173 }
174 }
175
176 //
177 // Statistics
178 //
179 Add(CollapsedItem(tr("Statistics"), m_cStatisticsMenu));
180 if (m_cStatisticsMenu) {
181 int duped;
182 int dropped;
183 int counter;
184 m_pDevice->GetStats(&duped, &dropped, &counter);
185 Add(new cOsdItem(cString::sprintf(tr(" Frames duped(%d) dropped(%d) total(%d)"), duped, dropped, counter), osUnknown, false));
186#ifdef USE_GLES
187 Add(new cOsdItem(cString::sprintf(tr(" OSD: Using %s rendering"), m_pConfig->ConfigDisableOglOsd ? "software" : "hardware"), osUnknown, false));
188#else
189 Add(new cOsdItem(cString::sprintf(tr(" OSD: Using software rendering")), osUnknown, false));
190#endif
191 Add(new cOsdItem(cString::sprintf(tr(" Video decoder: %s (%s)"), m_pConfig->CurrentDecoderName, m_pConfig->CurrentDecoderType), osUnknown, false));
192 }
193
194 //
195 // Expert settings
196 //
197 Add(CollapsedItem(tr("Expert settings"), m_cExpertMenu));
198 if (m_cExpertMenu) {
199 Add(SeparatorName(tr(" Audio settings")));
200 Add(new cMenuEditIntItem(tr(" Additional buffer size (ms)"), &m_cAdditionalBufferLengthMs, 0, 1000));
201
202 Add(SeparatorName(tr(" Video settings")));
203 Add(new cMenuEditBoolItem(tr(" Disable deinterlacer"), &m_cDisableDeint, trVDR("no"), trVDR("yes")));
204 Add(new cMenuEditBoolItem(tr(" H.264 HW dec needs I-Frame"), &m_cDecoderNeedsIFrame, trVDR("no"), trVDR("yes")));
205 Add(new cMenuEditBoolItem(tr(" H.264 HW dec needs width and height"), &m_cParseH264Dimensions, trVDR("no"), trVDR("yes")));
206 Add(new cMenuEditBoolItem(tr(" Enable SW decoder fallback"), &m_cDecoderFallbackToSw, trVDR("no"), trVDR("yes")));
208 Add(new cOsdItem(cString::sprintf(tr(" (minimum: %d)"), m_pConfig->GetDecoderNeedsMaxPackets() + 1), osUnknown, false));
209 Add(new cMenuEditIntItem(tr(" fallback after num packets"), &m_cDecoderFallbackToSwNumPkts, 22));
210 }
211#ifdef USE_GLES
212 Add(SeparatorName(tr(" OSD settings")));
213 if (!m_pConfig->ConfigDisableOglOsd) {
214 Add(new cMenuEditIntItem(tr(" GPU mem used for image caching (MB)"), &m_cMaxSizeGPUImageCache, 0, 4000));
215 }
216#endif
217 }
218
219 SetCurrent(Get(current)); // restore selected menu entry
220 Display(); // display build menu
221}
222
228eOSState cMenuSetupSoft::ProcessKey(eKeys key)
229{
230 int old_cGeneralMenu = m_cGeneralMenu;
231 int old_cAudioMenu = m_cAudioMenu;
232 int old_cAudioPassthroughDefault = m_cAudioPassthroughDefault;
233 int old_cAudioNormalize = m_cAudioNormalize;
234 int old_cAudioCompression = m_cAudioCompression;
235 int old_cAudioFilterMenu = m_cAudioFilterMenu;
236 int old_cAudioEq = m_cAudioEq;
237 int old_cPipMenu = m_cPipMenu;
238 int old_cLoggingMenu = m_cLoggingMenu;
239 int old_cLogDefault = m_cLogDefault;
240 int old_cStatisticsMenu = m_cStatisticsMenu;
241 int old_cExpertMenu = m_cExpertMenu;
242 int old_cDecoderFallbackToSw = m_cDecoderFallbackToSw;
243
244 eOSState state = cMenuSetupPage::ProcessKey(key);
245
246 if (key != kNone) {
247 // update menu only, if something on the structure has changed
248 // this is needed because VDR menus are evil slow
249 if (old_cGeneralMenu != m_cGeneralMenu ||
250 old_cAudioMenu != m_cAudioMenu ||
251 old_cAudioPassthroughDefault != m_cAudioPassthroughDefault ||
252 old_cAudioNormalize != m_cAudioNormalize ||
253 old_cAudioCompression != m_cAudioCompression ||
254 old_cAudioFilterMenu != m_cAudioFilterMenu ||
255 old_cAudioEq != m_cAudioEq ||
256 old_cPipMenu != m_cPipMenu ||
257 old_cLoggingMenu != m_cLoggingMenu ||
258 old_cLogDefault != m_cLogDefault ||
259 old_cStatisticsMenu != m_cStatisticsMenu ||
260 old_cExpertMenu != m_cExpertMenu ||
261 old_cDecoderFallbackToSw != m_cDecoderFallbackToSw) {
262
263 Create(); // update menu
264 }
265 }
266
267 return state;
268}
269
276 : m_pDevice(device),
277 m_pConfig(m_pDevice->Config()),
278 m_pAudioDevice(m_pDevice->Audio())
279{
280 //
281 // General
282 //
283 m_cGeneralMenu = 0;
285
286 //
287 // Audio
288 //
289 m_cAudioMenu = 0;
303
304 //
305 // Audio equalizer
306 //
309 for (int i = 0; i < 18; i++) {
311 }
312
313 //
314 // Picture-in-picture
315 //
316 m_cPipMenu = 0;
324
325 //
326 // Logging
327 //
328 m_cLoggingMenu = 0;
345
346 //
347 // Statistics
348 //
350
351 //
352 // Expert settings
353 //
354 m_cExpertMenu = 0;
361#ifdef USE_GLES
362 m_cMaxSizeGPUImageCache = m_pConfig->ConfigMaxSizeGPUImageCache;
363#endif
364
365 Create();
366}
367
372{
373 //
374 // General
375 //
376 SetupStore("HideMainMenuEntry", m_pConfig->ConfigHideMainMenuEntry = m_cHideMainMenuEntry);
377
378 //
379 // Audio
380 //
381 SetupStore("AudioSoftvol", m_pConfig->ConfigAudioSoftvol = m_cAudioSoftvol);
383 SetupStore("AudioDownmix", m_pConfig->ConfigAudioDownmix = m_cAudioDownmix);
385 // FIXME: can handle more audio state changes here
386 // downmix changed reset audio, to get change direct
389 }
395 SetupStore("AudioPassthrough", m_pConfig->ConfigAudioPassthroughMask);
397 } else {
398 SetupStore("AudioPassthrough", -m_pConfig->ConfigAudioPassthroughMask);
400 }
401 SetupStore("AudioAutoAES", m_pConfig->ConfigAudioAutoAES = m_cAudioAutoAES);
403 SetupStore("AudioDelay", m_pConfig->ConfigVideoAudioDelayMs = m_cAudioDelay);
404 SetupStore("AudioNormalize", m_pConfig->ConfigAudioNormalize = m_cAudioNormalize);
405 SetupStore("AudioMaxNormalize", m_pConfig->ConfigAudioMaxNormalize = m_cAudioMaxNormalize);
407 SetupStore("AudioCompression", m_pConfig->ConfigAudioCompression = m_cAudioCompression);
408 SetupStore("AudioMaxCompression", m_pConfig->ConfigAudioMaxCompression = m_cAudioMaxCompression);
410 SetupStore("AudioStereoDescent", m_pConfig->ConfigAudioStereoDescent = m_cAudioStereoDescent);
412
413 //
414 // Audio equalizer
415 //
416 SetupStore("AudioEq", m_pConfig->ConfigAudioEq = m_cAudioEq);
417 SetupStore("AudioEqBand01b", m_pConfig->ConfigAudioEqBand[0] = m_cAudioEqBand[0]);
418 SetupStore("AudioEqBand02b", m_pConfig->ConfigAudioEqBand[1] = m_cAudioEqBand[1]);
419 SetupStore("AudioEqBand03b", m_pConfig->ConfigAudioEqBand[2] = m_cAudioEqBand[2]);
420 SetupStore("AudioEqBand04b", m_pConfig->ConfigAudioEqBand[3] = m_cAudioEqBand[3]);
421 SetupStore("AudioEqBand05b", m_pConfig->ConfigAudioEqBand[4] = m_cAudioEqBand[4]);
422 SetupStore("AudioEqBand06b", m_pConfig->ConfigAudioEqBand[5] = m_cAudioEqBand[5]);
423 SetupStore("AudioEqBand07b", m_pConfig->ConfigAudioEqBand[6] = m_cAudioEqBand[6]);
424 SetupStore("AudioEqBand08b", m_pConfig->ConfigAudioEqBand[7] = m_cAudioEqBand[7]);
425 SetupStore("AudioEqBand09b", m_pConfig->ConfigAudioEqBand[8] = m_cAudioEqBand[8]);
426 SetupStore("AudioEqBand10b", m_pConfig->ConfigAudioEqBand[9] = m_cAudioEqBand[9]);
427 SetupStore("AudioEqBand11b", m_pConfig->ConfigAudioEqBand[10] = m_cAudioEqBand[10]);
428 SetupStore("AudioEqBand12b", m_pConfig->ConfigAudioEqBand[11] = m_cAudioEqBand[11]);
429 SetupStore("AudioEqBand13b", m_pConfig->ConfigAudioEqBand[12] = m_cAudioEqBand[12]);
430 SetupStore("AudioEqBand14b", m_pConfig->ConfigAudioEqBand[13] = m_cAudioEqBand[13]);
431 SetupStore("AudioEqBand15b", m_pConfig->ConfigAudioEqBand[14] = m_cAudioEqBand[14]);
432 SetupStore("AudioEqBand16b", m_pConfig->ConfigAudioEqBand[15] = m_cAudioEqBand[15]);
433 SetupStore("AudioEqBand17b", m_pConfig->ConfigAudioEqBand[16] = m_cAudioEqBand[16]);
434 SetupStore("AudioEqBand18b", m_pConfig->ConfigAudioEqBand[17] = m_cAudioEqBand[17]);
436
437 //
438 // Picture-in-picture
439 //
440 SetupStore("PipScalePercent", m_pConfig->ConfigPipScalePercent = m_cPipScalePercent);
441 SetupStore("PipLeftPercent", m_pConfig->ConfigPipLeftPercent = m_cPipLeftPercent);
442 SetupStore("PipTopPercent", m_pConfig->ConfigPipTopPercent = m_cPipTopPercent);
443 SetupStore("PipUseAlt", m_pConfig->ConfigPipUseAlt = m_cPipUseAlt);
444 SetupStore("PipAltScalePercent", m_pConfig->ConfigPipAltScalePercent = m_cPipAltScalePercent);
445 SetupStore("PipAltLeftPercent", m_pConfig->ConfigPipAltLeftPercent = m_cPipAltLeftPercent);
446 SetupStore("PipAltTopPercent", m_pConfig->ConfigPipAltTopPercent = m_cPipAltTopPercent);
447 if (m_pDevice->UsePip())
449
450 //
451 // Logging
452 //
454 (m_cLogDebug_ ? L_DEBUG : 0) |
455 (m_cLogDRM ? L_DRM : 0) |
456 (m_cLogCodec ? L_CODEC : 0) |
457 (m_cLogAVSync ? L_AV_SYNC : 0) |
458 (m_cLogSound ? L_SOUND : 0) |
459 (m_cLogFFmpeg ? L_FFMPEG : 0) |
460 (m_cLogPacket ? L_PACKET : 0) |
461 (m_cLogOSD ? L_OSD : 0) |
462 (m_cLogGrab ? L_GRAB : 0) |
463 (m_cLogStill ? L_STILL : 0) |
464 (m_cLogTrick ? L_TRICK : 0) |
465 (m_cLogMedia ? L_MEDIA : 0) |
466 (m_cLogGL ? L_OPENGL : 0) |
471 SetupStore("LogLevel", m_pConfig->ConfigLogLevels);
474 } else {
475 SetupStore("LogLevel", -m_pConfig->ConfigLogLevels);
476 cSoftHdLogger::GetLogger()->SetLogLevel(0);
477 }
478
479 //
480 // Expert settings
481 //
482 SetupStore("AdditionalBufferLengthMs", m_pConfig->ConfigAdditionalBufferLengthMs = m_cAdditionalBufferLengthMs);
483 SetupStore("DisableDeint", m_pConfig->ConfigDisableDeint = m_cDisableDeint);
485 LOGDEBUG("Disable deinterlacer!");
486 }
488 SetupStore("DecoderNeedsIFrame", m_pConfig->ConfigDecoderNeedsIFrame = m_cDecoderNeedsIFrame);
490 SetupStore("ParseH264Dimensions", m_pConfig->ConfigParseH264Dimensions = m_cParseH264Dimensions);
492 SetupStore("DecoderFallbackToSw", m_pConfig->ConfigDecoderFallbackToSw = m_cDecoderFallbackToSw);
493 SetupStore("DecoderFallbackToSwNumPkts", m_pConfig->ConfigDecoderFallbackToSwNumPkts = m_cDecoderFallbackToSwNumPkts);
495#ifdef USE_GLES
496 SetupStore("MaxSizeGPUImageCache", m_pConfig->ConfigMaxSizeGPUImageCache = m_cMaxSizeGPUImageCache);
497#endif
498}
Audio and alsa module header file.
void Create(void)
Create setup menu.
cSoftHdDevice * m_pDevice
virtual eOSState ProcessKey(eKeys)
Process key for setup menu.
cSoftHdAudio * m_pAudioDevice
cMenuSetupSoft(cSoftHdDevice *)
cMenuSetupSoft constructor
virtual void Store(void)
Store setup.
int m_cDecoderFallbackToSwNumPkts
cSoftHdConfig * m_pConfig
cOsdItem * CollapsedItem(const char *, int &, const char *=NULL)
Create a collapsed item.
void SetStereoDescent(int)
Set stereo loudness descent.
Definition audio.cpp:993
void SetAutoAES(bool appendAes)
Definition audio.h:82
void SetCompression(bool, int)
Set volume compression parameters.
Definition audio.cpp:975
void SetSoftvol(bool softVolume)
Definition audio.h:77
void SetEq(int[18], int)
Set equalizer bands.
Definition audio.cpp:319
void SetDownmix(int downMix)
Definition audio.h:76
void SetNormalize(bool, int)
Set normalize volume parameters.
Definition audio.cpp:963
bool ConfigParseH264Dimensions
parse h264 stream for width and height for decoder init
Definition config.h:62
int ConfigVideoAudioDelayMs
config audio delay
Definition config.h:42
void PrintLogLevel(int)
Definition config.cpp:105
bool ConfigLogState
flag logging on/off
Definition config.h:58
bool ConfigAudioNormalize
config use normalize volume
Definition config.h:47
int ConfigAudioAutoAES
config automatic AES handling
Definition config.h:52
int ConfigAudioStereoDescent
config reduce stereo loudness
Definition config.h:51
int ConfigDecoderFallbackToSwNumPkts
maximum number of packets sent before fallback to sw decoder
Definition config.h:64
bool ConfigAudioCompression
config use volume compression
Definition config.h:49
bool ConfigAudioPassthroughState
flag audio-passthrough on/off
Definition config.h:44
bool ConfigAudioSoftvol
config use software volume
Definition config.h:46
bool ConfigDisableDeint
disable deinterlacer
Definition config.h:60
int ConfigPipAltTopPercent
0 = aligned to top, 100 = aligned to bottom
Definition config.h:75
const char * CurrentDecoderType
Definition config.h:85
int ConfigAudioEqBand[18]
config equalizer filter bands
Definition config.h:54
int ConfigPipLeftPercent
0 = aligned to left, 100 = aligned to right
Definition config.h:68
int ConfigAdditionalBufferLengthMs
config size ms of a/v buffer
Definition config.h:41
int ConfigAudioMaxCompression
config max volume compression
Definition config.h:50
int ConfigPipAltLeftPercent
0 = aligned to left, 100 = aligned to right
Definition config.h:74
int ConfigLogLevels
loglevel config
Definition config.h:59
int ConfigPipAltScalePercent
alternative scale factor of pip video
Definition config.h:73
int ConfigPipTopPercent
0 = aligned to top, 100 = aligned to bottom
Definition config.h:69
bool ConfigDecoderNeedsIFrame
start h264 decoder only when an I-Frame arrives
Definition config.h:61
const char * CurrentDecoderName
Definition config.h:84
bool ConfigDecoderFallbackToSw
fallback to software decoder if the hardware decoder fails
Definition config.h:63
int GetDecoderNeedsMaxPackets(void)
Definition config.cpp:149
int ConfigAudioEq
config equalizer filter
Definition config.h:53
int ConfigPipScalePercent
scale factor of pip video
Definition config.h:67
int ConfigPipUseAlt
Definition config.h:71
int ConfigAudioPassthroughMask
config audio pass-through mask
Definition config.h:43
bool ConfigHideMainMenuEntry
config hide main menu entry
Definition config.h:57
bool ConfigAudioDownmix
config ffmpeg audio downmix
Definition config.h:45
int ConfigAudioMaxNormalize
config max normalize factor
Definition config.h:48
void SetDecoderFallbackToSw(bool enable)
Force the decoder to fallback to software if the hardware decoder fails after the configured amount o...
void PipSetSize(void)
void GetStats(int *, int *, int *)
Get statistics from the renderer.
void ResetChannelId(void)
Reset the channel ID (restarts audio)
bool UsePip(void)
void SetDecoderNeedsIFrame(void)
Forces the h264 decoder to wait for an I-Frame to start.
void SetPassthrough(int)
Set the passthrough mask (called from setup menu or conf)
void SetParseH264Dimensions(void)
Parse the h264 stream width and height before starting the decoder.
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:51
Audio decoder header file.
#define CODEC_EAC3
E-AC-3 bit mask.
Definition codec_audio.h:36
#define CODEC_AC3
bits used for the passthrough mask
Definition codec_audio.h:35
#define CODEC_DTS
DTS bit mask.
Definition codec_audio.h:37
SoftHdDevice config header file.
Logger class header file.
#define LOGDEBUG
Definition logger.h:44
#define L_OPENGL_TIME_ALL
Definition logger.h:64
#define L_DEBUG
Logger flags.
Definition logger.h:53
#define L_FFMPEG
Definition logger.h:67
#define L_SOUND
Definition logger.h:55
#define L_DRM
Definition logger.h:57
#define L_OPENGL_TIME
Definition logger.h:63
#define L_GRAB
Definition logger.h:66
#define L_AV_SYNC
Definition logger.h:54
#define L_STILL
Definition logger.h:59
#define L_CODEC
Definition logger.h:58
#define L_PACKET
Definition logger.h:65
#define L_OPENGL
Definition logger.h:62
#define L_TRICK
Definition logger.h:60
#define L_OSD
Definition logger.h:56
#define L_MEDIA
Definition logger.h:61
Device class header file.
static cOsdItem * SeparatorName(const char *label)
Create a seperator item.
static cOsdItem * SeparatorName(const char *label)
Create a seperator named item.
Setup menu class header file.