Rene Hertell wrote:
Hi Guys,
I remember that someone had some kind of patch for increasing the OSD-resoluion in VDR. I just can't find that post that mentioned about that...
Could anyone post a link to that site that had that patch.. I would like to try that out :-)
Regards,
René
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
The patches are here: http://www.netholic.com/viewtopic.php?t=1622 Unfortunately, if you do not speak Finnish, it might a bit hard to follow that thread....
What comes to VDR, you just need to change the defines for MAXOSDHEIGHT and -WIDTH in config.h (this is against 1.4.3-4):
--- config.h.orig 2006-10-28 02:30:20.000000000 +0300 +++ config.h 2006-10-28 00:14:11.000000000 +0300 @@ -41,9 +41,9 @@ #define MAXLIFETIME 99
#define MINOSDWIDTH 480 -#define MAXOSDWIDTH 672 +#define MAXOSDWIDTH 1280 #define MINOSDHEIGHT 324 -#define MAXOSDHEIGHT 567 +#define MAXOSDHEIGHT 720
#define MaxFileName 256 #define MaxSkinName 16
In order to increase the resolution of the OSD you should use xineliboutput-plugin and patch it like this (patch will most likely be broken because it is inline):
--- osd.c.orig 2006-10-30 02:37:03.000000000 +0200 +++ osd.c 2006-10-30 03:46:49.000000000 +0200 @@ -155,7 +155,12 @@
m_Device = Device; m_Shown = false; - CmdSize(m_Device, 0, 720, 576); + + if(Setup.OSDWidth + (2*Setup.OSDLeft) > 720 || Setup.OSDHeight + (2*Setup.OSDTop) > 576) { + CmdSize(m_Device, 0, Setup.OSDWidth + (2*Setup.OSDLeft), Setup.OSDHeight + (2*Setup.OSDTop)); + } else { + CmdSize(m_Device, 0, 720, 576); + } }
cXinelibOsd::~cXinelibOsd() @@ -182,11 +187,11 @@ if(Result == oeOk) m_Shown = false;
- if(Left() + Width() > 720 || Top() + Height() > 576) { + if(2*Left() + Width() > 720 || 2*Top() + Height() > 576) { LOGDBG("Detected HD OSD, size > %dx%d, using setup values %dx%d", - Left() + Width(), Top() + Height(), - Setup.OSDWidth, Setup.OSDHeight); - CmdSize(m_Device, 0, Setup.OSDWidth, Setup.OSDHeight); + 2*Left() + Width(), 2*Top() + Height(), + Setup.OSDWidth + (2*Setup.OSDLeft), Setup.OSDHeight + (2*Setup.OSDTop)); + CmdSize(m_Device, 0, Setup.OSDWidth + (2*Setup.OSDLeft), Setup.OSDHeight + (2*Setup.OSDTop)); } else { CmdSize(m_Device, 0, 720, 576); }
After that you should change the resolution via VDR's setup menu. Note that menu plugins are not really compatible with the larger resolution, like for example the ttxtsubs plugin unless you make some changes in to them. Here is an example fix for the ttxtsubs plugin:
--- ttxtsubsdisplay.c.orig 2006-10-28 02:22:29.000000000 +0300 +++ ttxtsubsdisplay.c 2006-10-28 02:23:42.000000000 +0300 @@ -332,13 +332,13 @@
enum { SCREENLEFT = 0, - SCREENRIGHT = 719, + SCREENRIGHT = 1280, SCREENTOP = 150, - SCREENBOTTOM = 575, + SCREENBOTTOM = 720,
SIDEMARGIN = 125, - BOTNORM = 540, - BOTLETTERBOX = 482, + BOTNORM = 640, + BOTLETTERBOX = 520,
ROWINCR = 43, ROWH = 34,
-Petri