Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Problems with subtitles (problem solved)



On Fri, 24 Sep 2004 20:31:50 +0300 (EEST)
Lollero <lollero@rrsite.com> wrote:

> On Fri, 24 Sep 2004, Timo Laitinen wrote:
> 
> > On Thu, 16 Sep 2004 18:52:10 +0300
> > Timo Laitinen <timolai@utu.fi> wrote:
> > 
> > 
> > > problem? I've applied the DVBsubs.patch (which had a couple of
> > > resolvable conflicts, hopefully correctly...).
> > 
> > Hrm... Problem solved: I didn't resolve the conflicts correctly...
> > works now.
> > 
> > Best Regards,
> > 
> > Timo
> 
> I have the same probem.
> Can you provide working patch, or describe how those conflicts should
> be resolved?
> 

Sure. In osd.h there was a minor glitch, the cOsd is now protected. Just
add

static bool niosd;

to the public section after it.

In file osd.c, the location of the new bit is crucial. I put it after
the new "if (cOsd::IsOpen())" block first... so it returned NULL.
The function in question, cOsdProvider::NewOsd,  should look like this:

----------------------

cOsd *cOsdProvider::NewOsd(int Left, int Top, bool dontHide)
 {

// This is the patch bit

   if (!dontHide)
      NonInteractiveOsdPatch::OsdController.Hide();
   cOsd::niosd = dontHide;

// The patch bit ends here. The next block wasn't in the version the
// patch was made against.

  if (cOsd::IsOpen()) {
     esyslog("ERROR: attempt to open OSD while it is already open!");
     return NULL;
     }

  if (osdProvider)
     return osdProvider->CreateOsd(Left, Top);
  esyslog("ERROR: no OSD provider available - using dummy OSD!");
  return new cOsd(Left, Top); // create a dummy cOsd, so that access
                              //won't result in a segfault
}

------------------------

(my email program folded the last comment, so it looks different from
the original)


Best Regards,

Timo





Home | Main Index | Thread Index