Moin,
die Frage, die sich mir generell stellt: tritt dieses Verhalten generell mit SHD auf oder nur mit dem OpenGL OSD Fork? Da andere, die das "normale" SHD verwenden, auch von diesen Problemen berichten, gehe ich davon aus, dass es am SHD selbst liegt. Ich hätte auch keine Idee, was die OpenGL OSD Erweiterung direkt damit zu tun haben sollte. Was ich mir jedoch vorstellen könnte, dass die Ressourcen der GraKa mit dem OpenGL OSD mehr ausgenutzt werden und ggf. deshalb das Problem forciert wird.
Wie helau schon angedeutet hat, könnte man die Stelle, an der das "alsa-close-open-delay" zieht, etwas "intelligenter" implementieren. Aktuell schaut das so aus (audio.c ab Zeile 1223)
if (AudioAlsaCloseOpenDelay) {
usleep(50 * 1000); // 50ms delay for alsa recovery
}
// FIXME: can use multiple retries
if (!(handle = AlsaOpenPCM(passthrough))) {
return -1;
}
Das könnte man relativ einfach so umbauen, dass so lange erneut versucht wird, bis es denn klappt. Oder zumindest mehrmals, nicht nur einmal. Vielleicht genügen die 50ms beim OpenGL OSD aus irgendwelchen Gründen nicht, da die GPU mit was anderem beschäftigt ist.
iNOB: siehts du dich in der Lage, das selbst mal so anzupassen (z.B. ne while Schleife aussenrum mit nem Counter), dass mehrere retry Versuche unternommen werden? Ansonsten könnte ich auch nen Patch zur Verfügung stellen...
Ciao Louis