Re: [gnome-cyr] Re: [gnome-cyr] Патч к esound на подключение к arts аудиосерверу



11 Май 2002 11:56, Vlad Harchev написал:
> On Wed, 8 May 2002, Igor Mokrushin wrote:
>
>  Привет всем!
>
> > Hi All!
> >
> > Сделал патч к esound версии 0.2.26, что бы он мог подключаться
> > к arts аудиосерверу, просто возникла необходимость использовать
> > esd в среде KDE из-за ряда программ и тем самым не подключаться
> > на прямую к /dev/dsp. Патч позволяет esd детектить, запущен ли artsd
> > или нет, если не запущен, то использует OSS или ALSA, т.е. как обычно.
> > После установки патча надо сделать ./autoconf, что бы перебилдить
> > ./confugure. По умолчанию в configure стоит ключ --with-arts, который
> > ищет наличие arts в системе.
> > P.S. Я смог проверить эту реализацию в связке OSS+aRts, ALSA у
> > меня нет, так что пробуйте у кого есть. Проверял так же на запись,
> > esdrec'ом, вроде бы проблем небыло при воспроизведении esdcat'ом.
> > Есть правда одна неприятность, это сегфаулт при выходе esd,
> > впринципе, это виновата функция arts_init(), и похоже привязка
> > этого глюка идет к glibc-2.2.5. Вообщем пробуйте, и сообщайте...
>
>  Прежде всего большое спасибо за патч!
>
>  У меня такие мысли насчет патча: если есть желание продвинуть его в
> дистрибьютивы, то нужно убрать динамическую линковку с либой arts. Иначе
> из-за появляющихся зависимостей на KDE вряд ли кто из дистрибьюторов пойдет
> на включение этого патча.

Начнем с того, что сам arts не завязан на KDE и может вообще быть отдельным
приложением. Под KDE там используется только управление, которое идет
как отдельная часть, поэтому линковаться и завязываться на сам KDE,
по идее, ничего не должно, тем более что arts утилиты есть и под gnome. 
Однако в моем случае, да, arts идет как составная часть KDE.

>  Чтобы это сделать, надо загрузить библиотеку с arts динамически и если
> получилось, взять указатели на используемые из нее ф-ии, и вызывать потом
> все эти ф-ии по указателям. Так как esd не использует glib придется
> использовать dlopen/dlsym/dlclose (они вроде есть на всех юниксах, кроме
> HPUX). 

Ну arts тоже не использует QT или GLIB при своей работе, т.е. как в аналогии
сравнении с esd, но мысль интересная, я уже сделал такой патч, что бы
не завязываться на libartsc.so.0 с использованием dlopen/dlsym/dlclose, т.е.
это действительно будет удобно для дистрибутивов, если собран бинарик с 
поддержкой arts, но сам arts не установлен(отказались устанавливать KDE к 
примеру и соответсвенно сам arts).

> Наверно было бы еще полезно переместить кусок, вставляемый в
> esd_audio_open, в одну ф-ию, и вызывать ее из всех тех мест.

Это уже реализовал

>  Насчет сегфолта при выходе: рекомендую попробовать звать _exit() явно -
> возможно тогда сегфолта не произойдет. Это может прокатить. А может послать
> sigterm или даже sigkill самому себе.

Эта проблема решилась сама сабой, в RH-7.3, проблема была, как я и подозревал,
в их сборке glibc-2.2.5 из rawhide, то что сейчас есть в RH-7.3, работает как 
надо и сегфолта больше не возникает.


P.S. Патч почти закончен, остается тщательная проверка, как закончу, так
сразу пошлю новый...

>  Best regards,
>   -Vlad
>
>
> _______________________________________________
> gnome-cyr mailing list
> gnome-cyr gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-cyr




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]