LINUX.ORG.RU

Опять о многопоточном звуке из разных приложений


0

0

В продолжение недавней ругани на ЛОРе по этому вопросу.

Вот, только что наткнулся.

Стоит на паузе smplayer с киношкой. Запускаю музыку через mplayer:

==========================================================================
Открываю декодер аудио: [mp3lib] MPEG layer-2, layer-3
AUDIO: 44100 Hz, 2 ch, s16le, 192.0 kbit/13.61% (ratio: 24000->176400)
Выбран аудиокодек: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
[AO_ALSA] alsa-lib: pcm_dmix.c:977:(snd_pcm_dmix_open) unable to create IPC semaphore
[AO_ALSA] Ошибка начала воспроизведения: Permission denied
Не могу инициализировать аудио драйвер 'alsa:device=main_20'
Не могу открыть/инициализировать аудиоустройство -> без звука.

main_20 - это:

pcm.main_20 {
type route
slave.pcm "dmix6"
slave.channels 6

ttable.0.0 1 # left to left
ttable.0.2 0.5 # left to back left
ttable.0.4 0 # left to center

ttable.1.1 1 # right to right
ttable.1.3 0.5 # right to back right
ttable.1.4 0 # right ti center

ttable.0.5 0.15 # left to SW
ttable.1.5 0.15 # right to SW
}

dmix6, это:

# 6 channel dmix:
pcm.dmix6 {
     type dmix
        ipc_key 1024
        ipc_key_add_uid false # let multiple users share
        ipc_perm 0660 # IPC permissions (octal, default 0600)
        slave {
                pcm snd_card # see below
                rate 48000
                channels 6
                period_time 0
                period_size 1024 # try 2048 against skipping
                buffer_time 0
                buffer_size 5120 # in case of problems reduce this
                                 # in case of skipping, try increasing
        }
     }

Ну что, есть мысли, как сделать, чтобы звук не хуже, чем в Win95 был? :)

★★★★★

у меня в слаке (начиная еще помоему с 11й) это по дефолту работает. т.е можно к примеру во время воспроизведения кино музыку слушать или в шпилево играть.

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

>Может быть, купить звуковую карту, а не пользоваться встроенным г.?

Т.е. ты предлагаешь засчитать Linux'у слив в этом вопросе? Ибо уже в win9x такого не было на _любых_ звуковых картах :) Под виндой однопоточный звук умер вместе с win 3.1x

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

>у меня в слаке (начиная еще помоему с 11й) это по дефолту работает. т.е можно к примеру во время воспроизведения кино музыку слушать

Это зависит от звуковухи и от конкретных приложений. В некоторых случаях и у меня можно. Но часто - именно вот так.

Скажем, напрочь отбирает звук флеш в браузерах.

KRoN73 ★★★★★
() автор топика

Играет одновременно smplayer и два mlayera. Какофония, но играют все три одновременно. Ничего не настраивал вообще. Debian.
uname -a
Linux work 2.6.32-3-686-bigmem #1 SMP Thu Feb 25 06:54:30 UTC 2010 i686 GNU/Linux
lspci | grep Audio
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

ps -A -F | grep mplay
kon 3105 2974 0 19662 19056 1 10:52 pts/3 00:00:01 smplayer
kon 3115 3105 2 15016 11320 0 10:54 pts/3 00:00:01 /usr/bin/mplayer -noquiet -nofs -nomouseinput -sub-fuzziness 1 -identify -slave -vo xv, -ao alsa, -nokeepaspect -framedrop -nodr -double -input conf=/usr/share/smplayer/input.conf -stop-xscreensaver -wid 75497487 -monitorpixelaspect 1 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -ass-styles /home/kon/.config/smplayer/styles.ass -fontconfig -font Arial -subfont-autoscale 0 -subfont-osd-scale 20 -subfont-text-scale 20 -subcp ISO-8859-1 -subpos 100 -cache 2000 -osdlevel -vf-add screenshot -slices -af equalizer=0:0:0:0:0:0:0:0:0:0 -softvol -softvol-max 110 /home/kon/music/Кино/1985 - Это не любовь/Проснись.mp3
kon 3116 3115 0 14810 4288 0 10:54 pts/3 00:00:00 /usr/bin/mplayer -noquiet -nofs -nomouseinput -sub-fuzziness 1 -identify -slave -vo xv, -ao alsa, -nokeepaspect -framedrop -nodr -double -input conf=/usr/share/smplayer/input.conf -stop-xscreensaver -wid 75497487 -monitorpixelaspect 1 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -ass-styles /home/kon/.config/smplayer/styles.ass -fontconfig -font Arial -subfont-autoscale 0 -subfont-osd-scale 20 -subfont-text-scale 20 -subcp ISO-8859-1 -subpos 100 -cache 2000 -osdlevel -vf-add screenshot -slices -af equalizer=0:0:0:0:0:0:0:0:0:0 -softvol -softvol-max 110 /home/kon/music/Кино/1985 - Это не любовь/Проснись.mp3
kon 3117 2947 1 14476 10236 0 10:54 pts/1 00:00:00 mplayer 09 - Всё вертится.mp3
kon 3118 2957 1 14478 10236 0 10:54 pts/2 00:00:00 mplayer 04 - Что-нибудь такое.mp3
kon 3144 2996 0 903 788 1 10:55 pts/4 00:00:00 grep mplay

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

