LINUX.ORG.RU

apulse

 ,


24

13

Everyone! Listen up! Today... today...

$ apulse <program-name> [program parameters]

https://github.com/i-rinat/apulse — эмуляция PulseAudio. Когда приложение пытается загрузить libpulse.so, ему подсовывают её версию от apulse, в которой реализована часть функций, достаточная, чтобы запустить Skype и некоторый другой софт.

★★★★★

Больше стандартов, хороших и разных.

anonymous ()

очередной ненужный костыль к ненужно

timuaz_one ()

Не проще ли поменять цифорки, те которые версию показывают, в бинарнике?

anonymous ()

Идея неплохая, на фоне проприетарных поделок требующих исключительно pulseaudio. У меня даже возникло желание портануть это прямо в alsa, чтоб не геморроится и иметь эмуляцию злосчастной пульсы. А то oss есть, пусть и pulse там болтается.

nickleiten ★★★ ()

Больше религий богу религий!

vurdalak ★★★★★ ()
Ответ на: комментарий от Valdor

Ну да, есть. Я её даже настроил, и её работа меня устраивает. Но раз уж я начал это писать, решил довести до состояния Proof-of-Concept. Вряд ли буду доделывать, так что кому нужно — форкайте, лицензия пермиссивная.

i-rinat ★★★★★ ()
Ответ на: комментарий от vurdalak

Да ладно. Мне просто хотелось этот видеофрагмент запостить, а для этого нужен хороший повод.

i-rinat ★★★★★ ()

Чётко. А не хочешь составить список программ, что работает/не работает?

anonymous ()

Отлично, теперь пиши по аналогии для sysvinit эмуляцию systemd, который эмулирует sysvinit.

d_a ★★★★★ ()
Ответ на: комментарий от anonymous

список программ

Пробовал mpv, mplayer, avconv (на запись) и skype.

что работает/не работает?

Отладочная сборка вываливает тонны трассировки в консоль, там функции помечены: F — реализована, Z — не реализована.

i-rinat ★★★★★ ()

Добавил в закладки. А там уже или пульсаудио сдохнет, или эта штуковина пригодится.

xfilx ★★ ()
Ответ на: комментарий от i-rinat

Я уж со скрипом на пульс перелез. Снесу и попробую :)

NeverLoved ★★★★★ ()
Ответ на: комментарий от Waterlaz

а я вот такой велосипед запилил для скайпа и OSS

Он мне очень помог. Изначально я планировал сделать прослойку потоньше и использовать буферизацию ALSA, но ничего не работало. Потом увидел у тебя отдельный буфер под семплы и добавил у себя кольцевой буфер.

i-rinat ★★★★★ ()

Теперь можно пройтись по популярному софту и выпилить оттуда поддержку alsa, ссылаясь на этот костыль как на замену. Меньше кода же. Профит.

x3al ★★★★★ ()
Ответ на: комментарий от i-rinat

Да, я тоже пытался сделать без буфера. Но у меня оказывалось, что skype пытался выводить звук короткими кусками чуть ли не по 10-20 байт и все заикалось. У меня буфер потому и называется why_buffer, что сделал я его от досады (изначально он был вообще wtf_buffer =)

Waterlaz ★★★★ ()

[ 6%] Building C object CMakeFiles/pulse.dir/src/apulse-channel-map.c.o
[ 13%] Building C object CMakeFiles/pulse.dir/src/apulse-context.c.o
[ 20%] Building C object CMakeFiles/pulse.dir/src/apulse-mainloop.c.o
[ 26%] Building C object CMakeFiles/pulse.dir/src/apulse-misc.c.o
[ 33%] Building C object CMakeFiles/pulse.dir/src/apulse-operation.c.o
[ 40%] Building C object CMakeFiles/pulse.dir/src/apulse-proplist.c.o
[ 46%] Building C object CMakeFiles/pulse.dir/src/apulse-signal.c.o
[ 53%] Building C object CMakeFiles/pulse.dir/src/apulse-stream.c.o
[ 60%] Building C object CMakeFiles/pulse.dir/src/apulse-threaded-mainloop.c.o
[ 66%] Building C object CMakeFiles/pulse.dir/src/trace.c.o
[ 73%] Building C object CMakeFiles/pulse.dir/src/util.c.o
[ 80%] Building C object CMakeFiles/pulse.dir/src/ringbuffer.c.o
[ 86%] Building C object CMakeFiles/pulse.dir/src/notimplemented.c.o
/home/user/apulse/src/notimplemented.c:351:5: error: conflicting types for ‘pa_format_info_is_compatible’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:102:5: note: previous declaration of ‘pa_format_info_is_compatible’ was here
/home/user/apulse/src/notimplemented.c:372:17: error: conflicting types for ‘pa_format_info_from_sample_spec’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:119:17: note: previous declaration of ‘pa_format_info_from_sample_spec’ was here
/home/user/apulse/src/notimplemented.c:379:5: error: conflicting types for ‘pa_format_info_to_sample_spec’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:126:5: note: previous declaration of ‘pa_format_info_to_sample_spec’ was here
/home/user/apulse/src/notimplemented.c:386:16: error: conflicting types for ‘pa_format_info_get_prop_type’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:150:16: note: previous declaration of ‘pa_format_info_get_prop_type’ was here
/home/user/apulse/src/notimplemented.c:393:5: error: conflicting types for ‘pa_format_info_get_prop_int’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:153:5: note: previous declaration of ‘pa_format_info_get_prop_int’ was here
/home/user/apulse/src/notimplemented.c:400:5: error: conflicting types for ‘pa_format_info_get_prop_int_range’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:156:5: note: previous declaration of ‘pa_format_info_get_prop_int_range’ was here
/home/user/apulse/src/notimplemented.c:407:5: error: conflicting types for ‘pa_format_info_get_prop_int_array’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:160:5: note: previous declaration of ‘pa_format_info_get_prop_int_array’ was here
/home/user/apulse/src/notimplemented.c:414:5: error: conflicting types for ‘pa_format_info_get_prop_string’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:163:5: note: previous declaration of ‘pa_format_info_get_prop_string’ was here
/home/user/apulse/src/notimplemented.c:421:5: error: conflicting types for ‘pa_format_info_get_prop_string_array’
In file included from /usr/include/pulse/pulseaudio.h:28:0,
from /home/user/apulse/src/apulse.h:31,
from /home/user/apulse/src/notimplemented.c:25:
/usr/include/pulse/format.h:167:5: note: previous declaration of ‘pa_format_info_get_prop_string_array’ was here
/home/user/apulse/src/notimplemented.c:488:55: error: unknown type name ‘pa_operation_notify_cb_t’
make[2]: *** [CMakeFiles/pulse.dir/src/notimplemented.c.o] Error 1
make[1]: *** [CMakeFiles/pulse.dir/all] Error 2
make: *** [all] Error 2

