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"); - 	    } | 