Как бы очевидно, что это зависит во многом от звуковухи.

Меня интересует не то, что у других работает, это я и без того знаю, а как заставить работать на том, что есть у меня. Я не верю, что Linux в этом вопросе безнадёжно отстаёт на 15 лет.

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

Под виндой однопоточный звук умер вместе с win 3.1x

А смысл лишний раз нагружать процессор? Я считаю, что каждая железяка должна заниматься своими делами. Кроме того, MIDI, например, тоже должна синтезировать карточка, а никак не процессор.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Komintern

>поставить любой дистр кроме генту и проверить будет ли работать. если будет - взять оттуда конфиг :)

Что такое «конфиг» в этом случае? Что в Gentoo, что в той же Ubuntu никакого конфига нет. Есть настройки для загрузки ядра, так они всё равно alsaconf'ом прописываются и параметров особых не имеют.

.asoundrc в Ubuntu у меня вообще нету.

В Gentoo его отсутствие проблемы не решает.

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

>А смысл лишний раз нагружать процессор?

Например, чтобы я мог слушать музыку при запущенном браузере.

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

Мне это ни о чём полезном не говорит.

$ sudo ipcs

------ Сегменты совм. исп. памяти --------
ключ   shmid      владелец права байты nattch     состояние
0x00000000 0          root       777        135168     1                       
0x00000000 32769      tasya      600        393216     2          назначение       
0x00000000 65538      tasya      600        393216     2          назначение       
0x00000000 98307      tasya      600        393216     2          назначение       
0x00000000 131076     tasya      600        393216     2          назначение       
0x00000000 163845     tasya      600        393216     2          назначение       
0x00000000 196614     tasya      600        393216     2          назначение       
0x00000000 229383     tasya      600        393216     2          назначение       
0x00000000 262152     tasya      600        393216     2          назначение       
0x00000000 294921     tasya      600        393216     2          назначение       
0x00000000 2129930    tasya      600        393216     2          назначение       
0x00000400 6160395    tasya      660        488        1                       
0x00000401 6193164    tasya      660        122880     1                       
0x00000000 6225933    tasya      777        373248     2          назначение       
0x00000000 6258702    tasya      777        373248     2          назначение       
0x00000000 1540111    tasya      600        393216     2          назначение       

------ Массивы семафоров --------
ключ   semid      владелец права nsems     
0x00000400 2555904    tasya      660        1         

------ Очереди сообщений --------
ключ   msqid      владелец права исп. байты сообщения
KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Попробуйте минимизировать изначальный конфиг или вовсе его изничтожить.
У меня так.
cat .asoundrc
pcm.atiixp {
type hw
card 0
}
ctl.atiixp {
type hw
card 0
}

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

Без конфига - та же фигня. Можно попробовать поиграть ещё с dmix'ом. Досмотрит дочка мультики - попробую помучить. Но в успех верится слабо. Боюсь, что если бы этот вопрос решался легко, то он такая трабла не встречалась бы столь часто. И типовым советом не был бы ответ «купи правильную железку» :)

KRoN73 ★★★★★
() автор топика

У меня в linux всегда были 2 проблемы:
1) Игры
2) Звук
Если первое понятно, то второе фиг знает как решать. Пока решил использованием только ALSA без пульсов и остального.

tia
()
Ответ на: комментарий от KRoN73

И что за машинка? Ноут, нетбук, кто производитель, cat /proc/asound/version

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

Например, чтобы я мог слушать музыку при запущенном браузере.

O_o а каким боком браузер к альсе относится? Всякие-там ворбисы блокируют звуковую карту только на время воспроизведения.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KRoN73

Попробуте например как то так:
cat /proc/asound/card0/codec#* | grep Codec
Codec: Realtek ALC889A
У меня ALC889A
zcat /usr/share/doc/alsa-base/driver/HD-Audio-Models.txt.gz| grep ALC889A
intel-alc889a Intel IbexPeak with ALC889A

options snd-hda-intel probe_mask=1 model=intel-alc889a

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

>Досмотрит дочка мультики - попробую помучить

Блин, после закрытия и переоткрытия smplayer'а глюк исчез.

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

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

>А модуль грузится по умолчанию или были уже игры с options snd-hda-intel?

По умолчанию.

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

>O_o а каким боком браузер к альсе относится?

А через что он играет?

Всякие-там ворбисы блокируют звуковую карту только на время воспроизведения.


Фиг там. Ставишь Ютуб на паузу - звук в системе от этого не восстанавливается.

И при чём тут ворбис? Ogg Vorbis?

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

>Кстати, дай четкую последовательность, как воспроизвести ситуацию.

Если бы я умел её гарантированно воспроизводить в mplayer/etc, я бы попробовал сам разобраться. Но она всплывает каждый раз неожиданно.

