[alsa-devel] PCM multi A/V Sync bug on SMP system

Keith Chew keith.chew at gmail.com
Sun Apr 25 07:07:45 CEST 2010


I have a SB Audigy Value card with 5.1 channel output. This is defined
in my asound.conf:
pcm.multi {
    type    multi
    slaves {
        a.pcm        "dmixerrear"
        a.channels   2
        b.pcm        "dmixerfront"
        b.channels   2
        c.pcm        "dmixercenter"
        c.channels   2
    bindings {
        0.slave      a
        0.channel    0
        1.slave      a
        1.channel    1
        2.slave      b
        2.channel    0
        3.slave      b
        3.channel    1
        4.slave      c
        4.channel    0
        5.slave      c
        5.channel    1

    pcm.dmixerfront  {
        type dmix
        ipc_key 1024
        slave {
            pcm "hw:0,0"
            channels 2

    pcm.dmixerrear  {
        type dmix
        ipc_key 1025
        slave {
            pcm "hw:0,1"
            channels 2
    pcm.dmixercenter  {
        type dmix
        ipc_key 1026
        slave {
            pcm "hw:0,2"
            channels 2

Playing a video with "mplayer -ao alsa:device=multi ..." works fine, I
can hear the 6-channel audio without any A/V sync issues. However,
this is on a uniprocessor system. On an SMP system, the A/V sync gets
out of sync from the start and drifts quite quickly.

I have narrowed it down to the pcm_multi component giving this
problem. On an SMP system, using just "mplayer -ao alsa ..." gives no
A/V sync issues (because it is not using multi) on the 6 channels.
Moreover, I have also tried "mplayer -ao alsa:device=dmixerfront ...",
"mplayer -ao alsa:device=dmixercenter ..." and "mplayer -ao
alsa:device=dmixerrear ...", all giving no A/V sync issues on the
individual devices.

Please advise how can I track down this problem in code, happy to make
changes and test.

PS: I need multi to work, so that I can add additional options like
softvol on top of it.


More information about the Alsa-devel mailing list