Softhddevice vaapi support

  • Hi Johns,
    ich wollte einfach mal fragen wie der aktuelle Stand bezüglich softhddevice und vaapi Support ist.
    Laut vdr-developer.org gibt es Probleme und darum soll vaapi support komplett aus softhddevice entfernt werden, ist dies noch richtig?

    Bisher bin ich mit meiner NVidia GT630 sehr zufrieden aber ich kann mir auch sehr gut ein System nur mit Core-I vorstellen, natürlich nur wenn es genauso gut läuft.

    Ein kurzer Abriß bezüglich der Hintergründe wäre auch schön. Liegt das Problem an Intel und den Treibern oder hast du keine Zeit/Lust vaapi weiter zu pflegen oder woran liegt es?

    Danke für deine Mühe.

    Gruß
    Martin

  • Es liegt hauptsächlich an Intel. Die Treiber sind der letzte Scheiss.
    GPUs die seit Jahren auf dem Markt sind, werden noch nicht zu 100% unterstützt.
    Die Treiber sind extrem instabil. Reaktion auf Fehlerberichte gleich Null. usw.

    Nach Jahren gibts dann endliche eine API (VPP) die dann die Hardwarefähigkeiten unterstützt,
    aber die Videotreiber können auch nicht mehr als die alte Version (Stand vor Weihnachten).

    Ich hatte mit der Unterstützung der neuen API angefangen, aber nachdem es nicht weiter ging aufgehört.

    Insgesamt fehlen viele Features der VDPAU Ausgabe in der VAAPI Version.

    Die entacheidenen Probleme bei Intel sind.

    • ruckelfreie Wiedergabe
    • 24 Hz für VDR nicht wichtig
    • Deinterlacer

    Hin und wieder funktionierte VAAPI richtig gut und könnte NVidia gefährlich werden.
    Bevor ich mir Sachen wie Raspberry Pi usw. antue, würde ich lieber zu Intel/AMD greifen.

    XBMC hatte auch die Schnauze voll und hat nun auf Software Deinterlacer umgestellt.
    Damit hatte ich auch schon angefangen, yadif Patch gabs hier im Forum.
    Leider brauche ich dafür ein komplett anderes Ausgabekonzept mit mehreren Threads,
    was mir zu viel Arbeit ist.

    Da die aktuelle VAAPI Ausgabe nicht 100% sauber läuft, unterstütze ich die nicht.
    Da keine Besserung der Treibersituation in Sicht ist, plane ich auch nicht weiter daran
    zuarbeiten. Ich entferne nun VAAPI nicht aus dem Code und werde auch kleinere
    Fehler beheben. Aber es ist weit von dem was ich als Gut empfinde entfernt.

    Wenn jemand Lust hat, dies zu übernehmen, werde ich die Patche gerne aufnehmen
    und auch helfen.

    Als Alternative könntest du dir AMD/VDPAU ansehen.

    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

  • Was das deinterlacen angeht haben die OpenELEC-Entwickler wohl jetzt einen gangbaren Weg gefunden. Ich habe mit einem Entwickler gesprochen. Sie lassen die CPU mit yadif das Deinterlacing machen und bekommen ein sehr gutes Bild. Yadif ist ja wohl so zwischen temporal und temporal spatial einzuordnen. Der Entwickler hat selbst ein System mit einem Celeron 1007 im Wohnzimmer. Dieser Celeron ist ja so ziemlich lowest end. Trotzdem hat er "nur" 50% CPU-Last. Weniger wäre sicherlich besser, aber richtig schlimm ist das ja auch nicht.

    Wir sind beide sehr neugierig wie sich der DN2820FYK schlagen würde. 130 EUR ist ja ein Schnäppchen. Die CPU hat die doppelte Taktfrequenz, aber der GPU-Takt ist etwas niedriger. Zumindest die CPU-Last würde sich deutlich verringern.

    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Der Celeron 1007 ist eine Billigvariante der Core-I Linie, während der gleichnamige Celeron im NUC DN2820FYK Atomtechnik ist. Die Marketingabteilung hat hier mal wieder ganze Arbeit geleistet. Ich tippe auf eine CPU Leistung auf Tabletniveau. VG Kurt

    [font='Verdana, sans-serif'][size=8]vdr hd: Core i3 2100T, 2GB, Intel DH67BL, Tevii S480, Sandisk G25 SSD, 2TB HDD, Intel CIR, Harmony 300, MSI G210, yavdr 0.5

  • Ich hatte auch bei OpenELEC schon vermutet, dass das ein umgelabelter ATOM ist. Die Frage ist, wie wichtig für yadif die Features des Core-Is sind und ob die doppelte Takt-Frequenz eventuelle Defizite ausgleichen kann. Wird wohl die Zeit zeigen müssen.

    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Der "Celeron 1007" ist aus der IVY Bridge Familie. Und kann von der Hardware alles was man braucht.
    Die Treiber sollen angeblich auch alle Hardwarefeature unterstützen und ist die am Besten von VA-API unterstützte Intel GPU.

    Das Problem bei meinen Letzten Tests (vor 1 Jahr) war, daß der Transfer der Daten von der GPU zur CPU fast die Gesamte zur Verfügung stehende Zeit verbrauchte. Beim schnellen überfliegen des XBMC Threads, haben sie das mit SSE4 optimiert, was aber unlogisch ist. Ein Speichertransfer ist schon seit Jahrzehnten optimiert. Ich vermute da ist etwas durcheinander gebracht worden. Ein yadif in SSE4 könnte etwas bringen.

    Wer testen will, die aktuelle GIT Version sollte laufen, Software Bob und Software Spatial stehen zur Verfügung.

    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

  • Hallo,

    da die Hardware vorhanden ist, würde ich gerne softhddevice gerne einmal mit VAAPI (Haswell) testen.
    Installiert ist Ubuntu-Server und das yavdr-ppa (stable) ist eingebunden.

    Nun bin ich nicht sicher, welche Pakete ich brauche. Angeboten/installiert werden:

    Kann mir jemand einen Tipp geben, welche Version empfehlenswert ist?
    Softhddevice muss ich wohl mit vaapi-support selbst bauen, das hab ich schon gesehen.

    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

  • Moin,

    noch ein Hinweis zur Intel NUC Hardware:
    Ivy Bridge Celeron 847 -> http://geizhals.at/intel-nuc-boar…ke-a902562.html

    Munter bleiben, Rossi

    Klick für meine Hardware

    vdr1: Odroid N2+ 4GB | VDR*ELEC CE21-ng 64GB eMMC | Video über USB: 4TB SATA Rec (XFS) + 8TB SATA Archiv (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr2: Odroid N2+ 4GB | VDR*ELEC CE22-no 256GB eMMC | Video: 1TB microSD (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr3: HP ProDesk 400 G3 SFF (i3) | NVidia Quadro T400 | 2x 8GB | System: Ubuntu 24.02 LTS, yavdr ansible (vdr 2.7.3) auf 30GB mSATA SSD | Video: 3TB SATA (XFS) | 1x WinTV dualHD | IRMP RP2040 KBD

    TV: Philips 55OLED805

  • Hallo Martin,

    ja, nun.. Bei den Kernel-Paketen darf man ja auch ruhig eine neuere Version installieren und ich gehe mal davon aus, dass mir die Paketverwaltung auch nix anbieten würde, was nicht kompatibel zum Kernel ist?!

    Ich hab derweil softhddevice mit vaapi kompiliert. So geht's:

    Code
    2063  cd ~
     2064  mkdir softhddevice
     2065  cd softhddevice/
     2066  apt-get build-dep vdr-plugin-softhddevice
     2067  apt-get source vdr-plugin-softhddevice
     2071  sed -i s/#VAAPI/VAAPI/ ./vdr-plugin-softhddevice-0.6.1rc1.git20140114.1359/Makefile
     2072  dpkg-buildpackage -us -uc -nc
     2075  cd vdr-plugin-softhddevice-0.6.1rc1.git20140114.1359/
     2076  dpkg-buildpackage -us -uc -nc

    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

  • Hm...
    das wird so noch nix

    Code
    /usr/bin/vdr -v /srv/vdr/video.00 -c /var/lib/vdr -L /usr/lib/vdr/plugins -P"softhddevice -v va-api"  -P"live --port=8008 --ip=0.0.0.0"
    INFO: validating live server ip '0.0.0.0'
    libva: VA-API version 0.32.0
    libva: va_getDriverName() returns 0
    libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
    libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
    libva: va_openDriver() returns -1

    Da werd ich mal recherchieren müssen.

    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

  • Hast du auch den Intel VA-API Treiber installiert?

    x11-libs/libva-intel-driver

    Außerdem sieht mir Version 0.32 falsch aus, aktuell ist libva 1.2.1, wie die sich auf die API Version umrechnet kann ich im Moment nicht prüfen, habe aber 0.33 oder sogar 0,34 in der Errinnerung, muß aber nicht sein.

    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

  • Hallo Johns,

    ich denke, unter Ubuntu ist das Äquivalent
    dpkg -l |grep libva-intel-vaapi-driver
    ii libva-intel-vaapi-driver 1.0.15-1ubuntu2 VAAPI driver for Intel G45 & HD Graphics family

    Wenn ich mir dies ansehe https://launchpad.net/ubuntu/+source/intel-vaapi-driver dann zeigt sich, dass diese Version von 2012 ist.
    Für aktuellere Ubuntu-Versionen gibt es neuere Versionen.

    Ich mache mal einen eigenen Thread für dieses Thema auf (hier).

    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

    Einmal editiert, zuletzt von henfri (21. Januar 2014 um 20:53)

  • Hallo,

    ich versuche mal die OS-Fragen im Nachbar-Thread (s.o.) und die softhddevice-Fragen hier zu posten.
    Was hat das hier zu bedeuten?

    Code
    Jan 22 20:16:12 homeserver vdr: [26371] ERROR: TS packet not accepted in Transfer Mode
    Jan 22 20:16:12 homeserver vdr: [26371] [softhddev]Clear:
    Jan 22 20:16:12 homeserver vdr: audio: flush out of ring buffers
    Jan 22 20:16:12 homeserver vdr: [26371] ERROR: TS packet not accepted in Transfer Mode
    Jan 22 20:16:12 homeserver vdr: [26371] [softhddev]Clear:
    Jan 22 20:16:12 homeserver vdr: audio: flush out of ring buffers


    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

  • Ich vermute mal, daß keine Hardwaredekodierung erfolgt und dadurch die Puffer volllaufen.

    Code
    vdr: [26371] ERROR: TS packet not accepted in Transfer Mode

    Kommt wenn das Plugin keine Daten mehr annimmt. Der Clear sollte aber eigentlich diese Puffer löschen, damit der Fehler sich selbst behebt.

    Ansonsten hatten die Intel GPU die Angewohnheit sich aufzuhängen.

    Such mal nach "video/vaapi: gpu hung" im Log.

    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

  • Hallo Johns,

    es funktioniert jetzt alles bei mir.
    Der X-Server läuft mit 50Hz, softhddevice gibt Bild und Ton auf dem selbst gestarteten x-server (option -x) und die o.g. Fehler im Log sind auch nicht mehr da.

    Die CPU-Last ist gering -unter 10%.
    Das Bild ist meist sehr gut. Manchmal fallen mir aber folgende Mängel auf:
    - Das Bild zittert etwas nach oben und unten ( --> SoftHDDevice - Bild zittert und Bildqualität ist noch nicht optimal ??) Skip-Lines oben/unten und rechts/links habe ich daraufhin auf 2 gestellt, auch wenn mir nicht so passt, dass dann skaliert werden muss, obwohl eigentlich nicht skaliert werden müsste... Trotzdem zittert es. Man sieht das ganz gut bei Einblendungen wie z.B. bei Wer wird Millionär. Da zittert der Rand der Box. Die Bildverbesserer am TV habe ich nach meinm Verständnis auch abgestellt
    - Bei Kameraschwenks ruckelt es -ganz selten
    -Der Ton wird mit der Zeit asynchron zum Bild

    Sind die Einstellungen so die, die du empfehlen würdest?

    Ich hatte eigentlich weniger erwartet, nach dem, was du oben geschrieben hast. Allerdings ist meine Erfahrung auch erst eine Stunde alt.
    Danke für deine Arbeit an dem Plugin!

    Zitat

    XBMC hatte auch die Schnauze voll und hat nun auf Software Deinterlacer umgestellt.
    Damit hatte ich auch schon angefangen, yadif Patch gabs hier im Forum.
    Leider brauche ich dafür ein komplett anderes Ausgabekonzept mit mehreren Threads,
    was mir zu viel Arbeit ist.


    Das ist ja laut Gerald auch die Lösung die man unter xbmc verwendet.
    Jetzt widersprechen sich die beiden Sätze doch, oder? Ist der Patch nutzbar, oder ist es nur ein Anfang und dir war es dann zu viel Arbeit und du hast es gelassen?


    Gruß,
    Hendrik

    yavdr 0.5 auf M3N78-EM, Cine S2

    2 Mal editiert, zuletzt von henfri (24. Januar 2014 um 22:04)

  • Das zittern bei Bob ist ein Fehler im VA-API Treiber, in alten Versionen ist er noch nicht drin.
    In neueren sollte er eigentlich behoben sein.

    Code
    https://bugs.freedesktop.org/show_bug.cgi?id=54608

    Kann aber sein, daß es nur in VPP richtig funktioniert.

    Wenn du Microruckler hast, dann nimm "VA-API-GLX" zur Ausgabe, da ein Bug in VA-API in der normalen Ausgabe ist.

    YADIF gab es als Assembler Version, die einfach als Ersatz für den Bob Software Deinterlacer verwendet wurde.
    Du kannst Software Bob nehmen, dann sollte das Zittern auch weg sein.
    Durch den Patch habe ich gemerkt, daß das aktuelle Konzept mit nur einen Ausgabethread, mit Software Deinterlacer nicht so gut ist.

    Das Hauptproblem war in VaapiBob die memcpy zwischen vaMapBuffer und vaUnmapBuffer.
    Die brauchten schon mehrere ms fast die kompletten 20ms für eine Halbbild.

    Edit:
    In https://github.com/fritsch/xbmc/b…Video/VAAPI.cpp ist die XBMC Lösung.
    Die Funktion "m_dllSSE4.copy_frame" soll besser sein als ein memcpy.
    Der Source ist in https://github.com/fritsch/xbmc/b…4/CopyFrame.cpp

    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

    Einmal editiert, zuletzt von johns (25. Januar 2014 um 15:52)

Jetzt mitmachen!

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