On 18.02.2010 22:55, Ed wrote: > Yuriy Kaminskiy wrote: >> On 23.11.2009 21:07, Ed wrote: >> >>>>>> flashpugin-nonfree имеет гадкую способность захватывать /dev/snd/* >>>>>> самолично. >>>>>> И пока не пришебешь iceweasel - держать. [...] >> Если держать аудио-устройство открытым в dmix (к примеру, запущенным >> mpd), то никто его эксклюзивно зохавать его не сможет. > сейчас проверил: пустил параллельно с ютубовским роликом mplayer - они > друг другу не мешают, значит flash не открывает аудиоустройство > эксклюзивно. но, несмотря на это, evince периодически блокирует > воспроизведение звука.
Начать с того, что я предложил: попробовать держать устройство *постоянно* открытым в каком-то процессе. До запуска firefox. > что и где не так? >> PS Отдельная проблема - с тем, что libasound за каким-то [beep] не >> ставит на всё ей открытое fcntl(FCLOEXEC). В результате у evince/xarchiver >> оказывается /dev/snd/pcmXX про который он ничего не знает, и ничего сделать >> с ним не может. >> FWIW, разработчики в курсе и исправлять отказались :-E На мой взгляд >> это баг именно libasound, поскольку этот fd скрыт внутри структур алсы, и >> приложение ничего разумного с ним сделать не может. > гхм... ...И я таки чуть-чуть посмотрел в кишки alsa-lib на предмет реализации dmix, если я правильно понял - этот баг вполне может играть в этом случае: флеш-плагин открывает dmix, dmix открывает железячное устройство, потом firefox запускает evince [не закрыв железное устройство], потом флеш закрывает dmix (и дескриптор железного устройства, который был в процессе firefox), но ещё дескриптор остаётся висеть внутри evince -> для всех остальных облом. И держание устройства открытым должно этот баг замаскировать (только запущенный до того плеер держит открытый дескриптор устройства). Впрочем, я могу и ошибаться. Экспериментировать мне сейчас негде - моя звуковая карточка умеет микшировать в железе :-) [и что я будут делать, если она сдохнет - не представляю: производитель помер смертью храбрых, современных более-менее бюджетных карточек умеющих микшировать в железе хрен найдёшь :-\ а, помимо проблем из топика, с dmix/hda-intel mpd жрёт при проигрывании 12-20% cpu {на ресемплинге}, с hw/au8830 - 3%], флеш-плагина у меня нет и не будет, xarchiver и evince отсутствуют ;-) Если я таки прав ;-), то могу только помимо того посоветовать ещё раз поругаться с разработчиками alsa-lib ;-) Потому как после exec использовать открытый алсовый fd всё равно абсолютно невозможно - для этого надо передавать в запущенный процесс внутренние структуры alsa, и требовать от программы закрывать все fd подряд перед exec - абсолютно неправильно (она не знает и не может знать какие из них переданы ей специально и будут нужны в потомках). -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/hm4cmt$m2...@dough.gmane.org