Beiträge von ebsi

    Auf welcher Distri compilierst Du ?

    Hallole,
    ich habe da ein Problem mit dem Compile von xine-lib-vaapi. Der make scheitert an po Files


    Was läuft da falsch?

    Mach male ein "git pull --rebase" und probier es nochmal.


    lg


    ebsi

    Da bist du aber nicht auf dem neusten Stand. VA-API ist auf weite Sicht tot. In die mesa-Treiber wird VDPAU eingebaut und VDPAU ist soweit ich mich erinnere ebenfalls Open-Source.


    Die VDPAU Schnitstelle mag frei sein. Die dahinter liegenden Treiber sind es nicht. Da liegt der feine Unterschied.
    Das VDPAU die Schnittstelle schlechthin wird glaub ich eher nicht. Wäre dem so, würden Intel und AMD es unterstützen. Intel verwehrt sich auch Gallium3D im mesa Stack. So wie ich es sehe werden VA-API, VDPAU und XVBA nebeneinander existieren.


    Die traurige Wahrheit ist : http://xkcd.com/927/


    Der Comic zeigt es gut. Und meine nun 20 Jährige Erfahrung im IT Business bestätigt es.


    EDIT : Persönlich halte ich es für Schwachsinnig Video Decoding in Mesa zu verankern.


    lg


    ebsi

    n

    Dann passt was deffinitiv nicht bei det pts kalkulation.

    pkt_pts

    Leider verwendest das plugin pkt_pts auch nicht. In der Codec_get_buffer Funktion fehlt :


    ffmpeg neu :


    frame->pkt_pts = avctx->pkt->pts;


    alte ffmpeg :


    frame->reordered_opaque = avctx->reordered_opaque;




    Ohne dem wirst du kein reordering im decoder mitbekommen und die PTS werte laufen falsch.


    In diesem Tutorial wird das mit dem dts/pts handling gut beschrieben : http://dranger.com/ffmpeg/


    Auch im ffmpeg source sieht man das dts/pts handling schön. ffmpeg.c glaub ich.


    lg


    ebsi

    Mir ist die Diskussion besseres Bild oder nicht egal. Hab es eh schon ein paar mal erklärt, das meiner einer bei 3-4m Entfernung zum 47" das nicht so unterscheiden kann. Was mich aber extrem an VDPAU gestört hat, sind die decoding Hänger im Nvidia Treiber, die wie man im Board lesen kann, bis heute nicht wirklich behoben sind. Das war der Grund warum ich mir VA-API angetan habe und auch dabei bleiben werde. Schicker Vorteil bei VA-API, eine Quelloffene alternative zu Nvidia. Das mit der Bildqualität wird bei VA-API auch besser werden, wenn ich die Commitmeldungen im freedesktop git richtig interpretiere.


    lg


    ebsi

    Was mir bis jetzt im plugin aufgefallen ist :


    Von meiner sicht der Dinge ist dein dts/pts handling für vaapi falsch. Du must das Reordering der Frames berücksichtigen "reordered_opaque" . Die Frames müssen nicht zwangsweise geordnet codiert sein. Wenn dem nicht so ist, macht der Decoder ein Reordering der Frames was in deiner Logik zwangsweise zu falschen pts werten führen muss.


    Treten Segmentation faults bei vaapi bei der reinen decodierung auf, spricht ohne aktivem OSD oder Deinterlacing, ist es 100% sicher das seitens der Applikation nicht sichergestellt wurde das das Surface vom decoder frei gegeben wurde. Erst nach freigabe des Surfaces darf es zur Anzeige verwendet werden.


    Achte bei VAAPI immer darauf das es zu keiner doppelten Verwendung von Surfaces kommt. VAAPI ist nicht wirklich Thread save. Auch beim OSD vaAssociateSubpicture/vaDeassociateSubpicture jeweils nur einmal aufrufen. VAAPI verzeiht keine Logik fehler/glitches. Da wird man meistens mit einem Segmentation fault oder den "GPU hangs" bestraft.



    Der stabilste Intel Treiber für vaapi ist : xf86-video-intel-2.15.0. Mit späteren Versionen kommt es vermehrt zu den "GPU hangs".

    Leider wird es nicht von allen VAAPI Implemntierungen unterstützt. Somit ist das Interesse dies einzubauen sehr gering.


    lg


    ebsi

    Sollte jemand die Muse finden VAAPI für xine-lib-1.2 und ATI zu fixen, nehme ich den/die patches gerne in mein git repo auf.


    lg


    ebsi

    Soweit mit bekannt hat ebsi die vaapi für xine lediglich für INTEL und nicht für ATI angepasst. Deshalb braucht man sich nicht wundern, wenn das mit ATI nicht funktioniert.


    Gruß
    iNOB

    Habe auch mit ATI experimentiert. Kann nur sagen deren Treiber sind der letzte dreck. Mit INTEL läuft es ganz gut.


    lg


    ebsi

    nabend, ich hatte mich nach der Update-Orgie in der letzten Wochen gewundert, warum die Umschaltzeiten recht hoch waren und xine beim Umschalten mit einer sehr hohen Wahrscheinlichkeit (> 50%) freezed. Heute hab ich dann mal rumgespielt und video.output.vaapi_guarded_render:0 gesetzt. Damit läufts ordentlich, keine Freezes und schnelles Umschalten. Gibt es irgendwelche Bedinungen (Treiber, Kernel, etc) damit es auch mit der guarded Render Methode läuft?


    Hi,


    das hört sich noch dem libxcb Problem an. Ich musste libxcb patchen.


    https://archvdr.svn.sourceforg…/xcb_wait_for_reply.patch



    lg


    ebsi

    Die xine-lib VAAPI Entwicklung hat eine neues zu Hause auf github bekommen.


    Um an die Source zu kommen :


    git clone git://github.com/huceke/xine-lib-vaapi.git
    cd xine-lib-vaapi
    git checkout vaapi-testing


    ffmpeg muss in der aktuellen git Version verwendet werden oder folgender commit gegen Version 0.7/0.8 angewandt werden :


    http://git.videolan.org/?p=ffm…5aae9f0baa47671af15de181a



    Libxcb hat ein deadlock Problem welches im libxcb git behoben wurde oder folgenden Patch gegen libxcb 1.7 anwenden :


    https://archvdr.svn.sourceforg…/xcb_wait_for_reply.patch



    Es gibt auch ein rudimentäres README dazu :


    https://github.com/huceke/xine…aapi-testing/README.vaapi



    Oder einfach hier im Forum diesen Thread durchlesen :


    http://www.vdr-portal.de/board16-video-disk-recorder/board85-hdtv-dvb-s2/102819-hd-vdr-mit-intel-hd-graphics-testbericht-zu-vaapi/


    lg


    ebsi