softhddevice, Ton/Bild nicht synchron, wenn Ton-Spur umschaltet

  • Habe mal kurz in die AlsaSetup geguckt, wäre das so OK, oder passiert dann ein anderer Bug den ich nicht auf dem Schirm habe? So verbindet sich Alsa später auf jeden Fall wieder, auch wenn's einmal fehlschlug. Die Änderung/Nutzung des Handles sollte auf jeden Fall passend synchronisiert werden - wie es ja schon passend kommentiert ist. Ich guck später nochmal in den Source, ob ich da mithelfen kann (wenn Du einverstanden bist)...


    Das würde das Problem zwar lösen, die Frage ist aber warum geht ein öffnen überhaupt schief.
    Ein Fall wäre man gibt ein falsches Device als Parameter, aber dies ist einfach zukorrigieren.


    Läuft noch ein anderes Programm was die Soundkarte blockiert?


    Ich habe hier 1000te von Umschalten usw. getestet, es klappt immer.


    Bei dem Fix müsste man gucken, ob nur der Open fehlgeschlagen ist oder der Sound überhaupt nicht funktioniert.
    AlsaPCMHandle wird außerhalb des Threads für den Audio/Video Sync benutzt.


    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: Du hast in dem Thread folgendes geschrieben:


    Ist da noch was in Arbeit?


    Also im Livebetrieb merke ich nichts, und bei Aufnahmen überspringe ich die Werbung.
    Durch Änderungen werden nun die Puffer komplett gefüllt und das kann halt lang sein.
    Im Prinzip kann der Audioteil den Ton weiterlaufen lassen.



    Problem sollte nur noch das Umschalten sein.
    Beim Springen und Aufnahme stoppen, löscht der VDR inzwischen die Puffer.


    Problem bleibt aber, daß der Audiokanal erst in bis zu 8s umschaltet.


    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

  • bei Aufnahmen überspringe ich die Werbung.


    Na, das mache ich ja auch so.
    Aber dazu muss ja erstmal die Werbung kommen und da ist es dann schon ärgerlich wenn da jeweils eine Sekunde (oder so) vom Film fehlt. Zudem wirkt der Übergang dadurch irgendwie seltsam und nicht so gewollt. ;)
    Das ganze ist jetzt ja auch nicht dramatisch, aber einfach unschön und passt nicht so recht zu dem ansonsten ziemlich perfekten Plugin.
    Kommt bei uns jetzt auch nicht so häufig vor, dass wir Werbefernsehen mit DD 5.1 schauen und ich habe - wie gesagt - auch den neuesten Stand noch nicht getestet, das werde ich jetzt nachholen.


    CafeDelMar

  • Zitat


    Ich habe hier 1000te von Umschalten usw. getestet, es klappt immer.


    Bei dem Fix müsste man gucken, ob nur der Open fehlgeschlagen ist oder der Sound überhaupt nicht funktioniert.
    AlsaPCMHandle wird außerhalb des Threads für den Audio/Video Sync benutzt.


    "klappt immer" muss nix heissen, ich hab' schon echt geniale Bugs gesehen... ;)
    Es kann durchaus sein, dass da ein anderer Prozess auf das Device zugreifen will. Der würde aber auch drauf zugreifen, wenn VDR nicht läuft und das Device dann blockieren sobald VDR wieder startet - das passiert aber nicht. Ich guck mal, ob was zu finden ist. Das erneute öffnen, wenn es fehlgeschlagen ist per Kanalwechsel erhöht bei meiner Installation den WAF von 10% auf 40%.


    Ich habe mir das mit dem AlsaPCMHandle mal angesehen, ich muss das im Kopf nochmal sortieren, wer da wo drauf zugreift - hab's auf die schnelle nicht kapiert... Werde demnächst nochmal reingucken.


    Gruss


    ...Alex

  • Es gibt nur wenige mit diesem Problem.
    Die Frage ist, was ist anders?


    Läuft ein anderes Programm, was auf den Ton zugreifen will. z.b. window manager, pulseaudio, xbmc, ...


    Per HDMI angeschlossen? Störungen auf der HDMI Leitung?


    Ansonsten einfach bei der Fehlermeldung, noch einmal versuchen zuöffnen.


    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

  • Also bei mir
    - zweifelsfrei KEIN anderes Programm (kein XBMC, pulseaudio existiert nicht, windowmanager macht gewiss nix mit sound)
    - Störungen auf der HDMI Leitung ? Nicht auszuschliessen. Da aber nach DETA das Gerät noch für einige Sekunden belegt ist und ein ATTA danach den Sound wiederbringt.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Dann bleibt die Frage: belege ich das Device noch oder ist es nur intern noch blockiert.
    Und mehrere Sekunden klingt auch sehr übel.


    Habt ihr die Gleiche Alsa Version?

    Code
    cat /proc/asound/version


    Code
    sudo ls -l /proc/`pidof vdr`/fd | fgrep snd


    Sollte nichts anzeigen, wenn dettached ist.


    Problem war das ALSA spinnt, wenn man das Device nicht neu öffnet, sonst hätte ich
    es einfach beim Umschalten offengelassen.


    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

  • Zitat


    Die Frage ist, was ist anders?
    Läuft ein anderes Programm, was auf den Ton zugreifen will. z.b. window manager, pulseaudio, xbmc, ...
    Per HDMI angeschlossen? Störungen auf der HDMI Leitung?


    Evtl. ein Fehler der nur in Kombination mit bestimmten Plugins auftritt? Einen anderen Prozess der auf Alsa zugreifen will konnte ich nicht finden. Ton und Bild gehen über 1 HDMI Leitung in den Fernseher und von dort per ARC/CEC in den Verstärker - Störungen kann ich nicht ausschliessen, sehe aber im Moment keinen Zusammenhang mit einem belegten Device.


    Zitat


    Ansonsten einfach bei der Fehlermeldung, noch einmal versuchen zuöffnen.


    Arbeite mich gerade ein wenig ein, melde mich dann nochmal.


    Gruss


    ...Alex

  • Ich lasse das Device jetzt nochmal öffnen wenn es fehlschlägt. Die 3 mal die ich jetzt reproduzieren konnte ist es: Fehlgeschlagen, sleep(1) und erfolgreich geöffnet. Reproduzieren kann ich es besten, wenn ich sehr zügig durchzappe (mehrmals pro Sekunde kanalwechseln).


    ...Alex

  • johns, guck mal ob Du das so übernehmen möchtest.


    Gruss


    ...Alex


  • Hi,


    AudioRing[AudioRingWrite].FlushBuffers = 0 bewirkt bei mir nur, dass kurz vor (2s) bis kurz nach (gefühlte 5s) der Umschaltung kein Ton ausgegeben wird. Ist aber halt immer noch nicht so pralle...


    Muß ich nochmal nachvollziehen, aber es sollte nichts fehlen und keinerlei Pause sein,
    wenn die beiden Audiospuren die gleichen Zeitstempel haben.


    Die Änderung ist nicht so gut, da ja der Tonthread 100s schläft.
    In der Zwischenzeit werden die Puffer überfüllt.


    Scheint tatsächlich am Treiber zuliegen.


    Bash
    #!/bin/sh
    count=0; while true; do for i in 1 3 4 5; do echo $count; sleep 1s; svdrpsend chan $i >/dev/null; : $(( count += 1 )); done; done


    Sollte den Fehler reproduziern, bei den 1 3 4 5, mal ausprobieren ob PCM -> AC3 oder andere Kombinationen eine Rolle spielen.
    Falls du gdb hast, kannst auch mal gucken, wenn der open fehlschlägt, wo die anderen Threads so rumhängen.


    Alternativ könnte man in AlsaGetDelay einfach 0 zurückgeben, daß dürfte die einzige Stelle sein an der zwei Threads auf den Ton
    zugreifen.


    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,
    ich habe gestern auf die aktuellen Pakete von eTobi aktualisiert (VDR 2.0, genaue Versionsnummer habe ich gerade nicht zur Hand, gebaut wurde mit den Default Optionen). Seit dem habe ich exakt das hier im Thread beschriebene Problem.
    Bei beiden Aufnahmen die ich gestern geschaut habe (Pro7) wurde der Ton schon so 2-4s vor dem Umschalten der Tonspur (Anfang/Ende der Werbung) wieder gegeben.
    Mit dem VDR 1.7.28 und Softhddevice 0.5.1 gab es dieses Verhalten nicht. Muss also irgendetwas Neues sein.


    Ich gebe den Ton per Passthrough (PCM und AC3) am optischen Soundkartenausgang aus.


    Tschau, Uwe.

    Gigabyte GA-Z77-D3H; I3-3220; 4GB 1600MHz DDR3; Technotrend S2-4100 + Technotrend Budget + Nova-HD-S2;
    passive geForce GT620 1GB; WD RED 2TB; LG DVD-DL Brenner; Debian Jessie mit VDR 2.2.0 + SoftHDDevice + KODI

  • Habe die Tonauzssetzer gestern sowohl beim LiveTV als auch bei Aufzeichnungen festgestellt, dass ca. 1-2 s vor der Werbung der Ton weg ist und die Werbung wenige Sekunden später wieder Ton hat (Wechsel DD 5.1/2.0). Hab die aktuelle stable yavdr 0.5. Ich arbeite mit HDMI passthru (HDMI -> TV -> SPDIF-> AV-Receiver)


    Gruß Micha

  • aktuelle stable yavdr 0.5


    ok, das ist softhd 0.5.2 git vom 03.03.2013 und n 1.7.27er vdr drin: damit ist der vdr wohl aus dem Rennen und das Problem bei softhddevice zu suchen...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Das das Problem im Plugin ist, war ja schon klar.


    Nur die einzige Änderung von Version 0.5.1 zu neuer in diesem Bereich, ist mit -DUSE_SOFTLIMIT rückgängig machbar.
    Grund für die Probleme steht hier:
    Rückgabewert von cDevice::Poll wird ignoriert


    Bei LiveTV sollte zwischen den Versionen kein Unterschied sein. Nur ist das Fehlende Stück nicht immer gleich.
    Hängt vom Umschaltzeitpunkt, Sender und Größe des Audio Puffers zusammen.
    Mit Verkleinern des Audio Puffers sollte es auch kleiner werden.


    Der neue Audio Code (auch schon paar Monate alt) sieht eine Pausenfreie Wiedergabe vor. ist noch ungetestet und scheint auch nicht so wie geplant zu funktionieren.


    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


  • Der neue Audio Code (auch schon paar Monate alt) sieht eine Pausenfreie Wiedergabe vor. ist noch ungetestet und scheint auch nicht so wie geplant zu funktionieren.



    So wie ich es sehe reicht dieser Patch aus um alles freizuschalten.
    Beim Umschalten und beim Springen in Aufnahmen werden die Puffer gelöscht.
    Bei Aufnahmen löscht der VDR beim Umschalten der Audiospuren die Puffer deshalb,
    kommt es da zu einem kurzen Ruckeln.


    Es könnten so 22-122ms beim Spurwechsel fehlen, da ich die Tonspur schon wechsel,
    wenn im Kernel Ton Puffer Platz ist und nicht wenn dieser leer ist.


    Sollte es anders sein, dann bräucht ich mal ein Sample.


    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

  • Also ich kann es leider nicht nach vollziehen. Weder im Log als, daß ich etwas falsches höre.



    Das ist was ich an der Stelle im Log habe. Der resample sieht falsch aus, sollte aber nicht stören.
    softhddevice -v vdpau -g 1024x0 -a hw:NVidia,7 -p hw:NVidia,7 -c softvol -wstill-hw-decoder -X-nocursor
    Getestet hier mit alles an auf pass-through und HDMI Ausgabe.


    Edit: vielleicht Ausgabe auf allen Devices oder ähnliches an?

    Code
    -Psofthddevice -v vdpau -g 1024x0 -a hw:NVidia,7 -p hw:NVidia,7 -c softvol -wstill-hw-decoder -X-nocursor


    Edit: Patch ist nun im GIT, bitte alle fleissig testen, da es zu Nebenwirkungen bei Aufnahmen, Spulen
    und extrem Zapping kommen kann, aber nicht sollte.


    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

    2 Mal 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!