Vielen Dank schon mal fuer die ganzen Updates. Leider bin ich noch nicht dazu gekommen, das auszuprobieren. Kann auch leider noch laenger dauern. Klingt aber alles schon mal gut.
- weniger Threads (sind jetzt so weit wie möglich eliminiert)
Dieser Punkt ist Hauptgrund (und der einzig wichtige), warum ich die light-Version verwende. Die vdr-PLUGINS.html ist da eindeutig:
Directly accessing the OSD is only allowed from the foreground thread, which
restricts this to a <tt>cOsdObject</tt> returned from the plugin's <tt>MainMenuAction()</tt>
function, or any of the skin classes a plugin might implement.
Ein Skin-Plugin darf also nicht mit mehreren Threads auf das OSD zugreifen. Wenn es doch funktioniert, dann nur zufällig.
Wenn die Threads so weit wie moeglich eliminiert sind, welche gibt es noch?
Möglicherweise liegt das am dvbhddevice Plugin.
Soweit ich weiss benutzt dvbhddevice die Standard-OSD-Implementierung von vdr (im Gegensatz zu dvbsddevice). Erst das fertig gerenderte OSD wird auf die Hardware uebertragen. Das cPixmap::Lock() hat somit nichts mit der Hardware oder dem Plugin zu tun, denke ich. Wird da auch mit mehreren Threads drauf zugegriffen? Oder passiert bei dem ersten Aufruf irgendeine Initialisierung, die vielleicht auch Hardware-Parameter abfragt?
Gruss,
S:oren