Studio levels could be configured in setup menu.

This commit is contained in:
Johns 2012-02-13 14:13:24 +01:00
parent f872f54e2a
commit a98a4adc7e
5 changed files with 28 additions and 10 deletions

View File

@ -2,6 +2,7 @@ User johns
Date: Date:
Release Version 0.4.7 Release Version 0.4.7
VDPAU: Studio levels could be configured in the setup menu.
Window size defaults to fullscreen, if no geometry is given. Window size defaults to fullscreen, if no geometry is given.
User m.Rcu User m.Rcu

8
Todo
View File

@ -24,7 +24,7 @@ missing:
suspend output / energie saver: stop and restart X11 suspend output / energie saver: stop and restart X11
suspend plugin didn't restore full-screen (is this wanted?) suspend plugin didn't restore full-screen (is this wanted?)
Option deinterlace off / deinterlace force! Option deinterlace off / deinterlace force!
ColorSpace and StudioLevels aren't configurable with the gui. ColorSpace aren't configurable with the gui.
crash: crash:
AudioPlayHandlerThread -> pthread_cond_wait AudioPlayHandlerThread -> pthread_cond_wait
@ -37,7 +37,6 @@ video:
hard channel switch hard channel switch
OSD can only be shown after some stream could be shown OSD can only be shown after some stream could be shown
yaepghd changed position is lost on channel switch yaepghd changed position is lost on channel switch
use x11 screen size without geometry configuration
pause (live tv) has sometime problems with SAT1 HD Pro7 HD pause (live tv) has sometime problems with SAT1 HD Pro7 HD
vdpau: vdpau:
@ -81,7 +80,6 @@ audio:
Make alsa thread/polled and oss thread/polled output module runtime Make alsa thread/polled and oss thread/polled output module runtime
selectable. selectable.
software volume support (could be done with asound.conf) software volume support (could be done with asound.conf)
add pause support for replay pause
Mute should do a real mute and not only set volume to zero. Mute should do a real mute and not only set volume to zero.
Starting suspended and muted, didn't register the mute. Starting suspended and muted, didn't register the mute.
@ -98,8 +96,6 @@ audio/oss:
HDMI/SPDIF Passthrough: HDMI/SPDIF Passthrough:
only AC-3 written only AC-3 written
Channels are wrong setup, if changing setting during operation.
support oss pass-through
playback of recording playback of recording
pause is not reset, when replay exit pause is not reset, when replay exit
@ -127,4 +123,4 @@ future features (not planed for 1.0 - 1.5)
pip support pip support
save and use auto-crop with channel zapping save and use auto-crop with channel zapping
upmix stereo to AC-3 upmix stereo to AC-3 (supported by alsa plugin)

View File

