[Announce] VA-API/VPP Patch for vdr-plugin-softhddevice - updated "v9"

  • Aber es tut sich was und wenn ich dadurch die Nvidia-Karte einsparen kann,

    Ja, sparen tut man nur die Karte, in der Leistungsaufnahme wird sich das nix haben, auch bei der Intel GPU kommt von nix eben nix.


    Sollte es irgendwo noch ruckeln, Kamm-, Block oder Grün-Artefakte geben, könnte das Frame Ordering das Problem sein, da kann man noch was einstellen. Antti mit Haswell und ich mit Baytrail haben das komplett konträre Kombinationen als stabil gefunden ... werd's später mal beschreiben.


    Regards
    fnu

    HowTo: APT pinning

  • Das bezweifel ich, Antti entwickelt auf gentoo ... ;)


    Regards
    fnu

    HowTo: APT pinning

  • N'Abend ... erste Testergebnisse mit dem Patch kann ich nun liefern (auf Celeron G1610, Ivy Bridge based):


    Code
    media-video/ffmpeg-2.3.3
    virtual/ffmpeg-9-r1
    x11-libs/libva-9999
    x11-libs/libva-intel-driver-9999


    Und hier die genauen Versionen


    Code
    vainfo: VA-API version: 0.36 (libva 1.4.0.pre1)   
    --> aktueller Master von git://anongit.freedesktop.org/vaapi/libva
    vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Desktop - 1.3.3.pre1 (1.3.2-52-gbc2e06e)   
    --> aktueller Master von git://anongit.freedesktop.org/vaapi/intel-driver


    Soweit ich sehen kann, sind in dem aktuellen Master vom vaapi-intel-driver die Änderungen von Gwen enthalten. Aber zur Sicherheit baue ich den vaapi-intel-driver noch mit dem Tree vom Gwen und reporte nochmal.


    - HD Kanäle gehen ohne Probleme, abgesehen von einem gelben Streifen links und rechts, das scheint der Hintergrund vom Surface zu sein und das Bild reicht nicht ganz bis zum Rand ... beim Starten sieht man einmal vollflächig ping, dann vollflächig gelb und dann das Bild mit gelben Rand
    - SD Kanäle gehen mit diesem Setup nicht:


    - das Bild flackert etwa eine halbe Sekunde (vor - zurück - vor - zurück) und dann ist der VDR Prozeß wech ... Logfile gibt es auf hier http://pastebin.com/cpk53R8n


    Schöne Grüße,


    Space

  • So, wie weiter oben schon geschrieben gibt es was was man durchprobieren kann und für die Entwicklung helfen würde. Es geht drum wie die Frames/Fields zum Videobild zusammengebaut werden. Wenn's nicht läuft springt das Bild sehr komisch hin und her ...


    Hierbei kamen Antti mit seinem Haswell NUC und ich mit dem BayTrail-D J1800 zu komplett umgekehrten Ergebnissen. Es geht im gepatcheten SoftHDDevice um die Datei "video.c" dort die Zeilen 4099 & 4106.


    Bei Antti laufen die Werte:


    Code
    decoder->SecondFieldHistory[2] and decoder->FirstFieldHistory[0]


    perfekt, daher sind sie default, bei mir dagegen:


    Code
    decoder->SecondFieldHistory[1] and decoder->FirstFieldHistory[2]


    Der Patch dazu sieht bei mir so aus:



    Meine Testreihe im Anhang, wäre Interessant was bei Euch rauskommt.


    Auch wäre 50Hz Ausgabe zum Test sehr wichtig, 60Hz funktioniert gar nicht gut ...


    Regards
    fnu

    Dateien

    HowTo: APT pinning

  • Mit dem aktuellen Tree von Gwen gibt es direkt einen Segfault (auch bei HD / 720p) - siehe http://pastebin.com/Cp5vCfeN


    Code
    [	9.303014] vdr[3897]: segfault at 14 ip 00007fcbd6f00f5b sp 00007fcbd5e5fa30 error 4 in i965_drv_video.so[7fcbd6ecb000+16c000]


    Gruß,


    Space

  • Hi,


    mit den Frame-Orders werde ich mal testen. Aber beim ich habe ja den Fehler, daß er wohl beim Copy auf die Nase fällt:


    Code
    video/glx: vaCopySurfaceGLX failed


    Gruß,


    Space

  • henfri


    Ich teste unter 14.04 und nein noch keine nutzbaren Pakete, da wären wir ja schon kurz vor stable ...


    Space


    Da wirst Du vmtl. nicht umhin kommen "gdb" anzuwerfen und einen "backtrace" zu erzeugen.



    Aber nicht funktionierende FrameOrder Kombinationen führen hier problemlos zu segfaults ...


    Regards
    fnu

    HowTo: APT pinning

  • Ich habe jetzt noch mit den staging-Branches von libva und libva-intel-driver getestet ... Läuft ohne den VPP Patch sehr rund, mit stürzt es aber auch bei HD/720p Kanälen ab ...


    Code
    vdr[3903]: segfault at ffffffff00010066 ip 00007f6e540fc9a1 sp 00007f6e4f0148b0 error 5 in i965_drv_video.so[7f6e540ab000+174000]


    Gruß,


    Space

  • Hmm, ich habe die neueren Versionen von libva & intel-driver (cherry-pick) aktuell am laufen, funktionieren wie die etwas älteren. Der Sound bei 1080i ist immer noch async, aber das löst sich schon irgendwann ...


    Du startest vdr-plugin-softhddevice schon mit etwa diesen Optionen?


    Code
    -d :0.0 -f -g 1920x1080+0+0 -v va-api


    Regards
    fnu

    HowTo: APT pinning

  • Hier mal der Backtrace ...



    Gruß,


    Space

  • Hi fnu,


    ich nutze va-api-glx, weil das die Empfehlung von johns war ...


    Code
    --plugin=softhddevice -d :0.0  -v va-api-glx  -a hw:0,0  -x  -f  -s


    Gruß,


    Space

  • Fortschritt!!! Im Laufe des Testens hatte ich wohl mal folgende Option in der /etc/conf.d/vdr.softhddevice auskommentiert gehabt ... Shame on me ...


    SOFTHDDEVICE_WORKAROUNDS="no-mpeg-hw-decoder"


    Jetzt läuft es zitternderweise, stürzt aber zumindest nicht mehr ab ... Dann kann ich ja mal mit der Frame-Order spielen.


    Gruß,


    Space

  • So, gleich ist Schluß für heute, aber eins ist seltsam ... es scheint auch noch vom Sender abzuhängen ... mit den Werte 1,0 und 2,1 flackert es auf 576i nicht mehr, die Laufschrift auf N24 sieht aber immer noch nicht prickelnd aus ... dafür flackert dann ServusTV (1080i) wie Hulle. Nehme ich hingegen 1,2 flackert ServusTV nicht mehr, dafür N24 wie sonstwas ...


    Kann das evtl. mit dem Format 576i vs. 1080i oder mit no_mpeg_hw_decoder vs. hw_decoder für H.264 zusammenhängen? Oder sendet ServusTV in anderer Reihenfolge? Habe hier ein altes Posting gefunden:


    Warum geht ServusTV HD bei mir nicht mt dem xine-plugin? GT520 Problem?


    Gruß und gute Nacht,


    Space

  • ich nutze va-api-glx, weil das die Empfehlung von johns war ...

    Das ist aber in diesem Fall falsch. Richtig, johns hat für den reinen VA-API Betrieb, also max. Bob als Deinterlacer, "va-api-glx" empfohlen, das ist aber eine andere Baustelle.


    Der Patch von Antti erweitert aber die normale "VA-API" Funktion um "VPP" und spricht auch die entsprechenden GPU/Treiber Logiken an, der korrekte Schalter ist mit Patch daher "-v va-api".


    Ich bin ja nun nicht als die Entwickler Koriphäe bekannt, aber selbst ich habe es ohne "Rocket Science" hinbekommen, das Ding auf meinem ASRock Q1800M zum laufen zu bekommen. Einfach weil ich auch zugehört habe was ich benötige, was ich tun soll, Eigeninitiative ist dann beim Debug hilfreich ... 8o


    Regards
    fnu

    HowTo: APT pinning

  • Moin Zusammen,


    kurze Zusammenfassung von meiner Seite. Prinzipiell läuft es bei mir nun mit git-Master von libva, libva-intel-driver und softhddevice + Patch von Antti.
    Meine noch bestehenden Probleme sind:


    - die Frame-Orders musste ich auf eine der beiden folgenden Varianten stellen, damit die normalen 576i Streams zitterfrei laufen:


    Code
    decoder->SecondFieldHistory[1] and decoder->FirstFieldHistory[0]
    decoder->SecondFieldHistory[2] and decoder->FirstFieldHistory[1]


    Wenn ich allerdings ServusTV anwerfe, brauche ich die folgende Frame-Order für ein zitterfreies Bild:

    Code
    decoder->SecondFieldHistory[1] and decoder->FirstFieldHistory[2]


    - wenn ich mir die Laufschrift auf N24 anschaue, bin ich mir nicht so sicher, ob wirklich der Advanced Deinterlacer am Werk ist, die ist nämlich ziemlich ausgefranst. Aber das passt auch zum Logfile:


    Code
    Sep 30 09:05:07 [vdr] video/vaapi: supports video processing_
    Sep 30 09:05:07 [vdr] video/vaapi: black surface displayed_
    Sep 30 09:05:07 [vdr] video/vaapi: interlaced 1 top-field-first 1_
    Sep 30 09:05:07 [vdr] video/vaapi: stream <-> surface size/interlace mismatch_
    Sep 30 09:05:07 [vdr] video/vaapi: can't destroy postproc context!_
    Sep 30 09:05:07 [vdr] video/vaapi: can't destroy config!_
    Sep 30 09:05:07 [vdr] video/vaapi: search format NV12 in 8 image formats_


    Bei ServusTV kommt:


    Code
    Sep 30 09:07:27 [vdr] video/vaapi: VaapiCreateSurfaces: 1920x1080 * 27_
    Sep 30 09:07:27 [vdr] video/vaapi: noise reduction supported_
    Sep 30 09:07:27 [vdr] video/vaapi: 0,00 - 1,00 ++ 0,03 = 0,50_
    Sep 30 09:07:27 [vdr] video/vaapi: deinterlacing supported_
    Sep 30 09:07:27 [vdr] video/vaapi: bob deinterlace supported_
    Sep 30 09:07:27 [vdr] video/vaapi: motion adaptive deinterlace supported_


    Fnu, kommt bei Dir die Ausgabe bzgl. der Deinterlacer auch bei den normalen 576i Streams? Ich vermute: ja :)


    Gruß,


    Space


    EDIT: PS: es macht übrigens keinen Unterschied, ob va-api-glx oder va-api verwendet wird, die Meldungen sind bei mir im Logfile gleich ... fnu: hast Du mal va-api-glx probiert? Vielleicht geht das VPP ja trotzdem und die Sync-Probleme sind auch weg.

  • "va-api-glx" ist bei mir eh nie gelaufen, der VDR segfaulte'd immer direkt beim Start.


    Aktuell habe ich den GLX support gar nicht drin, weil ich mich auf das VPP Thema konzentrieren will und mich nicht um 2 Baustellen gleichzeitig bzw. Seiteneffekte kümmern möchte.


    Wenn ich auf N24 schalte, sehen die nach "video" & "vaapi" gefilterten Informationen so aus:



    Deinterlacing funktioniert bei mir, habe eben nochmal N24 abgefilmt:


    http://www.auktion.hostingkunde.de/download/IMG_1411.MOV


    Regards
    fnu

    HowTo: APT pinning

  • Ja das mit dem testen ist nicht so einfach, solange es bei intel noch das Version Chaos gibt.
    Erstmal die GIT Version von libva und libva-intel zum laufen zubringen. Damit kämpfe ich noch.


    Der Ton Asynchron bei Servus TV HD ist warscheinlich das gleiche Problem wie in der ungepatchten Version.
    Die Ausgabe über libva macht Intel aus irgendwelchen Gründen keine v-blank Synchronisation.
    Dies sollte alle Sender betreffen die H264 senden, mit SD Auflösung auch Dr. Dish /heißt nun anders).


    Also "-v va-api" für VPP Tests.


    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


  • - HD Kanäle gehen ohne Probleme, abgesehen von einem gelben Streifen links und rechts, das scheint der Hintergrund vom Surface zu sein und das Bild reicht nicht ganz bis zum Rand ... beim Starten sieht man einmal vollflächig ping, dann vollflächig gelb und dann das Bild mit gelben Rand
    - SD Kanäle gehen mit diesem Setup nicht:i


    - das Bild flackert etwa eine halbe Sekunde (vor - zurück - vor - zurück) und dann ist der VDR Prozeß wech ... Logfile gibt es auf hier http://pastebin.com/cpk53R8n


    Die gelben Ränder sind Absicht um Fehler bei der Skalierung zuerkennen. Sollten aber im Moment nur bei "-v va-api-glx" zusehen sein.
    Für VPP Tests bitte "-v va-api" nehmen.


    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

Jetzt mitmachen!

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