diff options
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | TROUBLESHOOTING | 8 | ||||
-rw-r--r-- | dxr3interface.c | 25 | ||||
-rw-r--r-- | patches/vdr-dxr3-wss.patch | 56 |
4 files changed, 29 insertions, 62 deletions
@@ -328,5 +328,5 @@ NOTE: I havent found time to include all of the languages, will be done in pre2 - avoid deprecation warnings with newish libavcodec (Ville Skyttä) - add brightness/contrast/saturation settings to setup (Ville Skyttä) - apply more settings immediately from setup menu (Ville Skyttä) -- apply AC3 patch which was in patches/ in previous releases +- apply AC3 and WSS patches which were in patches/ in previous releases - various minor tweaks diff --git a/TROUBLESHOOTING b/TROUBLESHOOTING index 472202f..aaa893e 100644 --- a/TROUBLESHOOTING +++ b/TROUBLESHOOTING @@ -44,8 +44,12 @@ Troubleshooting, known problems, bugs, and workarounds related to this driver: disabled on all systems, and anyway it would be very nice if someone found what the problem is, and would submit a patch. -Other TODOs: ------------- +* Wide screen signaling (WSS) requires patching the em8300 driver, and + probably works only with ADV7170, see patches/em8300-adv7170-wss.patch + and http://thread.gmane.org/gmane.linux.vdr/17095 + +Other (some possibly stale) TODOs: +---------------------------------- * set bcs * clean unneeded log entries diff --git a/dxr3interface.c b/dxr3interface.c index 5122925..ebb4050 100644 --- a/dxr3interface.c +++ b/dxr3interface.c @@ -422,20 +422,39 @@ uint32_t cDxr3Interface::GetAspectRatio() const void cDxr3Interface::SetAspectRatio(uint32_t ratio) { static int requestCounter = 0; + int wssmode; + int aspect; Lock(); if (cDxr3ConfigData::Instance().GetForceLetterBox()) ratio = EM8300_ASPECTRATIO_16_9; - if (Setup.VideoFormat) - ratio = EM8300_ASPECTRATIO_4_3; if (!m_ExternalReleased && ratio != UNKNOWN_ASPECT_RATIO) { if (ratio != m_aspectRatio && requestCounter > 50) { + if (Setup.VideoFormat) + { + aspect = EM8300_ASPECTRATIO_4_3; +#ifdef EM8300_IOCTL_SET_WSS + if (ratio == EM8300_ASPECTRATIO_16_9) + wssmode = EM8300_WSS_16_9; + else + wssmode = EM8300_WSS_OFF; + if (ioctl(m_fdControl, EM8300_IOCTL_SET_WSS, &wssmode) < 0) + { + esyslog("dxr3: unable to set WSS: %m"); + } +#endif + } + else + { + aspect = ratio; + } + requestCounter = 0; - if (ioctl(m_fdControl, EM8300_IOCTL_SET_ASPECTRATIO, &ratio) < 0) + if (ioctl(m_fdControl, EM8300_IOCTL_SET_ASPECTRATIO, &aspect) < 0) { esyslog("dxr3: unable to set aspect ratio: %m"); } diff --git a/patches/vdr-dxr3-wss.patch b/patches/vdr-dxr3-wss.patch deleted file mode 100644 index be07716..0000000 --- a/patches/vdr-dxr3-wss.patch +++ /dev/null @@ -1,56 +0,0 @@ -Wide screen signaling (WSS) patch for vdr-dxr3 by Seppo Ingalsuo. -Apply to: vdr-dxr3 plugin sources -More info: http://thread.gmane.org/gmane.linux.vdr/17095 -Note: you'll probably want to apply em8300-adv7170-wss.patch too - in order to get support for this functionality in the driver. - -Index: dxr3interface.c -=================================================================== -RCS file: /cvsroot/dxr3plugin/dxr3/dxr3interface.c,v -retrieving revision 1.4.2.28 -diff -u -r1.4.2.28 dxr3interface.c ---- dxr3interface.c 18 Feb 2006 19:04:44 -0000 1.4.2.28 -+++ dxr3interface.c 18 Feb 2006 19:51:06 -0000 -@@ -412,20 +412,39 @@ - void cDxr3Interface::SetAspectRatio(uint32_t ratio) - { - static int requestCounter = 0; -+ int wssmode; -+ int aspect; - - Lock(); - - if (cDxr3ConfigData::Instance().GetForceLetterBox()) - ratio = EM8300_ASPECTRATIO_16_9; -- if (Setup.VideoFormat) -- ratio = EM8300_ASPECTRATIO_4_3; - - if (!m_ExternalReleased && ratio != UNKNOWN_ASPECT_RATIO) - { - if (ratio != m_aspectRatio && requestCounter > 50) - { -+ if (Setup.VideoFormat) -+ { -+ aspect = EM8300_ASPECTRATIO_4_3; -+#ifdef EM8300_IOCTL_SET_WSS -+ if (ratio == EM8300_ASPECTRATIO_16_9) -+ wssmode = EM8300_WSS_16_9; -+ else -+ wssmode = EM8300_WSS_OFF; -+ if (ioctl(m_fdControl, EM8300_IOCTL_SET_WSS, &wssmode) < 0) -+ { -+ esyslog("dxr3: unable to set WSS: %m"); -+ } -+#endif -+ } -+ else -+ { -+ aspect = ratio; -+ } -+ - requestCounter = 0; -- if (ioctl(m_fdControl, EM8300_IOCTL_SET_ASPECTRATIO, &ratio) < 0) -+ if (ioctl(m_fdControl, EM8300_IOCTL_SET_ASPECTRATIO, &aspect) < 0) - { - esyslog("dxr3: unable to set aspect ratio: %m"); - } |