diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | README.txt | 4 | ||||
-rw-r--r-- | Todo | 1 | ||||
-rw-r--r-- | softhddevice.cpp | 43 | ||||
-rw-r--r-- | video.c | 11 | ||||
-rw-r--r-- | video.h | 3 |
6 files changed, 43 insertions, 20 deletions
@@ -1,6 +1,7 @@ User johns Date: + Makes 60Hz display mode configurable with setup.conf. Support downmix of AC-3 to stero. New audio PES packet parser. Fix bug: Grabbing a JPG image fails while suspended. @@ -176,6 +176,10 @@ Setup: /etc/vdr/setup.conf softhddevice.Suspend.X11 = 0 1 suspend stops X11 server (not working yet) + softhddevice.60HzMode = 0 + 0 disable 60Hz display mode + 1 enable 60Hz display mode + VideoDisplayFormat = ? 0 pan and scan 1 letter box @@ -25,7 +25,6 @@ missing: suspend plugin didn't restore full-screen (is this wanted?) Option deinterlace off / deinterlace force! ColorSpace aren't configurable with the gui. - Inverse telecine isn't configurable with the gui. Replay of old vdr 1.6 recordings. svdrp support for hot-keys. diff --git a/softhddevice.cpp b/softhddevice.cpp index 5b9c1e7..77cdec2 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -64,6 +64,7 @@ static char ConfigHideMainMenuEntry; ///< config hide main menu entry static int ConfigVideoSkipLines; ///< config skip lines top/bottom static int ConfigVideoStudioLevels; ///< config use studio levels +static int ConfigVideo60HzMode; ///< config use 60Hz display mode /// config deinterlace static int ConfigVideoDeinterlace[RESOLUTIONS]; @@ -950,7 +951,7 @@ bool cSoftHdDevice::SetPlayMode(ePlayMode play_mode) Suspend(1, 1, 0); return true; default: - dsyslog("[softhddev]playmode not implemented... %d\n", play_mode); + dsyslog("[softhddev] playmode not implemented... %d\n", play_mode); break; } ::SetPlayMode(); @@ -1469,98 +1470,102 @@ bool cPluginSoftHdDevice::SetupParse(const char *name, const char *value) //dsyslog("[softhddev]%s: '%s' = '%s'\n", __FUNCTION__, name, value); - if (!strcmp(name, "MakePrimary")) { + if (!strcasecmp(name, "MakePrimary")) { ConfigMakePrimary = atoi(value); return true; } - if (!strcmp(name, "HideMainMenuEntry")) { + if (!strcasecmp(name, "HideMainMenuEntry")) { ConfigHideMainMenuEntry = atoi(value); return true; } - if (!strcmp(name, "SkipLines")) { + if (!strcasecmp(name, "SkipLines")) { VideoSetSkipLines(ConfigVideoSkipLines = atoi(value)); return true; } - if (!strcmp(name, "StudioLevels")) { + if (!strcasecmp(name, "StudioLevels")) { VideoSetStudioLevels(ConfigVideoStudioLevels = atoi(value)); return true; } + if (!strcasecmp(name, "60HzMode")) { + VideoSet60HzMode(ConfigVideo60HzMode = atoi(value)); + return true; + } for (i = 0; i < RESOLUTIONS; ++i) { char buf[128]; snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Scaling"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoScaling[i] = atoi(value); VideoSetScaling(ConfigVideoScaling); return true; } snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Deinterlace"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoDeinterlace[i] = atoi(value); VideoSetDeinterlace(ConfigVideoDeinterlace); return true; } snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "SkipChromaDeinterlace"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoSkipChromaDeinterlace[i] = atoi(value); VideoSetSkipChromaDeinterlace(ConfigVideoSkipChromaDeinterlace); return true; } snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "InverseTelecine"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoInverseTelecine[i] = atoi(value); VideoSetInverseTelecine(ConfigVideoInverseTelecine); return true; } snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Denoise"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoDenoise[i] = atoi(value); VideoSetDenoise(ConfigVideoDenoise); return true; } snprintf(buf, sizeof(buf), "%s.%s", Resolution[i], "Sharpen"); - if (!strcmp(name, buf)) { + if (!strcasecmp(name, buf)) { ConfigVideoSharpen[i] = atoi(value); VideoSetSharpen(ConfigVideoSharpen); return true; } } - if (!strcmp(name, "AudioDelay")) { + if (!strcasecmp(name, "AudioDelay")) { VideoSetAudioDelay(ConfigVideoAudioDelay = atoi(value)); return true; } - if (!strcmp(name, "AudioPassthrough")) { + if (!strcasecmp(name, "AudioPassthrough")) { CodecSetAudioPassthrough(ConfigAudioPassthrough = atoi(value)); return true; } - if (!strcmp(name, "AudioDownmix")) { + if (!strcasecmp(name, "AudioDownmix")) { CodecSetAudioDownmix(ConfigAudioDownmix = atoi(value)); return true; } - if (!strcmp(name, "AutoCrop.Interval")) { + if (!strcasecmp(name, "AutoCrop.Interval")) { VideoSetAutoCrop(ConfigAutoCropInterval = atoi(value), ConfigAutoCropDelay, ConfigAutoCropTolerance); return true; } - if (!strcmp(name, "AutoCrop.Delay")) { + if (!strcasecmp(name, "AutoCrop.Delay")) { VideoSetAutoCrop(ConfigAutoCropInterval, ConfigAutoCropDelay = atoi(value), ConfigAutoCropTolerance); return true; } - if (!strcmp(name, "AutoCrop.Tolerance")) { + if (!strcasecmp(name, "AutoCrop.Tolerance")) { VideoSetAutoCrop(ConfigAutoCropInterval, ConfigAutoCropDelay, ConfigAutoCropTolerance = atoi(value)); return true; } - if (!strcmp(name, "Suspend.Close")) { + if (!strcasecmp(name, "Suspend.Close")) { ConfigSuspendClose = atoi(value); return true; } - if (!strcmp(name, "Suspend.X11")) { + if (!strcasecmp(name, "Suspend.X11")) { ConfigSuspendX11 = atoi(value); return true; } @@ -8914,6 +8914,17 @@ int VideoSetGeometry(const char *geometry) return 0; } +/// Set 60hz display mode. +/// +/// Pull up 50 Hz video for 60 Hz display. +/// +/// @param onoff enable / disable the 60 Hz mode. +/// +void VideoSet60HzMode(int onoff) +{ + Video60HzMode = onoff; +} + /// /// Set video output position. /// @@ -80,6 +80,9 @@ extern void VideoDisplayWakeup(void); /// Set video geometry. extern int VideoSetGeometry(const char *); + /// Set 60Hz display mode. +extern void VideoSet60HzMode(int); + /// Set video output position. extern void VideoSetOutputPosition(int, int, int, int); |