Принцип работы звука в linux
Добрый день! До определенного момента считал, что звук в linux воспроизводится благодаря xserver...но после трассировки mplayer немного потерялся. Буду благодарен за пояснение данного процесса (в какой сокет/файл записывается аудиопоток?).
Вот, что нашел:
Вырезки из «strace mplayer»:
pipe2([5, 6], O_CLOEXEC)
и в цикле записывает (4 - это аудиофайл)
read(4, "~\2760\v\305'\251\357\377\376\273\377\277\351#~\0\0\0\20\6g?\367\342\327U\303ej\351J"..., 4096) = 4096
write(6, "W", 1) = 1
Кроме того перед этим открывает
socket(AF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 9
connect(9, {sa_family=AF_LOCAL, sun_path="/run/user/1000/pulse/native"}, 110) = 0
А также нашел открытие сокета X11, но он закрывается еще до начала воспроизведения:
( читать дальше... )
PS: лез в исходники mplayer, но там уперся в библиотечные функции pulseaudio, которые в свою очередь пестрят изобильным интерфейсом и многочисленными ответвлениями, так что копать дальше ради того, чтобы узнать как оно работает не стал. (мне, для личного FAQ, достаточно внешний интерфейс, и алгоритм его взаимодействия с ядром на пальцах)