summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--TROUBLESHOOTING8
-rw-r--r--dxr3interface.c25
-rw-r--r--patches/vdr-dxr3-wss.patch56
4 files changed, 29 insertions, 62 deletions
diff --git a/HISTORY b/HISTORY
index 533123b..1b3c81d 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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");
- }