OSD-Resolution

Message ID 45B6F55A.7030003@googlemail.com
State New
Headers

Commit Message

Petri Helin Jan. 24, 2007, 5:57 a.m. UTC
  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):



-Petri
  

Comments

Rene Hertell Jan. 24, 2007, 9 a.m. UTC | #1
Petri Helin wrote:

> 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....

Kiitos! Thanks!

Finnish is no problem for me :-)

Terveisin,

René
  

Patch

--- 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,