[gelöst] OSD-Aktualisierung erzeugt Hänger mit xineliboutput

  • Ich habe einen VDR auf Basis eines Intel Atom-Boards und einer Nvidia-Karte aufgebaut: ASUS AT5NM10-I [1] mit Zotac GeForce GT 430 [2]. Die Ausgabe soll mit VDPAU und xineliboutput-plugin erfolgen, die Karte sitzt im PCI-Slot (nicht PCIe, den hat das Board nicht). Soweit funktioniert das System auf Basis von Debian squeeze und den e-tobi.net-Quellen ganz passabel. Das folgende, schwerwiegende Problem ergibt sich jedoch:


    Wann immer sich im OSD etwas tut, z.B. wenn man es aufruft, einen Menüpunkt wechselt oder sich beim Abspielen einer Aufnahme die Sekundenanzeige aktualisiert, gibt es einen spürbaren Hänger von ca. 1/2 Sekunde (halbe Sekunde). Das TV-Bild stockt währenddessen natürlich auch, was das OSD derzeit unbenutzbar macht: nicht einmal die aktuelle Kanal-Info läuft ruckelfrei.


    Um das Problem abzugrenzen: Es sind ansonsten keine Ruckler erkennbar, d.h. zum einen keine "Mikroruckler" während der Wiedergabe ohne OSD, zum anderen auch keine Ruckler jeglicher Art, wenn das OSD geöffnet, aber statisch ist. Das OSD erscheint halbtransparent, das klappt soweit also auch.


    Ich habe bereits die verschiedenen Parameter für --hud bei vdr-sxfe ausprobiert. Bei normaler Composite-Ausgabe (ohne Angabe von --hud) kommt es zu obigem Phänomen. Bei --hud=xshape ergibt sich das gleiche Problem, aber zusätzlich bleiben weiße Reste im OSD stehen. Bei --hud=opengl ist das OSD an sich in Ordnung, es ist flüssig, sieht super aus und lässt sich ohne Ruckler bedienen. Allerdings verschwindet hier immer das komplette TV-Bild, wenn irgendein OSD aktiv ist! D.h. damit lässt sich leider auch nichts anfangen. (Das gleiche Problem ergibt sich bei Angabe des Paremeters --opengl dauerhaft: kein TV-Bild zu sehen, Ton funktioniert aber.) Eine Verwendung des Plugins xine-lib anstelle von xineliboutput erzeugt leider keine Besserung: hier ruckelt die Ausgabe dauerhaft, solange ein OSD sichtbar ist (ansonsten aber ebenfalls flüssig mit VDPAU).


    Weiß jemand, worauf diese Symptome hindeuten könnten? An sich klappt ein ruckelfreies OSD, wie --hud=opengl demonstriert. Auch mit der Konkurrenz-Software mythtv erhalte ich ein ruckelfreies, halbtransparentes OSD bei VDPAU-Ausgabe. Die Hardware selbst sollte also durchaus leistungsfähig genug sein, ein OSD beim VDR zu bewältigen. Ich tippe daher auf ein Software-Problem. Bei Composite-Ausgabe steigt während der Hänger die CPU-Last des Prozesses vdr-sxfe auf Maximum, fällt dann aber sofort wieder ab. Bei --hud=opengl gibt es keine Hänger, dementsprechend sind hier auch keine Auslastungsspitzen vorhanden.


    Ein Umstellung der OSD-Ausgabe bei xineliboutput (d.h. Umschalten zwischen software und hardware), ergibt keine Besserung. Lediglich ein starkes Reduzieren der OSD-Auflösung lindert das Problem, behebt es aber nicht endgültig. Selbst auf PAL-Auflösung sind noch deutliche Ruckler zu bemerken (vllt. 100 ms bei jeder Aktualisierung), und das Menü ist auf dem 1920x1080-Fernseher schon nicht mehr wirklich ansehnlich. Wenn sich die Composite-Ausgabe nicht realisieren lässt, wie verhindere ich bei --hud=opengl, dass das TV-Bild immer verschwindet, sobald ein OSD auftaucht?


    Ich bin über jeden Hinweis dankbar!


    afran.


    [1] http://geizhals.at/deutschland/495821
    [2] http://geizhals.at/deutschland/652586


    EDIT: Inzwischen habe ich das Problem mit einem Distributionswechsel umgangen. Details siehe Beitrag 5.

    Einmal editiert, zuletzt von afran () aus folgendem Grund: Lösungshinweis hinzugefügt.

  • Nimm die aktuelle xine-lib aus [patches] xine-lib-1.2+xineliboutput+xine-plugin verbesserter vdr support da ist es fast weg.
    Ansonsten gibts genug Threads OSD ruckelt und ION2.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Nimm die aktuelle xine-lib aus [patches] xine-lib-1.2+xineliboutput+xine-plugin verbesserter vdr support da ist es fast weg.


    Danke für den Hinweis.


    Zitat

    Ansonsten gibts genug Threads OSD ruckelt und ION2.


    Ist das, was bei den IONs passiert, auf mein System übertragbar? Ich habe ja keine integrierte Nvidia ION-Lösung, sondern eine dedizierte Nvidia-Grafikkarte. Auch ruckelt das TV-Bild nicht bei geöffnetem OSD, sondern nur dann, wenn sich im OSD auch etwas tut. Bleibt das OSD statisch geöffnet, läuft das TV-Bild im Hintergrund wunderbar.

  • Also die GT 430 sollte nicht ruckeln, wenn du die aktuelle xine-lib aus dem git hast.


    Der Effekt ist genau der, der vor einiger Zeit extrem war und jetzt nur noch bei meiner GT 210 auffällt.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Ich habe das Problem nun mit der Holzhammermethode behoben. Statt wie bisher auf Basis von Debian und e-tobi.net-Quellen einen VDR selbst zusammenzustellen, habe ich mich für yaVDR als fertige Distribution entschieden.


    Bei yaVDR (0.4.0) war es dabei nötig, im Webinterface die Ausgabe von xine-lib auf xineliboutput mit aktiviertem HUD (experimentell) umzustellen. In der Plugin-Konfiguration von xineliboutput (im VDR selbst) dann noch von Hardware- auf Software-Rendering gewechselt, und schon habe ich ein absolut ruckelfreies und hübsch anzusehendes OSD.


    Das einzige, was bleibt, ist ein winziger Mikroruckler (< 50 ms) beim Einblenden des OSD, wobei der vermutlich bedingt durch die beiden Overlays (VDPAU und OpenGL?) nicht vermeidbar ist. Wenn man nicht genau darauf achtet, fällt er aber nicht auf. Beim Wechsel von Menüpunkten und bei sonstigen Aktualisierungen jedenfalls verhält sich das OSD nun wie gewünscht absolut neutral dem darunterliegenden TV-Bild gegenüber: keine Ruckler, kein Lagging, so soll es sein.


    Als positiven Nebeneffekt durch yaVDR habe ich jetzt auch XBMC kennengelernt, von dem ich absolut begeistert bin. Tolle Software!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!