HD-VDR mit Intel HD Graphics - Testbericht zu vaapi

  • Gelöscht.


    Bin jetzt erfolgreich auf den staging Branch gehüpft.
    a) fehlte nur ein "git pull" für die libva
    b) hatte ich intel-driver 'vergessen'.

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

    Einmal editiert, zuletzt von cmsa ()

  • Lösche auch die Header Files. /usr/include/va oder /usr/local/include/va


    lg


    ebsi

    HW HD-VDR-1 : Foxconn H67S MiniITX, Intel G620T, 1x 80GB Intel Postvile X25 SSD, anysee E7 PS2 CI DVB-S2 intern, Gehäuse JCP MI 101, 2 GB DDR3 Ram.
    HW HD-VDR-2 : Zotac H61 MiniITX , Intel G440, 1x 320GB HDD, TeVII 470, Gehäuse Silverstone Sugo SG05, 4 GB DDR3 Ram.
    SW HD-VDR : archlinux 64bit mit archvdr Paketen ( http://archvdr.sf.net ) und VAAPI. Kernel 3.1.x, Rest bleeding edge :D
    xine-lib-1.2 VAAPI : https://github.com/huceke/xine-lib-vaapi/commits/vaapi + vdr-xine als Frontend

  • Bin jetzt erfolgreich auf den staging Branch gehüpft.


    a) fehlte nur ein "git pull" für die libva
    b) hatte ich intel-driver 'vergessen'.
    c) Natürlich die schon erwähnten "rm -r /usr/local/include" + "rm /usr/lib/libva*"


    Trotzdem danke...

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

    Einmal editiert, zuletzt von cmsa ()

  • Der staging Branch ist echt atemberaubend, wenn ich es richtig gemacht habe, wundert mich die gegenüber vaapi-ext veränderte Qualität nicht so recht.


    Code
    Feb 27 09:15:17 i3v vdr: postproc: video postprocessor available
    Feb 27 09:15:17 i3v vdr: postproc returned 2 filters
    Feb 27 09:15:17 i3v vdr: postproc returned 2 interlacers
    Feb 27 09:15:17 i3v vdr: postproc filter 0 is noise reduction
    Feb 27 09:15:17 i3v vdr: postproc filter 1 is deinterlacer
    Feb 27 09:15:17 i3v vdr: postproc deinterlacer 0 is bob
    Feb 27 09:15:17 i3v vdr: postproc deinterlacer 1 is weave


    Ich habe wie folgt codiert:


    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

  • Wenn du etwas einfacher herumspielen willst,
    anbei mein vaapi Testprogramm, mit #if Teil fliegt vaapi auf die Schnautze mit Staging Branch sagt er wenigstens das er kein Subpicture hat.


    Code
    gcc -ggdb -o vaapi-killer chaos/vaapi.c `pkg-config --libs libva-x11 libva-glx libva`


    Solange man noch keine Advanced Interlacer auswählen kann, lohnt sich das herumspielen noch nicht.


    Johns

    Dateien

    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

  • Als interessierter Laie würde ich gerne etwas zur Theorie der Bildaufbereitung erfahren. Es geht um den in softhddevice erwähnten Known bugs VA-API 1080i does no v-sync, wie wir es auch in diesem Beitrag kurz andiskutiert hatten.


    Lässt es sich kurz erläutern, welche algorithmische Mechanik hinter diesem syncing steht?


    Ich meine nach einem Blick auf den softhddevice Code, dass der Videostrom am Audiostrom ausgerichtet wird.
    Vielleicht, weil man Video unbemerkbarer verzögern und beschleunigen kann?


    Wenn diese Beobachtung so richtig ist, verstehe ich nicht, warum man überhaupt eine aktive Aktion dafür vorsehen muss.
    Der Beispielcode aus putsurface legt doch nahe, dass man die Surfaces einfach bei Verfügbarkeit übergibt, und sich die Hardware um den Rest kümmert.
    Man kann beispielsweise dort einfach mit 20ms framerate übergeben, obwohl mit 16,6ms dargestellt werden muss.


    Also Fragen wären:
    - Lässt sich dieser sync Vorgang in Software eingängig erklären?
    - Synct man nicht grundsätzlich am qualitativ höchstwertigem und schnellstem Datenstrom?
    - Wo kommt der Darstellungstakt in softhddevice her, welchen Codeteil im softhddevice sollte man sich genauer ansehen?
    - Können frame drops und duplicates in die Hardware verlagert werden? Warum macht man 'manuell' drops und dups?
    - Literaturlink?

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

  • Als interessierter Laie würde ich gerne etwas zur Theorie der Bildaufbereitung erfahren. Es geht um den in softhddevice erwähnten Known bugs VA-API 1080i does no v-sync, wie wir es auch in diesem Beitrag kurz andiskutiert hatten.


    Lässt es sich kurz erläutern, welche algorithmische Mechanik hinter diesem syncing steht?


    Passt nicht ganz in diesen Thread, wäre besser einen Eigenen aufzumachen.


    Es sind hier zwei Verschieden Syncs.

    • v-sync
      Vertical Sync, hier wird die Wiedergabe mit dem Vertical Sync synchronisiert. Siehe link vom rechenknechtler.
    • lipsync
      Hier wird der Ton und Bild synchronisert. Damit die Sprache Lippen Synchron ist. http://en.wikipedia.org/wiki/Lipsync


    Zurück zu VA-API. Hier sollte vaPutSurface sich um den v-sync kümmern.
    Also man ruft einfach vaPutSurface, wenn eine Frame noch angezeigt wird, dann warte diese Funktion bis die Nächste angezeigt wird.
    Siehe Beispiel aus libva "putsurface" bzw. "test/putsurface/" für den Source.
    Wenn man den Bildschirm mit 50 Hz laufen lässt, dann braucht vaPutSurface im Schnitt 20ms und mit 60 Hz dann 16.6ms.


    Mein Problem ist, das dies bei allen Auflösungen bis auf 1080i klappt.
    Ich wollte ein Testprogramm schreiben um diesen Bug bei VA-API zumelden, aber leider klappt schon das obige Testprogramm nicht.
    Dieses habe ich versucht auf der VA-API Maillingliste zuposten, leider scheint aber dort der Maintainer der Maillingliste zuschlafen, wie auch alle Anderen die zu VA-API gehören.


    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

  • Zurück zu VA-API. Hier sollte vaPutSurface sich um den v-sync kümmern.
    Also man ruft einfach vaPutSurface, wenn eine Frame noch angezeigt wird, dann warte diese Funktion bis die Nächste angezeigt wird.
    Siehe Beispiel aus libva "putsurface" bzw. "test/putsurface/" für den Source.
    Wenn man den Bildschirm mit 50 Hz laufen lässt, dann braucht vaPutSurface im Schnitt 20ms und mit 60 Hz dann 16.6ms.

    Das ist genau mein Punkt.
    In putsurface_common.c habe ich gesehen

    Code
    187: while (1) {
    209: 	vaPutSurface();
    238: 	sleep(interFrameGap);
    367: }


    Hier kommt vaPutSurface anscheinend asynchron zurück.
    Wo ist der Unterschied, hast Du die Surface bei der Erzeugung als synchron parametrisiert?

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

  • Man kann nichts konfigurieren. Leider sind die Anleitungen auch sehr mager.


    Der sleep ist unnötig, wenn man syncron zur Bildschirmfrequenz arbeitet.
    Aber für z.b. für 25 Hz oder 12.5 Hz kann man ihn verwenden.
    Andere < Bildschirmfrequenz gehen auch, aber mit vielen Microrucklern,
    weil der Bildwechsel nur alle 20ms (50 Hz) erfolgen kann.


    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 würde noch schnell branch vaapi-ext bzw. staging holen.
    Weil in Kürze gibt es einen Update der die Advanced Deinterlacer für die
    normalen Routinen entfernt.
    Wie gezeigt gibts aber die Advanced Deinterlacer für die neuen Routinen noch
    gar nicht.


    Warum man etwas ausbaut was funktioniert, daß verstehen nur Intel Ingenieure.


    *sich hier Wutanfall und viele Beleidigungen vorstellen*


    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

  • Morgen,


    ich denke man möchte so weitere Fragen zu dem Thema (die ja so nicht beantwortet werden) erstmal komplett zu vermeiden. Das wirft uns ja um Jahre zurück wenn da jetzt erstmal garnicht mehr weitergemacht wird. Traurig!


    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Weil in Kürze gibt es einen Update der die Advanced Deinterlacer für die
    normalen Routinen entfernt.


    Wie kommst du darauf? Meinst du das hier?

    Zitat von Gwenole Beauchesne

    Avoid advanced deinterlacing kernels as they allocate extra temporary surfaces, which are useless for such simple tasks. i.e. display either field of an interlaced surface.

    Wie die bisherige Diskussion verstanden habe, können libva/i965 sowieso nur bob/weave. Was hat sich denn da verschlechtert?
    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


  • Wie die bisherige Diskussion verstanden habe, können libva/i965 sowieso nur bob/weave. Was hat sich denn da verschlechtert?

    Wenn der staging Branch verwendet wird, kann man sehen, wie sich Intel die Programmierung der Videopipeline vorstellt.
    Ist ziemlich geil und tut auch schon, allerdings sind die zurückgegebenen Capabilities nur Bob und Weave.


    Verwendest Du den ext Branch, kann man m.E. gar nichts einstellen, der Default für Interlaced sieht nicht nach Bob aus, muß also MotionAdaptive oder MotionCompensated sein...

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)


  • Wie kommst du darauf? Meinst du das hier?

    Wie die bisherige Diskussion verstanden habe, können libva/i965 sowieso nur bob/weave. Was hat sich denn da verschlechtert?


    Genau diesen Patch meinte ich.
    In den Branch vaapi-ext und staging haben die VAAPI Entwickler neue Deinterlacer eingebaut, die mehr können. Ivy und Sandy Bridge klappt es gut. Mit dem Vorgänger Ironlake nicht so gut.
    Im Prinzip ist der Patch schon richtig, wenn man Bob anfordert will man Bob, aber leider fehlt der Rest.


    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

  • Da steht doch aber mit keinem Wort: "Wir machen Advanced Deinterlacing" weg.


    "Vermeide die Verwendung der Advanced Deinterlacing Kernel (bei Bob), denn sie verbrauchen unnütze zusätzliche Surfaces."

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

  • Das stimmt schon. Wenn es aber nur Bob als Deinterlacer gibt (der im Moment mehr als Bob macht) und keinen Anderen, wie will man dann die Advanced Deinterlacer noch verwenden?


    Man kann nur Weave oder Bob wählen!


    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

  • Im Moment ist absolut nicht klar welchen branch man bei VA-API nehmen. Ein paar fixes in dem branch ein paar in einem anderen. Die Entwicklung sieht dort sehr planlos aus.

    HW HD-VDR-1 : Foxconn H67S MiniITX, Intel G620T, 1x 80GB Intel Postvile X25 SSD, anysee E7 PS2 CI DVB-S2 intern, Gehäuse JCP MI 101, 2 GB DDR3 Ram.
    HW HD-VDR-2 : Zotac H61 MiniITX , Intel G440, 1x 320GB HDD, TeVII 470, Gehäuse Silverstone Sugo SG05, 4 GB DDR3 Ram.
    SW HD-VDR : archlinux 64bit mit archvdr Paketen ( http://archvdr.sf.net ) und VAAPI. Kernel 3.1.x, Rest bleeding edge :D
    xine-lib-1.2 VAAPI : https://github.com/huceke/xine-lib-vaapi/commits/vaapi + vdr-xine als Frontend

  • Für den ein oder anderen interessant, ich weiß es nicht, aber nachdem ich "Render Standby" bei mir im BIOS fest deaktiviert habe läuft es richtig flüssig mit VAAPI. Mit aktivierten "Render Standby" gab es Ruckler mit allen VAAPI-Kompillierten Programmen (VDR/xine-lib, mplayer, ...).

    ITX VDR // LiMServer.mts.lan
    Gentoo • LianLi PC-Q08 • Zotac H67 ITX • Intel Core i3 2100 • 8GB RAM • TECHNOTREND TT-S2-4100
    Storage: 80GB System • 2 x 1TB Raid 0 Daten • 2 x 2TB Raid 0 Daten • 500GB Backup

  • Der Kernel in git://people.freedesktop.org/~danvet/drm-intel ist auf 3.4.0-rc2+ gesprungen.
    Ich verwende den Branch drm-intel-next-queued.
    Der intel-driver (branch vaapi-ext) muss neu übersetzt werden.

    Asus M3N78-VM/Athlon II X2 250, Mystique Satix S2 V2, Atric IR, yaVDR 0.5 (prod)

Jetzt mitmachen!

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