==============

Что не так? :(

Gonzo ★★★★★ ()
Ответ на: комментарий от Gonzo

Пульсаудио, наверное, старая. У меня пятая. Видимо, API менялось.

Из notimplemented.c можно функции удалять без особых последствий. Может так соберётся.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Я просто не программер. Поудаляю не то... Ладно, жаль, что ты не пилишь эту штуку. Может кто форкнет...

Gonzo ★★★★★ ()
Ответ на: комментарий от i-rinat

Сорри, разобрался. У меня заработал звук в скайпе. Связь пока не тестил в плане микрофона и наушников ибо дома нет такой возможности, на работе проверю.

Gonzo ★★★★★ ()
Последнее исправление: Gonzo (всего исправлений: 2)
Ответ на: комментарий от Darth_Revan

Видел этот трэд?

Нет, не видел.

Говорят, не работает.

То они неправильно запускают.

Waterlaz ★★★★ ()
Последнее исправление: Waterlaz (всего исправлений: 1)

Так оно же вроде было, или что-то похожее. Уже давно.

hbars ★★★★ ()

респект автору!

anonymous ()

ТС продолжает наступление на косые приложения, теперь и на звуковом фронте! Хайл!

bj ()

Что-то обламывается

![apulse] [error] do_connect_pcm, snd_pcm_open, Input/output error
[apulse] [error] do_connect_pcm, snd_pcm_open, Input/output error
ALSA lib pcm_pulse.c:743:(pulse_prepare) PulseAudio: Unable to create stream: Oops.

[apulse] [error] do_connect_pcm, snd_pcm_open, Input/output error
[apulse] [error] do_connect_pcm, snd_pcm_open, Input/output error
ALSA lib pcm_pulse.c:743:(pulse_prepare) PulseAudio: Unable to create stream: Oops.

!!

Skype-4.3.0.37.

anonymous ()
Ответ на: комментарий от i-rinat

Всё, заработало. Это alsa пытлась играть через плагин pulseaudio.

anonymous ()
Ответ на: комментарий от i-rinat

для работы твоей проги требуется pulseaudio?

Lifun ★★★★★ ()
Ответ на: комментарий от Valdor

Есть же пульса.

да, вот чтобы это уг эмулировать создан данный проект

anonymous ()

Freshplayer, apulse - линукс теперь готов для десктопа!

Кроме шуток, спасибо, бро. Вот так вот, по мелочам, все работает и приятно.

Gonzo ★★★★★ ()

i-rinat, я смотрю, билд-скрипт будет выверен до последнего символа?)

aidan ★★★★ ()
Ответ на: комментарий от aidan

Да там пришёл какой-то специалист с заскоками по поводу защитного программирования. Я подумал, что он поймёт намёк в сообщении про установку CTest в «/Program Files», но это не сработало.

Тем не менее, какие-то из его слов разумны. Почему бы не поправить несложные баги?

i-rinat ★★★★★ ()

pasuspender apulse audacious

и ошибка, такая же как у анонима в этой теме
возможно, я много хочу?

reprimand ★★★★★ ()

в очередной раз удалил пульсу.

vova7890 ★★★ ()
Ответ на: комментарий от reprimand

If you want 32-bit binaries on 64-bit machine, use...

ах, блин, не прочел до конца! наверное в этом зарыта причина...

reprimand ★★★★★ ()
Ответ на: комментарий от reprimand

ошибка, такая же как у анонима в этой теме

Там дело было в плагине для ALSA. Например, в Debian, когда ставишь pulseaudio, принудительно ставится плагин для ALSA, который всё заворачивает в PulseAudio. Его можно выключить, удалив файл настройки /usr/share/alsa/alsa.conf.d/pulse.conf

i-rinat ★★★★★ ()

Больше врапперов богу врапперов!

Хе-хе, спасибо! Крутой проект!

EXL ★★★★★ ()

Добавил в избранное! На досуге попробую самостоятельно написать ебилд, может, таким образом научусь это делать.

yura_ts ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.