[alsa-devel] How to support software mixing on QUALCOMM 72XX without mmap?
Hello,guys. I'm porting ASLA1.0.23 to qualcomm 72xx base on ARM11. The first instance,"aplay test.wav", works now, but the second instance should fail with "device busy" error message. I have tried plug dmix and dshare "aply -D plug:mycard test.wav", but met a fail again for the soc chip doesn't support mmap. Of course,pcm_mycard is defined in /etc/asound.conf. In my pc ,both above cmds work well .
Though,the document shows that: NOTE: For ALSA 1.0.9rc2 and higher you don't need to setup dmix for analogue output. Dmix is enabled by default for soundcards which don't support hardware mixing. You still need to set it up for digital outputs. My questions are: 1)Is software mixing implemented in ALSA Driver,or in ALSA LIB? 2)What could I do to make the software mixing work? Is there any special configure which need to adjust?
And when testing on pc whth HD audio, I noticed that A)when aplay instances runs WITHOUT dmix, the result of"cat /etc/one_of_my_aplay_pid/maps" should like: ... b331d000-b731e000 rw-s 00000000 00:15 862346 /dev/shm/pulse-shm-2882420837 ... B)when aplay instances runs WITH dmix,the result is: ... b7511000-b7519000 rw-s 00000000 00:0f 4560 /dev/snd/pcmC0D0p b7519000-b751a000 rw-s 81000000 00:0f 4560 /dev/snd/pcmC0D0p b751a000-b751b000 r--s 80000000 00:0f 4560 /dev/snd/pcmC0D0p ... So,the third question: 3) From A) and B),can I make a result that the mmap feacture is not necessary for the buildin software mixing ?
Expect your help,please
berg
On Sun, 2010-05-30 at 00:54 +0800, Berg wrote:
Hello,guys. I'm porting ASLA1.0.23 to qualcomm 72xx base on ARM11. The first instance,"aplay test.wav", works now, but the second instance should fail with "device busy" error message. I have tried plug dmix and dshare "aply -D plug:mycard test.wav", but met a fail again for the soc chip doesn't support mmap. Of course,pcm_mycard is defined in /etc/asound.conf. In my pc ,both above cmds work well .
Though,the document shows that: NOTE: For ALSA 1.0.9rc2 and higher you don't need to setup
dmix for analogue output. Dmix is enabled by default for soundcards which don't support hardware mixing. You still need to set it up for digital outputs. My questions are: 1)Is software mixing implemented in ALSA Driver,or in ALSA LIB? 2)What could I do to make the software mixing work? Is there any special configure which need to adjust?
And when testing on pc whth HD audio, I noticed that A)when aplay instances runs WITHOUT dmix, the result of"cat
/etc/one_of_my_aplay_pid/maps" should like: ... b331d000-b731e000 rw-s 00000000 00:15 862346 /dev/shm/pulse-shm-2882420837 ... B)when aplay instances runs WITH dmix,the result is: ... b7511000-b7519000 rw-s 00000000 00:0f 4560 /dev/snd/pcmC0D0p b7519000-b751a000 rw-s 81000000 00:0f 4560 /dev/snd/pcmC0D0p b751a000-b751b000 r--s 80000000 00:0f 4560 /dev/snd/pcmC0D0p ... So,the third question: 3) From A) and B),can I make a result that the mmap feacture is not necessary for the buildin software mixing ?
Expect your help,please
berg
hi, on which driver do you base your work? codeaurora? I've a driver that works with aplay and mplayer but that has some minor buffer underrun(I need some time to fix that),it works fine for music but not for videos. look inside http://gitorious.org/htc-msm-2-6-32/leviathan-incoming basically the fix for making mplayer work(the fix was suggested by by Thingol on IRC,and the debugging/explaining of the problem was done by me) is in the following commit: deabc32225429b3c0db44f7e62d95d0d2525290b
Denis.
On Sun, May 30, 2010 at 12:54:17AM +0800, Berg wrote:
I'm porting ASLA1.0.23 to qualcomm 72xx base on ARM11.
You might want to coordinate your efforts with the other people working on Qualcomm chipsets. I've CCed in Brian Swetland who I know is one such person but there were a few others.
The first instance,"aplay test.wav", works now, but the second
instance should fail with "device busy" error message. I have tried plug dmix and dshare "aply -D plug:mycard test.wav", but met a fail again for the soc chip doesn't support mmap. Of course,pcm_mycard is defined in /etc/asound.conf.
I'd generally suggest PulseAudio over dmix for software mixing.
My questions are: 1)Is software mixing implemented in ALSA Driver,or in ALSA LIB?
It's implemented in user space, via an ALSA library plugin.
participants (3)
-
Berg
-
GNUtoo
-
Mark Brown