softhddevice gibt Sounddevice nicht frei

  • Hi,


    ich habe hier seit ein paar Tagen (Komplettupdate System + VDR + PlugIns) das seltsame Problem dass softhddevice bei Suspend das Audiodevice nicht freigibt. Das führt dazu dass nach einem "svdrpsend.pl plug softhddevice deta" das Sounddevice noch belegt ist und z.B. XBMC kein Audiodevice nutzen kann. Das tritt aber nur ab und zu auf.


    Wenn der VDR läuft sieht es so aus:



    Wenn ich jetzt "svdrpsend.pl plug softhddevice deta" ausführe sieht es normalerweise so aus und ich kann xbmc starten und alles funktioniert:



    In den letzten Tagen ist es aber oft so dass nach "svdrpsend.pl plug softhddevice deta" immer noch das pcm-device vom VDR belegt bleibt:



    XBMC meckert dann dass das Sounddevice belegt ist.
    Auch nach "svdrpsend.pl plug softhddevice atta" bleibt der VDR ohne Ton.



    Im Log ist leider nichts zu finden, ausser der Meldung dass das Audiodevice belegt ist und nicht genutzt werden kann.


    Hat irgendjemand einen Tip für mich wo ich den Fehler suchen kann ?


    Gruß
    SieDu


    P.S. Ich nutze VDR 2.1.2 mit softhddevice-git und XBMC 12.2 unter Gentoo und es läuft alles unter dem user root.

  • Es könnte mit diesem Problem zusammenhängen: [Testing Vdr] Softhddevice nach Timeshift kein Ton


    Bei mir wird der Ton freigegeben und bei "DETA/ATTA" ist mir auch kein Fehler bekannt.


    Härte Test:

    Code
    1. while true; do svdrpsend plug softhddevice deta >/dev/null; ls -l /proc/$(pidof vdr)/fd | grep snd; svdrpsend plug softhddevice atta > /dev/null; done


    An dieser Stelle sind keine Meldungen bei "-DDEBUG" eingebaut.
    In AudioExit eine Debugmeldung einbauen und prüfen ob es aufgerufen wird.


    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 habe das selbe Problem mit der aktuellen git-Version. Bin mal Testweise auf die 0.6.0 zurückgegangen - dort ist es nicht. Kann dir aber (noch) nicht sagen ab wann genau es Auftritt. Ich weiß auch nicht wann ich dazu komme es mal zu durchzutesten.


    habe die audio.c wie folgt erweitert:



    Loglevel steht auf 3 und ich finde nix davon im Syslog. Hab ich bei der Debug-Meldung evtl. was falsch gemacht?!


    Hier noch eine Logausgabe vom VDR wo der VDR das Audio-Device nicht wieder auf bekommt:

    Gruß
    Michael

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Hallo Johns,


    ich kann es doch schon relativ weit eingrenzen: mit der 0.6.1rc1 gibts das problem nicht.


    Gruß

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Die Meldungen sollten erscheinen, wenn die Sourcen mit -DDEBUG übersetzt wurden.
    Einfach im Makefile das '#' vor -DDEBUG entfernen. Ohne -DDEBUG werden alle Debug(...) weggelassen.
    Nur Info(...) und höher ist in der normalen Version.


    0.6.1rc1 vs GIT


    Die Änderungen sind überschaubar, in der Hauptsache ist das Löschen der Puffer beim Umschalten dazugekommen.


    Code
    1. softhddevice.ClearOnSwitch = 0


    Sollte wie die alte Version laufen.


    Dies sollte aber nichts am Detach Verhalten ä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

  • Hallo Johns,


    das scheint exakt das Problem zu sein. Ich kann allerdings momentan nur per ssh auf meinen VDR zugreifen. Wenn ich "ClearOnSwitch" abschalte gibt das PlugIn bei "Deta" immer zuverlässig das Sounddevice frei.
    Genaueres kann ich erst in den Weihnachtsfeiertagen sagen wenn ich wieder zu Hause bin.


    Gruß
    SieDu

  • Hallo Johns,


    habe es gerade mal getestet. Mit dem oben genannten Code kommt folgende Ausgabe im Syslog:

    Es wird also alles aufgerufen. Der Ton ist trotzdem weg.


    Gruß Michael


    EDIT: die obersten 4 Debug Ausgaben noch hinzugefügt.

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Hallo Johns,

    Dies kann ich auch bestätigen. Habe aber noch die Git-Version von gestern drauf.



    Gruß

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

    The post was edited 1 time, last by Michael84 ().

  • Hallo,


    hab grad nochmal geschaut. Die Meldung kommt auch mit ClearOnSwitch = 0 - und da geht ja der Ton nach dem detatch noch. Es muss also was anderes sein.


    Gruß

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • seid Ihr wirklich sicher, dass die Probleme bei ClearOnSwitch = 0 zuverlässig nicht auftreten? Ich kann mir da einen Zusammenhang kaum vorstellen.


    War denn vorher überhaupt ClearOnSwitch = 1 gesetzt? Wie habt Ihr das geändert? Im Plugin-Setup-Menü oder durch Editieren der setup.conf? Falls letzteres: war da vorher tatsächlich ein Eintrag "ClearOnSwitch = 1" vorhanden?


    Umd das nochmal zu verdeutlichen: Die Option, beim Kanalwechsel die Buffer zu leeren, kam vor wenigen Wochen erst ins git. Wer eine solche git-Version gezogen hat, hat zunächst überhaupt keine Veränderung, denn per default werden die Buffer beim Kanalwechsel nicht gecleart. Eine mögliche Verschlechterung kann also nur dann entstanden sein, wenn jemand eine git-Version seit dem 05.11. gezogen hat, und zusätzlich die Option in den Plugin-Einstellungen aktiviert hatte.

    VDR 1: Silverstone LC20, Cougar A300/R, Asrock J4105B-ITX, WinTV DualHD, WD10EACS; Atric-IR-Einschalter. SW: Xubuntu 19.04 per SSD
    VDR 2: ACT-620, Asrock B75 Pro3-M, Celeron G540, passive Asus GT610, Cine CT V6, KNC-One DVB-C, Atric-IR-Einschalter. SW: Xubuntu 18.04 per SSD

  • Hallo,


    Wärend das Problem mit softhddevice.ClearOnSwitch = 1 zuverlässig immer auftritt (gesetzt über OSD, dann in setup.conf geschaut), ist es bei Tests mit über OSD ausgeschaltetem "Clear deocer on chanel switch" bisher zuverlässig nicht aufgetreten. In der setup.conf steht jetzt:

    Code
    1. vdr01 ~ # cat /etc/vdr/setup.conf | grep softhddevice.ClearOnSwitch
    2. softhddevice.ClearOnSwitch = 0
    3. vdr01 ~ #


    Habe es ca. 10 mal getestet in der Zwischenzeit wobei es da nie aufgetreten ist.


    Gruß

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Ich glaube hier ist das Problem, oder ?


    Code
    1. Dec 04 21:30:29 [vdr] audio: not paused, check the code_


    Das nur eine Notiz an mich und kein wirkliches Problem. Der Aufrufer sollte den Pause Status wissen und nicht einfach play aufrufen, ist nur unsauberes arbeiten von mir.


    seid Ihr wirklich sicher, dass die Probleme bei ClearOnSwitch = 0 zuverlässig nicht auftreten? Ich kann mir da einen Zusammenhang kaum vorstellen.


    War denn vorher überhaupt ClearOnSwitch = 1 gesetzt? Wie habt Ihr das geändert? Im Plugin-Setup-Menü oder durch Editieren der setup.conf? Falls letzteres: war da vorher tatsächlich ein Eintrag "ClearOnSwitch = 1" vorhanden?


    Hat mich auch gewundert. Besonders das es bei mir nicht auftritt.
    Beim "clear" werden die Puffer gelöscht, entweder hängt noch der Flush, der meldet aber, daß er mit 21ms fertig ist.
    Oder nach dem Flush ist der Thread im Wartestate und dieser macht Probleme.


    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

  • Hi,


    ich kann das Problem genauso bestätigen. Mit aktiviertem ClearOnSwitch hatte ich beim Aufruf von Xbmc sowie bei der Rückkehr zum VDR keinen Ton. Mit deaktiviertem ClearOnSwitch funktionierts wieder wie zuvor.


    Gruss


    Holly


    Gesendet von meinem A510 mit Tapatalk 4

    Server: VDR 2.4.1 mit Ubuntu 19.04 x64 mit vaapidevice, Kernel 5.2.9, ASRock J4105M, 2 x 4096 MB DDR4-RAM, 2 x DD Cine S2, Lirc-Serial mit One4All URC 7960
    Client: VDR 2.4.1 mit Ubuntu 19.04 x64 mit softhddevice-OpenGL oder mit KODI+vnsiserver, Kernel 5.2.5, ASRock H81M, Intel i3-4150, NVIDIA GPU GeForce GT 610 (GF119), 2 x 2048 MB DDR2-RAM, 1 x Technotrend S2-1600, SilverStone Milo ML03, ASRock Smart Remote CIR mit Logitech Harmony 650, Beamer 120'' FullHD-3D

  • Hallo,


    @ johns: kann man das mit zusätzlichen Debugausgaben testen? wenn ja, wo müssen die hin?


    Gruß

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Du brauchst nichts einbauen, sollte schon genug im Log stehen.



    So sollte der Flush im Log aussehen. Bei dir fehlt ein Teil. Wenn ich es richtig sehe, dann ist der Flush noch nicht fertig und damit kommt es zu dem Problem.



    Verschiebt die Rückmeldung und könnte das Problem beheben.


    Edit: richtiger Patch


    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,


    der Patch läuft bei mir nicht durch - ich bekomm nen reject:


    Wenn ich die audio.c händisch abändere dann klappt es auch nicht. Anbei die Logausgaben und die von mir geänderte audio.c (hoffe ich habe nix falsch gemacht)


    Hier noch die Aktuelle Logausgabe mit der von mir geänderten audio.c:


    Gruß
    Michael

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Ich mache noch einen neuen, der aktuelle kann Probleme mit Threads bekommen, ist nicht Thread sicher.


    Log schaut besser aus, sind denn die Probleme nun weg?


    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,


    nein, das Problem ist weiterhin da - vom verhalten her hab ich keinen Unterschied festgestellt.


    Gruß
    Michael

    Gen2VDR v5.1
    ---------------
    Intel DG45ID mit Core2Duo E4300, 2,5GB DDR2, Gainward G210 1024MB passiv, SSD, cineS2 + DuoFlex S2 unicable, TT Budget T-1500, MSI Mega Sky 580 DVB-T USB-Stick, Atric Einschalter, 3TB Video HDD

  • Ich habe mir das Log nochmal angesehen:


    Code
    1. Dec 05 15:56:23 [vdr] audio: flush_
    2. Dec 05 15:56:23 [vdr] audio/alsa: flush state RUNNING_
    3. Dec 05 15:56:23 [vdr] audio: audio flush 1ms_


    Schaut immer noch falsch aus. Hatte Gestern auf den unteren flush geguckt und der arbeitete richtig.


    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