softhddevice - Software VDPAU/VA-API/CPU Decoder und Ausgabe Plugin

  • Hallo Johns,


    steht bei Dir das Problem CPU Last bei MP3 Wiedergabe noch auf dem Zettel?
    Mir ist es gerade mal wieder aufgefallen, dass da ein Kern immer am Anschlag ist.


    In dem Zusammenhang hätte ich noch einen Wunsch. :)
    Früher mit der FF war es möglich, gleichzeitig zum Live Bild MP3 zu hören. Wäre das mit Ausgabe über softhddevice auch möglich?
    Derzeit wird ja nur ein Standbild angezeigt.


    Ansonsten, großes Lob! Das Plugin ist wirklich super.

    Gruss Björn.


    SilverGreen-Skin

  • steht bei Dir das Problem CPU Last bei MP3 Wiedergabe noch auf dem Zettel?

    das hatte ich (&andere) auch und ist (hier) mit Revision c17af0e9: Fix bug: 100% cpu use with plugins like mp3.
    behoben worden .. (?)


    Zitat

    Ansonsten, großes Lob! Das Plugin ist wirklich super.


    ja! und wie!


    ciax


    //edit1: bzgl. "Bug #905": mit Revision 7b570c50 geht der kanalwechsel (über LIRC/RC-numpad) ganz normal ...


    //edit2: mit meinen früher genannten Makefileoptionen driftet (hier) bei zB. ORF der ton (lippensync) auseinander und wieder zusammen ... eine art "jitter", das man (für A+V) bei DEBUG eh im log sieht.

    Lascala LC17 - tribute to viking ;o) + atric IR / SoC ASUS J3455M-E / OctopusNet S4 / yavdr ubuntu jammy / output: osd2web + kivy-osd2web / branch 'python3' via 6.4" TFT & sat>ip DVB-S/S2 via FullHD / NVidia GT1030 passiv

    5 Mal editiert, zuletzt von ciax ()

  • Einen sehr akademischen und unwichtigen Wunsch hätte ich noch. Es wäre schön, wenn man das DISPLAY nicht nur per Kommandozeile sondern auch als Argument beim svdp-Befehl ATTA mitgeben könnte. Zwar ist die DISPLAY-Variable bei den meisten Distributionen ":0", aber das ist nicht fix. Wenn man den X-Server abschießt und der dm einen neuen startet, dann kann es passieren, das hochgezählt wird. Wenn man wie ich den vdr vor dem X-Server startet, dann steht einfach noch nicht absolut fest auf welches DISPLAY es geht und ob es so bleibt.


    Außerdem könnte man auf die Art ganz einfach zwischen TV, einem Beamer, oder einem kleinen TFT hin und her schalten.


    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

    Einmal editiert, zuletzt von gda ()

  • das hatte ich (&andere) auch und ist (hier) mit Revision c17af0e9: Fix bug: 100% cpu use with plugins like mp3.
    behoben worden .. (?)

    komisch, ich hatte mir vorgestern den aktuellen git Stand geholt und habe das Problem immer noch.

    Gruss Björn.


    SilverGreen-Skin

  • komisch, ich hatte mir vorgestern den aktuellen git Stand geholt und habe das Problem immer noch.


    Das war Zwischenzeitlich schon mal gefixt. Dann habe ich versucht, daß mir VDR bei der Wiedergabe die Buffer nicht mehr vollknallt.
    Aber diese Funktion unterstützt VDR gar nicht, nur die Plugins, dabei ist der 100% Load wiedergekommen.


    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

  • Einen sehr akademischen und unwichtigen Wunsch hätte ich noch. Es wäre schön, wenn man das DISPLAY nicht nur per Kommandozeile sondern auch als Argument beim svdp-Befehl ATTA mitgeben könnte. Zwar ist die DISPLAY-Variable bei den meisten Distributionen ":0", aber das ist nicht fix. Wenn man den X-Server abschießt und der dm einen neuen startet, dann kann es passieren, das hochgezählt wird. Wenn man wie ich den vdr vor dem X-Server startet, dann steht einfach noch nicht absolut fest auf welches DISPLAY es geht und ob es so bleibt.


    Außerdem könnte man auf die Art ganz einfach zwischen TV, einem Beamer, oder einem kleinen TFT hin und her schalten.


    Wenn die Distributionen nichts dagegen haben, daß "ATTA" einen optionalen Parameter bekommt, dann ist das mit ein paar Zeilen erledigt.


    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

  • mit meinen früher genannten Makefileoptionen driftet (hier) bei zB. ORF der ton (lippensync) auseinander und wieder zusammen ... eine art "jitter", das man (für A+V) bei DEBUG eh im log sieht.


    Willst du damit ausdrücken es wunderbar funktioniert oder daß du ein Problem hast?


    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

  • Wenn die Distributionen nichts dagegen haben, daß "ATTA" einen optionalen Parameter bekommt, dann ist das mit ein paar Zeilen erledigt.


    Gegen einen optionalen Parameter kann ja schwerlich jemand was haben, genauso hatte ich mir das vorgestellt. Ich hatte gehofft, dass es nicht allzu schwierig ist. Danke das du dich dem Thema annimmst.


    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

  • Ich hatte seit dem Update auf libpng-1.5 immer das Problem, dass softhddevice beim "deleting plugin" (also beim herunterfahren des vdr - deshalb störte es mich auch nur wenig) in libpng.so segfaultete:

    Code
    Mar 15 11:59:52 rock kernel: vdr[27168]: segfault at 7f69c4af3508 ip 00007f69c4af3508 sp 00007f69af7f5d80 error 14 in libpng15.so.15.9.0[7f69c989b000+35000]

    Es hat etwas gedauert, bis ich softthddevice (oder libpng-1.5, denn mit 1.4 ging es ja; oder gcc -O...) als "Bösewicht" ausmachen konnte. Nach etlichem 'rumprobieren habe ich folgendes festgestellt:
    Offenbar habe etliche Programme mit libpng-1.5 Probleme, wenn sie mit -fomit-frame-pointers übersetzt werden. Je nach gcc-Version ist diese Optimierung aber in -O bzw. -O2 (und erst recht in -O3; Standard in Make.config von kls) enthalten.
    Ich habe nun die -fno-omit-frame-pointers ins softhddevice Makefile direkt nach den vdr-includes eingebaut - und die segfaults sind Vergangenheit:

    Code
    -include $(VDRDIR)/Make.config
    
    
    #für libpng-1.5
    CFLAGS   += -fno-omit-frame-pointer
    CXXFLAGS += -fno-omit-frame-pointer
    
    
    ### The version number of VDR's plugin API (taken from VDR's "config.h"):


    Gruß, Ingo

  • Willst du damit ausdrücken es wunderbar funktioniert oder daß du ein Problem hast?


    Johns

    mir ist dieser "drift" bei ORF gestern wirklich stark aufgefallen. es ist etwas störend. aus dem (DEBUG)-log müßte ich mal die genauen werte für "video speed up/slow down" und "codec/audio: drift" zum richtigen zeitpunkt ausfiltern - so hättest du etwas zum "analysieren" ;)


    das plugin ist aber trotzdem wunderbar!


    ciax

  • Es hat etwas gedauert, bis ich softthddevice (oder libpng-1.5, denn mit 1.4 ging es ja; oder gcc -O...) als "Bösewicht" ausmachen konnte. Nach etlichem 'rumprobieren habe ich folgendes festgestellt:
    Offenbar habe etliche Programme mit libpng-1.5 Probleme, wenn sie mit -fomit-frame-pointers übersetzt werden. Je nach gcc-Version ist diese Optimierung aber in -O bzw. -O2 (und erst recht in -O3; Standard in Make.config von kls) enthalten.
    Ich habe nun die -fno-omit-frame-pointers ins softhddevice Makefile direkt nach den vdr-includes eingebaut - und die segfaults sind Vergangenheit:

    interessant!


    ob meine segfaults mit zB. osdpip auch in diese richtung lösbar wären? hier knallt's immer noch mit libswscale.so (die doch aus dem ffmpeg-git stammt)

    Code
    Feb 28 10:05:33 pvr vdr: [4848] osdpip_osd thread started (pid=4787, tid=4848)
    Feb 28 10:05:33 pvr vdr: [4848] osdpip: decoder thread started (pid = 4787)
    Feb 28 10:05:33 pvr kernel: [ 7442.663834] osdpip_osd[4848]: segfault at 3c ip 00007feefb185aec sp 00007feed98fa768 error 4 in libswscale.so.
    2.1.100[7feefb179000+4a000]


    ciax

  • ciax: Du kanst ja mal den vdr mit GDB_DEBUG übersetzen: dann sind erstmal die Optimierungen abgeschaltet, und Du kannst einen Backtrace erstellen, wenn es nicht an den Optimierungen lag.


    Gruß, Ingo

  • ciax: Du kanst ja mal den vdr mit GDB_DEBUG übersetzen: dann sind erstmal die Optimierungen abgeschaltet, und Du kannst einen Backtrace erstellen, wenn es nicht an den Optimierungen lag.

    wird wohl auf einen backtrace rauslaufen. vdr ist mit helau's extensions-patch kompiliert. da ist im Make.config debug aktiv:

    Code
    # remove Comment to get Debug information
    GDB_DEBUG = 1
    
    
    ifdef GDB_DEBUG
    CFLAGS += -g -ggdb -O0
    CXXFLAGS += -ggdb -O0
    LDFLAGS += -g -ggdb -O0
    endif


    gruß, ciax

  • mir ist dieser "drift" bei ORF gestern wirklich stark aufgefallen. es ist etwas störend. aus dem (DEBUG)-log müßte ich mal die genauen werte für "video speed up/slow down" und "codec/audio: drift" zum richtigen zeitpunkt ausfiltern - so hättest du etwas zum "analysieren" ;)


    Dann nimm -DUSE_AUDIO_DRIFT_CORRECTION raus und guck ob es so besser ist.
    Wobei es kein Schanken mehr geben sollte, der Audio Drift sollte sich im Rahmen von +-1ms bewegen.
    Und der Audio/Video Sync sollte sich im Bereich von +15ms bis -45ms 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

  • ciax: Bei -O0 sind die Optimierungsoptionen eh abgeschaltet.


    Deine Situation hat aber auch Vorteile: als ich mir den libpng-segfault mit gdb ansehen wollte, und dazu eine Debug-Version gebaut habe, war der segfault weg... Viel Erfolg!


    Gruß, Ingo

  • Ich hatte seit dem Update auf libpng-1.5 immer das Problem, dass softhddevice beim "deleting plugin" (also beim herunterfahren des vdr - deshalb störte es mich auch nur wenig) in libpng.so segfaultete:

    Code
    Mar 15 11:59:52 rock kernel: vdr[27168]: segfault at 7f69c4af3508 ip 00007f69c4af3508 sp 00007f69af7f5d80 error 14 in libpng15.so.15.9.0[7f69c989b000+35000]

    Es hat etwas gedauert, bis ich softthddevice (oder libpng-1.5, denn mit 1.4 ging es ja; oder gcc -O...) als "Bösewicht" ausmachen konnte. Nach etlichem 'rumprobieren habe ich folgendes festgestellt:
    Offenbar habe etliche Programme mit libpng-1.5 Probleme, wenn sie mit -fomit-frame-pointers übersetzt werden. Je nach gcc-Version ist diese Optimierung aber in -O bzw. -O2 (und erst recht in -O3; Standard in Make.config von kls) enthalten.
    Ich habe nun die -fno-omit-frame-pointers ins softhddevice Makefile direkt nach den vdr-includes eingebaut - und die segfaults sind Vergangenheit:

    Code
    -include $(VDRDIR)/Make.config
    
    
    #für libpng-1.5
    CFLAGS   += -fno-omit-frame-pointer
    CXXFLAGS += -fno-omit-frame-pointer
    
    
    ### The version number of VDR's plugin API (taken from VDR's "config.h"):


    Da das Plugin kein PNG verwendet, liegt es wohl am Gesamtsystem, da ist es besser die CFLAGS in Make.config für alle Plugins zuändern.


    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

  • I struggle with only one thing: SD playback.
    HD is fine.


    SD streams:
    MPEG-2, 720x576@25Hz


    HD streams:
    H.264, 1280x720@50Hz
    H.264, 1920x1280


    X-server is 1280x720@100Hz, and I use VDR 1.2.21, and softhddevice (0.5.0-GIT7b570c5).


    HW: nVidia Corporation GT215 [GeForce GT 240] (rev a2)


    Edit: I have tried with and without:
    CONFIG += -DUSE_AUDIO_DRIFT_CORRECTION # build new audio drift code
    CONFIG += -DUSE_AC3_DRIFT_CORRECTION # build new ac-3 drift code



  • Mal eine Frage an die Experten. Der VDR wird bei mir über ein upstart script gestartet. Parallel dazu Openbox. Dann fragt ein script ab ob Openbox, lirc und vdr läuft und gibt dann mit "svdrpsend plug softhddevice resu" das Plugin frei. Kann es sein das mit dem resu Befehl der Innaktivitätstimer zurückgesetzt wird und der VDR denkt ich habe eine Taste gedrückt und fahre nach einem acpi-wakeup und ende der aufnahme nicht herunter?

    RPI3, DVB-Sky S960, VDR 2.4.4, Raspbian Jessie, Onkyo AV Receiver, Panasonic Plasma.


  • Da das Plugin kein PNG verwendet, liegt es wohl am Gesamtsystem, da ist es besser die CFLAGS in Make.config für alle Plugins zuändern.


    ldd zeigt mir, dass libvdr-softhddevice.so die einzige Stelle ist, die libpng.so referenziert. Daher dachte ich, dass es unötig ist dem ganzen vdr, oder gar dem gesamten System, das -fomit-frame-pointers zu entziehen. Auch segfaultet sonst nichts im vdr... aber egal.


    And now for something completly diffrent: unter xine-plugin konnte ich z.B auf SkySportHD den Dolby5.1 Ton auswählen, und wenn ich nach einem Kanalwechsel wieder zu diesem Sender zurückkehrte hatte ich wieder Dolby5.1. softhddevice nimmt aber immer die erste Tonoption, egal was vor den Kanalwechseln benutzt wurde. Kann man da was konfigurieren?


    Gruß, Ingo


  • X-server is 1280x720@100Hz, and I use VDR 1.2.21, and softhddevice (0.5.0-GIT7b570c5).


    This is easy, don't use 100Hz or add support for 100Hz to the plugin.


    Only 60Hz displays with 60Hz video and 50/60Hz displays with 50Hz video are supported.


    Mal eine Frage an die Experten. Der VDR wird bei mir über ein upstart script gestartet. Parallel dazu Openbox. Dann fragt ein script ab ob Openbox, lirc und vdr läuft und gibt dann mit "svdrpsend plug softhddevice resu" das Plugin frei. Kann es sein das mit dem resu Befehl der Innaktivitätstimer zurückgesetzt wird und der VDR denkt ich habe eine Taste gedrückt und fahre nach einem acpi-wakeup und ende der aufnahme nicht herunter?


    Ja macht er das, aber nur wenn es einen Inaktivitätstimer gibt. Weil ohne dies ist das Problem, der Timer ist abgelaufen und man macht Resume und er geht sofort wieder aus.



    ldd zeigt mir, dass libvdr-softhddevice.so die einzige Stelle ist, die libpng.so referenziert. Daher dachte ich, dass es unötig ist dem ganzen vdr, oder gar dem gesamten System, das -fomit-frame-pointers zu entziehen. Auch segfaultet sonst nichts im vdr... aber egal.


    And now for something completly diffrent: unter xine-plugin konnte ich z.B auf SkySportHD den Dolby5.1 Ton auswählen, und wenn ich nach einem Kanalwechsel wieder zu diesem Sender zurückkehrte hatte ich wieder Dolby5.1. softhddevice nimmt aber immer die erste Tonoption, egal was vor den Kanalwechseln benutzt wurde. Kann man da was konfigurieren?


    ffmpeg will libpng, also kommt es daher, aber es wird nicht verwendet. Wenn alleine das Linken schon ein Problem darstellt. Solltest du vdr und alle Plugins dann mit -fno-omit-frame-pointer bauen.


    Also mich nervt hier, daß er sich dies immer merkt. Aber ich merke mir garnichts, ich spiele einfach ab, was mir der VDR schickt.
    Bei den Öffentlichrechtlichen merkt er sich ob ich Dolby oder normales Stereo hatte.


    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 ()

Jetzt mitmachen!

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