Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: can the osd be accessed by a separate pthread?
Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de> wrote:
> Clemens Kirchgatterer wrote:
> > as i have already said: that is not the plugins fault. have you
> > tried this with any other plugin that opens an raw osd? i.e. with
> > klaus' own osddemo plugin?
>
> Sorry, but it _is_ the plugin's fault!
>
> A plugin that wants to open a raw OSD shall return a derived
> cOsdObject from its MainMenuAction() function. VDR will then call that
> object's Show() function and in _there_ the derived cOsdObject may
> call cOsd::OpenRaw()(and nowhere else!).
are you absolutly shure, that there is a difference between opening
the RawOsd in cOsdObject->Show() as you say and doing it in a thread
spawned from cOsdObject->Show() ? i can't see why this should matter.
> The derived cOsdObject must delete its raw OSD inside its desctructor
> (see the osddemo example).
the games plugin will shutdown when the destructor of the cOsdObject
derived object gets destructed. so from my point of view this is correct
behalfier also.
> While the derived cOsdObject exists, it may access the OSD even from
> a thread, because VDR will not access it while such an object exists.
yes, thats how i understood it also.
> However, VDR absolutely relies on the object to close the raw OSD in
> its destructor. After the destructor has run, VDR assumes full control
> over the OSD again. If the object doesn't play along, trouble is
> probably inevitable.
maybe the games plugin just takes a little bit to long before releasing
the osd. looks like an race condition. games plugin is about to release
the osd, but vdr already (re)opens it.
best regards ...
clemens
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index