esdlib.c: /** * esd_play_stream_fallback: as esd_play_stream() but connect directly if no ESD ... * Return Value: -1 on error, else a socket number set up so that * any data sent to the socket will be played, either by an ESD or by an. */ int esd_play_stream_fallback( esd_format_t format, int rate, const char *host, const char *name ) { int socket_out; ... socket_out = esd_audio_open(); ... return socket_out; } audio_alsa09.c: (ALSA-1.0 backend is enabled) int esd_audio_open(void) { ... alsa_playback_handle = initAlsa(dev, format, channels, esd_audio_rate, SND_PCM_STREAM_PLAYBACK); ... esd_audio_fd = 0; ... return 0; } В результате esd_play_stream_fallback() возвращает нулевой дескриптор и происходит множество интересных вещей. Например очень весело себя ведут wsoundserver/wsoundplay...
$ rpm -q --lastchange esound * Tue Sep 13 2005 Alexey Rusakov <ktirf@> 0.2.36-alt2 - Enabled ALSA support. - Disabled building static libs.
Хорошо ребята прикололись. И Это сделано дефолтным бэкендом? Спасибо за репорт, сейчас буду разбираться...
На самом деле это, конечно, к апстриму. Но апстрим на данном этапе очень не хочет что-либо делать с esound, ибо в GNOME его собираются заобсолитить вконец буквально через полгода. Можно: 1) вернуться на OSS (мне не жалко, я esound не особо использую); 2) исправить то, что есть (заменить 0 на 1? честно говоря, я не очень понимаю, что вообще здесь можно сделать); 2a) попытаться всё же пожаловаться апстриму;
(In reply to comment #3) > 1) вернуться на OSS (мне не жалко, я esound не особо использую); Это проще. > 2) исправить то, что есть (заменить 0 на 1? честно говоря, я не очень понимаю, > что вообще здесь можно сделать); Нет, не на 1. И не на 2. А на нечто, что ещё надо определить каким-то образом... В alsa0.5 была функция на эту тему. > 2a) попытаться всё же пожаловаться апстриму; Может тогда ты как мантейнер и пожалуешься? ;-)
(In reply to comment #4) > (In reply to comment #3) > > 1) вернуться на OSS (мне не жалко, я esound не особо использую); > Это проще. Но ретроградство. > > 2) исправить то, что есть (заменить 0 на 1? честно говоря, я не очень понимаю, > > что вообще здесь можно сделать); > Нет, не на 1. И не на 2. А на нечто, что ещё надо определить каким-то > образом... В alsa0.5 была функция на эту тему. Была... Да сплыла. Я так и не придумал в итоге, откуда можно было бы вытащить файловый дескриптор. > > 2a) попытаться всё же пожаловаться апстриму; > Может тогда ты как мантейнер и пожалуешься? ;-) Пожалуюсь, но ты всё-таки расскажи, что у тебя было с wsound*. Баг-то проявляется у тебя ;)
> > > 1) вернуться на OSS (мне не жалко, я esound не особо использую); > > Это проще. esound-0.2.36-alt4 с отключённой ALSA отправлен в /i/S. > > > 2a) попытаться всё же пожаловаться апстриму; > > Может тогда ты как мантейнер и пожалуешься? ;-) > Пожалуюсь, но ты всё-таки расскажи, что у тебя было с wsound*. Баг-то > проявляется у тебя ;) http://bugzilla.gnome.org/show_bug.cgi?id=320044
(In reply to comment #5) > Пожалуюсь, но ты всё-таки расскажи, что у тебя было с wsound*. Баг-то > проявляется у тебя ;) wsoundplay /path/to/sound.wav И на консоль лезет содержимое этого wav'а. Пишет на stdin (!), а потом вылезает assert при закрытии девайса что fd не больше нуля. wsoundserver стартовать отказывается с теми же симптомами.
Понятно, чего-то подобного я и ожидал. Ну ладно, в общем, если тебе интересно, можешь добавить себя в CC упомянутого бага в GNOME, а пока пользуй -alt4.
Ждём апстрим.
(In reply to comment #5) > > > 1) вернуться на OSS (мне не жалко, я esound не особо использую); > > Это проще. > Но ретроградство. Есть мнение, что быть авангарднее покойного апстрима -- бессмысленно (бишь RESOLVED FIXED).
Скорее уж WONTFIX :(
Ибо баг на апстриме может висеть годами, и в итоге тоже закрыться с WONTFIX.
Опять сломали с теми же симптомами!
Severity -> blocker.
Понятно, колхоз и чейнджлоги мы не читаем.
Обратно отключил ALSA, ловите -alt2 в Сизифе, если ещё нужно...