...

Надо опять в браузерами поиграть. Но дочка опять смотрит мультики :)

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

>Дык не надо всякой дрянью типа флешей пользоваться :)

Ну, это я уж сам разберусь, что дрянь, а что нет :)

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

короче нужно просто проверить в любом другом дистре кроме генты.

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

Естественно поможет. Fedora 12 - все работает искаропки. Замечание по убунте - они там ниасилили запустить pulseaudio c runtime-priority, за что их Леннарт обматерил последними словами дружески пожурил. И забудь уже про 95-ю винду, семерка сперла несколько фич из пульса, так что еще вопрос, кто кого догоняет.

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

И еще, это у тебя случайно не 64-бита с 32-битным флешом? Если так, то там наверное может быть и что-то еще «интересное».

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

>И еще, это у тебя случайно не 64-бита с 32-битным флешом?

Нет, у меня пока нет десктопов, где больше 4Гб оперативки :)

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

>$ sudo lspci | grep Audio

00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller


$ lspci | grep Audio
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)

Всё работает. Youtube и mplayer. Gentoo.

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

Нет, у меня пока нет десктопов, где больше 4Гб оперативки :)

Ну я так и думал, на всяк случай спросил. А с флешом весело потому, что несчастный разраб адоба не осилил звук в линуксе, о чем он кричал на весь интернет. В результате родился костыль libflashsupport.so, чтение исходников которого очень веселое занятие, потом этот костыль куда-то подевался, возможно его засунули в плеер, не следил.

А вообще рекомендую пульс, но надо убедится, что у него риалтайм приоритет. А если что-то с пульсом тупит (игры могут) - всегда есть pasuspender, а для совсем древних ископаемых с OSS - padsp.

vga ★★
()

а какая разница что за звукавуха, если алса средствами dmix миксует сама?
у меня гемор может быть тока если в софте выбран НЕ дефолт девайс для вывода.

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

>а какая разница что за звукавуха, если алса средствами dmix миксует сама?

Например, разница в том, что на разных машинах с абсолютно одинаковой алсой и одинаковыми [или почти одинаковыми - одна из машин, сабжевая, с 5.1, остальные - 2.0] настройками конфига, но разными звуковухами, глюки встречаются в совершенно неравных пропорциях :)

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

хз - у мну 2 звукавухи - одна из них вшитое г - так на обеих нормально
тока они конфликтуют между собой( - но это железное

megabaks ★★★★
()
Ответ на: комментарий от KRoN73
#/etc/asound.conf start:
pcm.!default {
    type plug
    slave.pcm "dmixer"
}


pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}
pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 48000   #many new cards are 48000 only
    }
    bindings {
        0 0
        1 1
    }
}

ctl.dmixer {
    type hw
    card 0
}
megabaks ★★★★
()

Что за звуковая карта ?

Что у тебя в /proc/asound ?

Вообще пишет aplay -L ?

Что нибудь подобное есть ?

default:CARD=Audigy2
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    Default Audio Device
front:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    Front speakers
rear:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    Rear speakers
center_lfe:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    Center and Subwoofer speakers
side:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    Side speakers
surround40:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audigy2,DEV=0
    SB Audigy 4 [SB0610], ADC Capture/Standard PCM Playback
    IEC958 (S/PDIF) Digital Audio Output
null
    Discard all samples (playback) or generate zero samples (capture)

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

Вообще пишет aplay -L

Я имел в виду что выдаёт команда «aplay -L» ?

greatpower
()

испытываю все те же проблемы что и ТС, на karmic amd64

пульс стоит (без этой гадости в бубунте даже громкость отрегулировать никак кроме alsamix)

наблюдаю проблемы со всеми видео-плеерами (totem, vlc, mplayer). в выхлопах - молчок.

часто погоду строит флеш (особенно с chrome, которые часто «забывает» выгрузить эту срань из памяти)

последней каплей для меня стало отсутствие звука в q3. причем запускается - звук есть. секунд 20-30. потом пропадает. минут через 20 может внезапно появится (с хрипами). потом опять исчезает. В выхлопе - только «dropping sound»

dmesg молчит.

сдается мне, что в алсе что-то сломали, причем не так давно, в начале февраля все было ок. и пульс здесь ни причем.

k0l0b0k@khome:~$ aplay -L
front:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    Front speakers
surround40:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
    HDA Intel, ALC883 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
    HDA Intel, ALC883 Digital
    IEC958 (S/PDIF) Digital Audio Output
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    Playback/recording through the PulseAudio sound server
k0l0b0k ★★
()
Ответ на: комментарий от vga

>семерка сперла несколько фич из пульса

Заикания чтоли сперла? Сильно сомневаюсь. В этом вашем линаксе даже EAX нету — о чем можно говорить при такой убогой звуковой подсистеме?

linuxfan
()
Ответ на: комментарий от k0l0b0k

Можно попробовать запустить музыкальный файл командой

aplay -v music.mp3
Появится множество сообщений. Нужно проследить что происходит с звуковым потоком.

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

как только еще раз застану - проверю, выложу результаты.

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