HowTo + Facts: vdr-sxfe --hud

  • Hallo,


    ich habe mich die letzten Tage etwas mit der --hud-Option von vdr-sxfe (Teil des xineliboutput-plugins) beschäftigt und möchte hier meine Erkenntnisse zusammentragen, vll. kann daraus später eine Wiki-Seite entstehen.


    Zielstellung
    Was ich wollte war ein Budget-Only-System mit xineliboutput und vdr-sxfe. Ausgabe soll auf einen 4:3-Monitor am VGA-Out der Graka geschehen. Das funktionierte an sich ganz gut mit dem Befehl:

    Code
    vdr-sxfe xvdr://localhost --lirc --fullscreen --width=1024 --height=768


    Lediglich das OSD war nicht befriedigend. Ich gehe hier also davon aus das vdr-sxfe bereits funktioniert und es lediglich um die Optimierung des OSD geht.


    Funktionsprinzip von HUD OSD
    Das OSD wird in ein neues Fenster gezeichnet, welches über Compositing halbtransparent über das Video-Fenster gelegt wird. Dadurch ist es unabhängig von dessen Seitenverhältnis und kann in der vollen Auflösung des Monitors gezeichnet werden.


    X-Server
    Der X-Server muss über die COMPOSITE-Extension verfügen. Angeschaltet wird diese über Hinzufügen von

    Code
    Section "Extensions"
            Option "Composite" "Enable"
    EndSection


    zur xorg.conf. Danach sollte "Composite" in der Ausgabe von xdpyinfo erscheinen.


    Desweiteren muss die Farbtiefe des Screens auf 24 Bit gestellt werden. Siehe dazu man xorg.conf.


    Compositing Manager
    Nun ist der Xserver bereit für einen Compositing Manager. I.d.R. soll vdr-sxfe als einziges Programm ohne großes Desktop Environment wie KDE oder Gnome laufen. Für diesen Zweck bieten sich zwei relativ schlanke Compositing Manager an: compiz und xcompmgr. xcompmgr ist kleiner, benötigt aber zwingend einen Windowmanager (twm, fvwm2, *box, ...) zum Funktionieren. Compiz ist umfangreicher, läuft aber ohne extra WM (ist bereits enthalten).


    Compositing Test mit transset
    Zum testen der Compositing Manger bietet sich eine simple X-Session an, die aus ein paar xterms und einem einfachem Windowmanager besteht. Eine solche wird von den meisten Distris standardmäßig gestartet, wenn kein KDE/Gnome installiert ist.
    In einer solchen startet man den Compositing Manager wie folgt:

    Code
    $> xcompmgr &
    $> # oder
    $> killall twm # twm je nach WM ersetzen
    $> compiz-manager &


    Danach kann man z.B. mit transset 0.5 durch Anklicken ein paar Fenster zu 50 % transparent machen um zu schauen, ob Compositing auch wirklich funktioniert.


    vdr-sxfe
    Läuft der Compositing Manager wie gewünscht, sollte beim Start von vdr-sxfe --hud schon mal ein Menü sichtbar sein. Ist es bereits transparent: you're done. Ist es nicht transparent, muss noch die Video-Ausgabe angepasst werden. Transparenz hat bei mir nur mit den Ausgabetreibern xshm und xv (Textured Video) funktioniert. Da xshm langsam ist, ist xv zu bevorzugen. Wie bereits angedeutet gibt es 2 Varianten von XVideo: Overlay und Textured Video. Welche davon die Grafikkarte unterstützt erfährt man mit xvinfo:

    Code
    $> xvinfo
    X-Video Extension version 2.2
    screen #0
      Adaptor #0: "ATI Radeon Video Overlay"
      port base: 57
    [...]
      Adaptor #1: "Radeon Textured Video"
      port base: 58


    In Verbindung mit Compositing funktioniert nur Textured Video! Dummerweise verwendet vdr-sxfe nicht immer automatisch den richtigen Adapter. Die Angabe der Portnummer als Parameter an vdr-sxfe hat bei mir nicht geklappt:

    Code
    vdr-sxfe xvdr://localhost --lirc --fullscreen --width=1024 --height=768 --video=xv:58


    Aber dem kann durch Bearbeiten der Datei ~/.xine/config_xineliboutput nachgeholfen werden:

    Code
    [...]
    # video display method preference
    # { Any  Overlay  Textured Video  Blitter }, default: 0
    video.device.xv_preferred_method:Textured Video
    [...]

    Damit war bei mir dann endlich das OSD transparent.



    Startskript
    Zum Abschluss hier meine komplette ~/.xinitrc:


    Ich hoffe das hilft dem einen oder anderen, Fragen und Anregungen willkommen.
    Stefan

    Asus P4B533, Northwood 2,8 GHz, Mystique CaBiX
    Gentoo
    nvram-wakeup


  • Bist Du Dir sicher dass das stimmt?


    --> Ausschalten mit "Enable" ??

  • hi,
    auf sowas hab ich lang gewartet. das normale osd nervt mich schon seit langem - aber anderes thema.


    also mit xcompmgr und kwin hats auf alle fälle geklappt aber leider wird das bild aufgehellt.
    hat jemand das schon gelöst?

  • Zitat

    Originally posted by C-3PO


    Bist Du Dir sicher dass das stimmt?


    --> Ausschalten mit "Enable" ??


    er sagt doch ANschalten?

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Zitat

    Original von netvista-fan
    Da frag ich mich jedoch wie es mit Debian Lenny mit gnome läuft...
    Bei mir wollte es einfach nicht klappen das compositing zu aktivieren.


    Ich sag jetzt einfach mal so: Wenn die lustigen Desktop-Effekte funktionieren, dann sollte auch HUD laufen. Wie die Effekte hinzubekommen sind wurde schon in etlichen Foren diskutiert, mal Tante google befragen.

    Asus P4B533, Northwood 2,8 GHz, Mystique CaBiX
    Gentoo
    nvram-wakeup

  • Hallo zusammen,


    ich grabe den Thread mal wieder aus:
    Ich hab bei mir folgendes System am laufen.


    vdr 1.7.4
    xinelibout SVN (1.0.90)
    xine-vdpau SVN (r273)


    Nun hab ich den xcompmgr gestartet um mit --hud das OSD immer zentriert
    in der Mitte zu haben (egal welches Seitenverhältnis das Bild hat).


    Leider ruckelt SD Materiel dann (HD hab ich noch nicht getestet) .
    Ohne xcompmgr und ohne --hud läuft es einwandfrei, das OSD wird dann
    aber eben immer dem Bild-Format angepasst. Das finde ich unschön.


    Hat jemand ein Tipp wie ich xine-vdpau mit xcompmgr ruckelfrei hinbekomme?
    Oder verträgt sich xcompmgr nicht mit vdpau?
    Hat jemand mal compiz mit --hud und vdpau angetestet?


    Wenn ich xcompmgr nicht starte (vdr-sxfe aber mit --hud), habe ich übrigens ein schwarzes Bild und
    sehe nur das OSD beim umschalten (TV Bild wird überdeckt), bekommt man das nur mit xcompmgr/compiz transparent?


    Hier mal meine .xinitrc (xcompmgr)



    EDIT:


    So! Mich hat es gepackt und ich habe compiz probiert: Das OSD ist nun oben links in der ecke (also nicht im vollbild wie es bei xcompmgr war).
    Aber transparent. Ich denke das OSD bekommt man irgetwie noch auf Fullscreen.


    Das gute, es ruckelt nichtmehr!
    Leider habe ich (wie es auch schon Andere berichtet haben) Tearing (Lienenbildung bei Kameraschwenkung).


    Gibt es noch eine möglichkeit das zu verbessern?
    Werde heute abend noch ein bischen googlen, ob es eine Tunning möglichkeit gibt.


    Meine xinitrc (mit compiz):

    Ohne VDR, mal sehen was die Zukunft bringt.

    10 Mal editiert, zuletzt von peter2 ()

Jetzt mitmachen!

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