summaryrefslogtreecommitdiff
path: root/patches/vdr-dxr3-wss.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/vdr-dxr3-wss.patch')
-rw-r--r--patches/vdr-dxr3-wss.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/patches/vdr-dxr3-wss.patch b/patches/vdr-dxr3-wss.patch
new file mode 100644
index 0000000..0bff620
--- /dev/null
+++ b/patches/vdr-dxr3-wss.patch
@@ -0,0 +1,49 @@
+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.5
+diff -u -r1.4.2.5 dxr3interface.c
+--- dxr3interface.c 14 Mar 2005 19:56:19 -0000 1.4.2.5
++++ dxr3interface.c 14 Mar 2005 21:30:07 -0000
+@@ -488,18 +488,32 @@
+ 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;
++ ioctl(m_fdControl, EM8300_IOCTL_SET_WSS, &wssmode);
++#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)
+ {
+ cLog::Instance() << "cDxr3AbsDevice::SetAspectRatio Unable to set aspect ratio\n";
+ }