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

  • Nur manchmal und ausschließlich beim Umschalten verliert er dann den Ton, entweder es ist Still oder gestern auch zum ersten Mal ein Rauschen. - Zu beheben nur durch vdr Neustart.


    Meiner Meinung nach ist das in den ersten Versionen mit dem neuen Audio Parser nicht aufgetreten, oder ich habs zumindes tnciht bemerkt.

    Kann ich nicht ganz bestätigen: Das Rauschen (Ton weg hatte ich noch nicht) habe ich selten und nicht durch Umschalten reproduzierbar seit Einführung des neuen Audio-Parsers. Auch hier: kein Downmix, passthrough direkt über optical an den Receiver. Ich habe keine ungewöhnlichen Logeinträge während des Rauschens (ist übrigens sehr lautes Rauschen) - das Log sieht aus, als würde alles normal laufen.


    Was hier allerdings hilft, ist das softhddevice zu suspenden, und dann irgendein Programm (xbmc, pingus getestet) zu straten, das auf das Audio-Device zugreift. Ein einfaches Suspend/Resume fürhrt zu 3 - 5 Sekunden normalem Sound und dann rauscht es wieder. Wenn zwischenzeitlich ein anderes Programm auf dem Sound Device lief, funktioniert es wieder dauerhaft.


    Wie gesagt, das Rauschen tritt selten (gefühlt einmal alle 5 - 6 h Betrieb) und unwillkürlich auf. Habe gerade nochmal eine Zap-Orgie mit HD, SD und DD Sendern gemacht, und bekomme es nicht reproduziert.


    Gruß, Ingo

  • Hallo ich nutze oss mit passthrough und stereodevice. Die lezte Version mit Driftkorrektur ist hier erstmals eine Verschlechterung, mit dieser letzen Version hab ich erstmals viele Ruckler...
    cu Peje

  • So gibt neue verbesserte Version, sollte nun keine Problem mehr haben.
    Debug wird im Moment nach stdout gemacht.


    Wer Probleme hat:

    Code
    CONFIG += -DUSE_AUDIO_DRIFT_CORRECTION  # build new audio drift code


    kommentieren (# am Anfang dieser Zeile einfügen).


    Wer Pass-through verwendet, ist von diesen Änderungen noch nicht betroffen, kann aber gucken, wie stark sein Audiodrift ist.


    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

  • Das Schwarze Bild baue ich mal ein, wenn ich Zeit habe.


    Bloß nicht, oder falls Du es einbaust, kannst Du dieses Feature mit einer einstellbaren Option dem User überlassen?
    Noch eine Frage. Ich weiß Du hast viel zu tun aber was noch total schön wäre, wenn das Plugin nach dem starten meldet das es bereit ist resumed zu werden, z.B. mit einer Pid datei. Dann könnte man das resume besser steuern und es erst geben wenn wirklich ein X vorhanden ist und das Plugin bereit ist. Zur Zeit hole ich mir den Status mit ps aux. Funktioniert aber nicht immer zuverlässig.

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

  • Wenn wir schon beim resume sind, beim stoppen macht der vdr noch ein detach auf den player und damit ein SetPlayMode(pmNone). Das führt, auch wenn softhd suspended ist, wieder zu einem resume.
    Vielleicht am Anfang von SetPlayMode() ein
    if (SkipVideo && SkipAudio && !play_mode) return 0;

    vdr-2.6.7

    softhddevice, dbus2vdr, dvd, epgsearch, femon, graphtftng, web, menuorg,
    osdteletext, radio, recsearch, satip, tvguide, vnsiserver

    ubuntu focal, yavdr-ansible, linux-5.15 ,AsRock J4105, CIne CT-V7 DVB-C

  • Zitat

    So gibt neue verbesserte Version, sollte nun keine Problem mehr haben.


    Debug wird im Moment nach stdout gemacht.

    Danke diese läuft jetzt bei mir. Bis jetzt nichts negatives.

    NFS+DVB_Server: Ubuntu 12.04 Server LTS // Intel dn2800mt mit 1xWD Red (2TB), 1xWD Green (2TB), 5xSundtek SkyTV DVB-S/S2
    VDR: Gen2VDRV4 (VDR-2.1.6) // Asus C8HM70-I/HDMI , 64GB Sandisk SSD (System), 4GB Ram (Dualchannel), Zotac GT630, 4TB über NFS (Video0+Mediadaten), 5xSundtek SkyTV DVB-S/S2 über Lan, PS3 FB // softhddevice_GIT, NV-Treiber_340.58, FFMPEG_1.2.6, Kernel_3.16.5, Alsa_1.0.28 // KODI_15.0_ALPHA
    CLIENT: (Debian) Banana Pi (VDR-2.1.7) // streamdevclient // softhddevice // PS3 FB
    TEST: Grundig GSS 400 mit Vtunerc // Satip-Plugin // TVheadend


    Je mehr man gelernt hat, desto mehr weiß man, wie wenig man weiß.

  • Wenn wir schon beim resume sind, beim stoppen macht der vdr noch ein detach auf den player und damit ein SetPlayMode(pmNone). Das führt, auch wenn softhd suspended ist, wieder zu einem resume.
    Vielleicht am Anfang von SetPlayMode() ein
    if (SkipVideo && SkipAudio && !play_mode) return 0;


    Danke für das Mitdenken, aber dies macht der C++ Teil schon.


    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
    Kurzer Log von der aktuellen Version (ARD HD) Bild und Ton alles in Ordnung.
    Und nicht kurz nach dem Umschalten erstellt . (Audio Ausgabe via HDMI)


    mfg Rudi


    Nachtrag: Es ist ein kurzer falscher Ton zu hören, in Verbindung mit den underrun errors.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

    3 Mal editiert, zuletzt von rudirabbit ()

  • Hallo johns
    Kurzer Log von der aktuellen Version (ARD HD) Bild und Ton alles in Ordnung.
    Und nicht kurz nach dem Umschalten erstellt . (Audio Ausgabe via HDMI)


    Nachtrag: Es ist ein kurzer falscher Ton zu hören, in Verbindung mit den underrun errors.


    Dieses Problem sollte der neue "Audio Drift Correction" Support beseitigen.


    Bei dir läuft der Ton zuschnell und es leeren sich die Buffer, neueste Version aus GIT benutzen
    mit -DUSE_AUDIO_DRIFT_CORRECTION.
    Das Ganze funktioniert nur mit normaler Ausgabe, also Passthrough ausschalten.


    Leider scheint es nicht so einfach zu sein, Audio Drift Correction für AC-3 Passthrough einzubauen.
    Falls jemand drüber Näheres weiss -> Posten. Xine-lib scheint dafür auch keinen Support zuhaben,
    vielleicht haben deshalb soviele Probleme mit Ton und Xine.


    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

  • Kurze Wasserstandsmeldung von mir:


    Mit dem letzten git-Stand läuft bei mir ootb (d.h. mit -DUSE_AUDIO_DRIFT_CORRECTION) wieder alles einwandfrei .


    Danke dafür!


    Grüße, Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Hallo wie schon erwähnt hab ich Probleme mit der aktuellen Version, bin nun comit für comit zurück und die Probleme treten ab git@5d8dea1b6b9e15048f425f13b349e785a494cdb3 auf:
    http://pastebin.com/uuakQ85d
    Dasselbe mit gti@1f232db5b499169e3c354b4af4bb59053009f210
    http://pastebin.com/zRiaAPMt


    Absolut keine Framedrops...
    Kann ich noch mehr logs zur Verfügung stellen?
    Danke für Hilfe Gruss Peje

  • Das war natürlich ein sehr großer Commit :(


    Auswirkung kann nur die BufferTime haben. "AudioBufferTime = xxx;" mal auf 450 setzen, dann sollte es wieder die vorherige Version sein.
    Ansonsten mal mit " CONFIG += -DAV_INFO -DAV_INFO_TIME=3000 # debug a/v sync" im Makefile bauen, dann kann man besser sehen, warum die Frames gedroppt werden.


    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

  • Danke für die schnelle Hilfe, hier mit gesetztem DAV-Info: http://pastebin.com/Bu0HF5DH und hier mit grösserem Puffer:http://pastebin.com/spDQrkWc
    leider bleiben die framedrops..
    Danke cu Peje

  • A/V Info und die Zeiten schein nicht geklappt zu haben.


    Bei den neuerern:

    Code
    Mar  1 10:32:38 pejevdr vdr: audio/oss: delay 341 ms


    Bei dem altem:

    Code
    Mar  1 09:06:49 pejevdr vdr: audio/oss: delay 525 ms


    Es sind zwei Stellen zuändern, die erste ist nur für den ersten Kanal, die zweite wird für den Rest verwendet.


    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,


    mit der neuen version aus dem git häüfen sich nun auch hier folgende logeinträge, siehe anhang (syslog gefiltert auf --> egrep -i "v-buf|drop|switching|underrun"):


    Code
    Mar  1 12:17:49 pvr vdr: audio/alsa: writei underrun error? 'Broken pipe'
    Mar  1 12:18:15 pvr vdr: audio/alsa: wait underrun error? 'Broken pipe'
    Mar  1 12:19:12 pvr vdr: audio/alsa: writei underrun error? 'Broken pipe'
    Mar  1 12:19:15 pvr vdr: audio/alsa: writei underrun error? 'Broken pipe'
    Mar  1 12:19:20 pvr vdr: audio/alsa: wait underrun error? 'Broken pipe'
    Mar  1 12:19:28 pvr vdr: audio/alsa: writei underrun error? 'Broken pipe'


    Makefile sieht so aus:

    Code
    CONFIG := #-DDEBUG
    CONFIG += -DUSE_AUDIO_DRIFT_CORRECTION  # build new audio drift code
    CONFIG += -DAV_INFO -DAV_INFO_TIME=3000 # debug a/v sync
    #CONFIG += -DHAVE_PTHREAD_NAME      	# supports new pthread_setname_np
    CONFIG += -DUSE_TS_AUDIO            	# build new ts audio parser
    #CONFIG += -DUSE_TS_VIDEO           	# build new ts video parser
    CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
    CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
    CONFIG += $(shell pkg-config --exists alsa && echo "-DUSE_ALSA")
    CONFIG += -DUSE_OSS


    gruß, ciax


    //edit: ohne manuelle änderung der audio bufferwerte im source

  • johns danke für die Geduld, ich hatte mit ebuild... fetch unpack (Aenderungen gemacht) compile und merge gebaut....
    Nun händisch gebaut siehts viel besser aus: hab in audio.c die AudioBufferTime auf 450 gesetzt und dann copmiliert Resultat:
    http://pastebin.com/SPWZqMLM


    diese seltenen Framedrops sind von Auge fast nicht sichtbar....
    EDIT: Nach 2 Stunden TV Ruckler um Ruckler bin jetzt halt wieder zu alten Version zurück..
    cu Peje

    Einmal editiert, zuletzt von peje ()

  • Sowie ich sehe, hat man mit OSS Pech. Ich werde jetzt bei OSS die Bufferzeit um min. 300ms erhöhen müssen.
    Obwohl die Buffer voll sind, meint OSS das es einen Underrun hat.


    Code
    delay = AudioBufferTime + 300;


    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

  • Johns, zumindest sind die Drops weg: http://pastebin.com/LaJG2WHx
    cu Peje
    EDIT: Die Auswirkungen beim Zappen sind gar nicht so übel beim Umschalten ganz kurz (1/10s?) schwarzer Schirm, dann Bild ohne "Trickspeed"

    EDIT2: mit delay = AudioBufferTime + 200; klappts auch bestens: http://pastebin.com/CwYKkk6s

    2 Mal editiert, zuletzt von peje ()

  • johns:
    Mein Log von gestern war die aktuelle Git Version, mit den gleichen makeoptionen wie bei ciax.
    Ich habe eben auch die Broken pipe Einträge im Log.
    Was mir auffällt: Der VDR läuft länger auf einem 1080i Kanal, optisch und akustisch problemlos.
    Im Log kommt meist nur das:

    Code
    Mar  1 02:38:42 linux-ugjv vdr: video: dropping frame (426/1421582)
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.068 -839 1799   0/\ms 156 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.088 -839 1779   0/\ms 156 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: dropping frame (427/1421584)
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.148 -799 1759   0/\ms 154 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.168 -799 1771   0/\ms 155 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: dropping frame (428/1421586)
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.228 -759 1783   0/\ms 153 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: 17:55:50.248 -759 1796   0/\ms 153 v-buf
    Mar  1 02:38:42 linux-ugjv vdr: video: dropping frame (429/1421588)


    Ist nicht schön, aber zumindest ist nichts von Audio Problemen im Log zu sehen. Die Video drops sind nicht sichtbar im Live Bild.


    Wenn ich dann auf einen 576i Sender umschalte kommt das:


    Dies ist dann auch am Live Bild zu sehen und zu hören. An und zu habe ich dann kurze Artefakte und unsauberen Ton.
    Dies dauert ein paar Minuten an, dann fängt sich das Plugin wieder.


    Bei meinen Tests habe ich unter SD Sendern viel mehr Probleme als unter HD.
    Ich teste mit Alsa und ohne Passthrough.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber


  • Audio / Video ist hier aber gewaltig auseinander und 1.8 Sekunden gepuffertes Audio ist auch falsch.
    Dann würde ich mal gucken welche Alsa Version. Ich denke im Moment ist mal wieder jede Version <1.0.24 Schrott.


    Zitat


    Wenn ich dann auf einen 576i Sender umschalte kommt das:

    Code
    Mar  1 06:03:31 linux-ugjv vdr: video:  9:13:14.094  +45  511 240/\ms  20 v-buf
    Mar  1 06:03:41 linux-ugjv vdr: audio/alsa: wait underrun error? 'Datenübergabe unterbrochen (broken pipe)'


    Hier schaut Audio/Video Sync und die Puffer besser aus. Aber mit 0.5s gepufferten Daten kann es keine leeren Puffer geben.
    Ich würde erstmal die Alsa Version prüfen und besondere asound.conf?


    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!