@ -62,6 +62,7 @@ static char ConfigMakePrimary; ///< config primary wanted
static char ConfigHideMainMenuEntry; ///< config hide main menu entry static char ConfigHideMainMenuEntry; ///< config hide main menu entry
static int ConfigVideoSkipLines; ///< config skip lines top/bottom static int ConfigVideoSkipLines; ///< config skip lines top/bottom
static int ConfigVideoStudioLevels; ///< config use studio levels
/// config deinterlace /// config deinterlace
static int ConfigVideoDeinterlace[RESOLUTIONS]; static int ConfigVideoDeinterlace[RESOLUTIONS];
@ -384,6 +385,7 @@ class cMenuSetupSoft:public cMenuSetupPage
int MakePrimary; int MakePrimary;
int HideMainMenuEntry; int HideMainMenuEntry;
int SkipLines; int SkipLines;
int StudioLevels;
int Scaling[RESOLUTIONS]; int Scaling[RESOLUTIONS];
int Deinterlace[RESOLUTIONS]; int Deinterlace[RESOLUTIONS];
int SkipChromaDeinterlace[RESOLUTIONS]; int SkipChromaDeinterlace[RESOLUTIONS];
@ -453,6 +455,9 @@ cMenuSetupSoft::cMenuSetupSoft(void)
SkipLines = ConfigVideoSkipLines; SkipLines = ConfigVideoSkipLines;
Add(new cMenuEditIntItem(tr("Skip lines top+bot (pixel)"), &SkipLines, 0, Add(new cMenuEditIntItem(tr("Skip lines top+bot (pixel)"), &SkipLines, 0,
64)); 64));
StudioLevels = ConfigVideoStudioLevels;
Add(new cMenuEditBoolItem(tr("Use studio levels (vdpau only)"),
&StudioLevels, trVDR("no"), trVDR("yes")));
for (i = 0; i < RESOLUTIONS; ++i) { for (i = 0; i < RESOLUTIONS; ++i) {
Add(SeparatorItem(resolution[i])); Add(SeparatorItem(resolution[i]));
@ -519,6 +524,8 @@ void cMenuSetupSoft::Store(void)
SetupStore("SkipLines", ConfigVideoSkipLines = SkipLines); SetupStore("SkipLines", ConfigVideoSkipLines = SkipLines);
VideoSetSkipLines(ConfigVideoSkipLines); VideoSetSkipLines(ConfigVideoSkipLines);
SetupStore("StudioLevels", ConfigVideoStudioLevels = StudioLevels);
VideoSetStudioLevels(ConfigVideoStudioLevels);
for (i = 0; i < RESOLUTIONS; ++i) { for (i = 0; i < RESOLUTIONS; ++i) {
char buf[128]; char buf[128];
@ -1259,6 +1266,10 @@ bool cPluginSoftHdDevice::SetupParse(const char *name, const char *value)
VideoSetSkipLines(ConfigVideoSkipLines = atoi(value)); VideoSetSkipLines(ConfigVideoSkipLines = atoi(value));
return true; return true;
} }
if (!strcmp(name, "StudioLevels")) {
VideoSetStudioLevels(ConfigVideoStudioLevels = atoi(value));
return true;
}
for (i = 0; i < RESOLUTIONS; ++i) { for (i = 0; i < RESOLUTIONS; ++i) {
char buf[128]; char buf[128];

15
video.c
View File

@ -283,6 +283,7 @@ static char VideoSurfaceModesChanged; ///< flag surface modes changed
static const char VideoTransparentOsd = 1; static const char VideoTransparentOsd = 1;
static int VideoSkipLines; ///< skip video lines top/bottom static int VideoSkipLines; ///< skip video lines top/bottom
static char VideoStudioLevels; ///< flag use studio levels
/// Default deinterlace mode. /// Default deinterlace mode.
static VideoDeinterlaceModes VideoDeinterlace[VideoResolutionMax]; static VideoDeinterlaceModes VideoDeinterlace[VideoResolutionMax];
@ -308,9 +309,6 @@ static const VideoColorSpace VideoColorSpaces[VideoResolutionMax] = {
VideoColorSpaceBt709 VideoColorSpaceBt709
}; };
/// Flag use studio levels
static char VideoStudioLevels;
/// Default scaling mode /// Default scaling mode
static VideoScalingModes VideoScaling[VideoResolutionMax]; static VideoScalingModes VideoScaling[VideoResolutionMax];
@ -9108,6 +9106,16 @@ void VideoSetSkipLines(int lines)
VideoSkipLines = lines; VideoSkipLines = lines;
} }
///
/// Set studio levels.
///
/// @param onoff flag on/off
///
void VideoSetStudioLevels(int onoff)
{
VideoStudioLevels = onoff;
}
/// ///
/// Set audio delay. /// Set audio delay.
/// ///
@ -9261,7 +9269,6 @@ void VideoInit(const char *display_name)
if (getenv("NO_HW")) { if (getenv("NO_HW")) {
VideoHardwareDecoder = 0; VideoHardwareDecoder = 0;
} }
VideoStudioLevels = 0;
if (getenv("STUDIO_LEVELS")) { if (getenv("STUDIO_LEVELS")) {
VideoStudioLevels = 1; VideoStudioLevels = 1;
} }

View File

@ -104,6 +104,9 @@ extern void VideoSetSharpen(int[]);
/// Set skip lines. /// Set skip lines.
extern void VideoSetSkipLines(int); extern void VideoSetSkipLines(int);
/// Set studio levels.
extern void VideoSetStudioLevels(int);
/// Set audio delay. /// Set audio delay.
extern void VideoSetAudioDelay(int); extern void VideoSetAudioDelay(int);