[pulseaudio-tickets] [PulseAudio] #570: pulseaudio crashes with a52-alsa-sink

PulseAudio trac-noreply at tango.0pointer.de
Wed May 20 12:23:40 PDT 2009


#570: pulseaudio crashes with a52-alsa-sink
--------------------+-------------------------------------------------------
 Reporter:  SWeini  |       Owner:  lennart      
     Type:  defect  |      Status:  new          
Milestone:          |   Component:  module-alsa-*
 Keywords:          |  
--------------------+-------------------------------------------------------
 hi there,

 i have pulseaudio-0.9.15, pavucontrol 0.9.8, 2.6.28 kernel, asus xonar d2x
 sound card

 i can't get pulseaudio to work with my alsa-a52-encoding-device

 asound.conf:
 --------------------
 {{{
 pcm.!a52 {
   @args [ CARD DEV ]
   @args.CARD {
     type string
     default {
       @func getenv
       vars [
         ALSA_IEC958_CARD
         ALSA_PCM_CARD
         ALSA_CARD
       ]
       default {
         @func refer
         name defaults.pcm.iec958.card
       }
     }
   }
   @args.DEV {
     type integer
     default {
       @func igetenv
       vars [
         ALSA_IEC958_DEVICE
       ]
       default {
         @func refer
         name defaults.pcm.iec958.device
       }
     }
   }
   type rate
   slave.pcm {
     type a52
     slavepcm {
       @func concat
       strings [
         "cards."
         {
           @func card_driver
           card $CARD
         }
         ".pcm.iec958." $DEV ":CARD=" $CARD
       ]
     }
   }
   slave.rate 48000
   hint {
     show "5.1 Surround output through AC3-encoding"
     description "5.1 Surround output through AC3-encoding"
     device $DEV
   }
 }
 }}}
 --------------------

 the problem in short:
 as soon as pulseaudio starts playing on the a52-device (speaker-test -c 6
 -D default) it is shut down due to an error
 --------------------
 {{{
 I: alsa-sink.c: Trying resume...
 D: alsa-sink.c: hwbuf_unused=0
 D: alsa-sink.c: setting avail_min=1
 I: alsa-sink.c: Resumed successfully...
 I: alsa-sink.c: Starting playback.
 D: module-suspend-on-idle.c: Sink alsa_output.pci_13f6_8788 becomes idle.
 D: module-suspend-on-idle.c: Sink alsa_output.pci_13f6_8788 becomes busy.
 D: memblockq.c: memblockq requested: maxlength=33554432, tlength=0,
 base=12, prebuf=0, minreq=1 maxrewind=0
 D: memblockq.c: memblockq sanitized: maxlength=33554436, tlength=33554436,
 base=12, prebuf=0, minreq=12 maxrewind=0
 I: sink-input.c: Created input 0 "ALSA Playback" on
 alsa_output.pci_13f6_8788 with sample spec s16le 6ch 48000Hz and channel
 map front-left,front-right,rear-left,rear-right,front-center,lfe
 I: protocol-native.c: Requested tlength=7281.75 ms, minreq=1820.44 ms
 D: protocol-native.c: Traditional mode enabled, modifying sink usec only
 for compat with minreq.
 D: memblockq.c: memblockq requested: maxlength=4194304, tlength=4194288,
 base=12, prebuf=3145716, minreq=1048572 maxrewind=0
 D: memblockq.c: memblockq sanitized: maxlength=4194312, tlength=4194288,
 base=12, prebuf=3145716, minreq=1048572 maxrewind=0
 I: protocol-native.c: Final latency 7345.75 ms = 3640.88 ms + 2*1820.44 ms
 + 64.00 ms
 D: core-subscribe.c: Dropped redundant event due to change event.
 D: protocol-native.c: Requesting rewind due to end of underrun.
 D: alsa-sink.c: Requested to rewind 36864 bytes.
 D: alsa-sink.c: Limited to 25344 bytes.
 D: alsa-sink.c: before: 2112
 E: alsa-sink.c: snd_pcm_rewind() failed: Unknown error 3072
 I: module.c: Unloading "module-alsa-card" (index: #5).
 }}}
 --------------------

 the corresponding speaker-test output:
 --------------------
 {{{
 Playback device is default
 Stream parameters are 48000Hz, S16_LE, 6 channels
 Using 16 octaves of pink noise
 Rate set to 48000Hz (requested 48000Hz)
 Buffer size range from 43 to 349525
 Period size range from 21 to 87382
 Using max buffer size 349524
 Periods = 4
 was set period_size = 87381
 was set buffer_size = 349524
  0 - Front Left
  4 - Center
 Write error: -32,Broken pipe
 Can't recovery from underrun, prepare failed: Input/output error
 }}}
 --------------------

 speaker-test -c 6 -D a52 works just fine:
 --------------------
 {{{
 Playback device is a52
 Stream parameters are 48000Hz, S16_LE, 6 channels
 Using 16 octaves of pink noise
 Rate set to 48000Hz (requested 48000Hz)
 Buffer size range from 3072 to 32256
 Period size range from 1536 to 1536
 Using max buffer size 32256
 Periods = 4
 was set period_size = 1536
 was set buffer_size = 32256
 }}}
 --------------------

 pulseaudio detects this as a separate card configuration as it should:
 --------------------
 {{{
 I: sink.c: Created sink 1 "alsa_output.pci_13f6_8788" with sample spec
 s16le 6ch 48000Hz and channel map front-left,front-right,rear-left,rear-
 right,front-center,lfe
 I: sink.c:     alsa.resolution_bits = "16"
 I: sink.c:     device.api = "alsa"
 I: sink.c:     device.class = "sound"
 I: sink.c:     alsa.class = "generic"
 I: sink.c:     alsa.subclass = "generic-mix"
 I: sink.c:     alsa.name = ""
 I: sink.c:     alsa.id = ""
 I: sink.c:     alsa.subdevice = "0"
 I: sink.c:     alsa.subdevice_name = ""
 I: sink.c:     alsa.device = "0"
 I: sink.c:     device.string = "a52:0"
 I: sink.c:     device.buffering.buffer_size = "36864"
 I: sink.c:     device.buffering.fragment_size = "18432"
 I: sink.c:     device.access_mode = "mmap"
 I: sink.c:     device.profile.name = "iec958-ac3-surround-51"
 I: sink.c:     device.profile.description = "Digital Surround 5.1
 (IEC958/AC3)"
 I: sink.c:     device.description = ""
 I: sink.c:     alsa.card = "0"
 I: sink.c:     alsa.card_name = "Xonar D2X"
 I: sink.c:     alsa.long_card_name = "Asus Virtuoso 200 (rev 2) at 0x5e00,
 irq 16"
 I: sink.c:     device.icon_name = "audio-card"
 }}}
 --------------------

 alsa-util-dump:
 --------------------
 {{{
 D: alsa-util.c: snd_pcm_dump():
 D: alsa-util.c: Rate conversion PCM (48000)
 D: alsa-util.c: Its setup is:
 D: alsa-util.c:   stream       : PLAYBACK
 D: alsa-util.c:   access       : MMAP_INTERLEAVED
 D: alsa-util.c:   format       : S16_LE
 D: alsa-util.c:   subformat    : STD
 D: alsa-util.c:   channels     : 6
 D: alsa-util.c:   rate         : 48000
 D: alsa-util.c:   exact rate   : 48000 (48000/1)
 D: alsa-util.c:   msbits       : 16
 D: alsa-util.c:   buffer_size  : 3072
 D: alsa-util.c:   period_size  : 1536
 D: alsa-util.c:   period_time  : 32000
 D: alsa-util.c:   tstamp_mode  : ENABLE
 D: alsa-util.c:   period_step  : 1
 D: alsa-util.c:   avail_min    : 1536
 D: alsa-util.c:   period_event : 0
 D: alsa-util.c:   start_threshold  : -1
 D: alsa-util.c:   stop_threshold   : 6917529027641081856
 D: alsa-util.c:   silence_threshold: 0
 D: alsa-util.c:   silence_size : 0
 D: alsa-util.c:   boundary     : 6917529027641081856
 D: alsa-util.c: Slave: A52 Output Plugin
 D: alsa-util.c: Its setup is:
 D: alsa-util.c:   stream       : PLAYBACK
 D: alsa-util.c:   access       : MMAP_INTERLEAVED
 D: alsa-util.c:   format       : S16_LE
 D: alsa-util.c:   subformat    : STD
 D: alsa-util.c:   channels     : 6
 D: alsa-util.c:   rate         : 48000
 D: alsa-util.c:   exact rate   : 48000 (48000/1)
 D: alsa-util.c:   msbits       : 16
 D: alsa-util.c:   buffer_size  : 3072
 D: alsa-util.c:   period_size  : 1536
 D: alsa-util.c:   period_time  : 32000
 D: alsa-util.c:   tstamp_mode  : ENABLE
 D: alsa-util.c:   period_step  : 1
 D: alsa-util.c:   avail_min    : 1536
 D: alsa-util.c:   period_event : 0
 D: alsa-util.c:   start_threshold  : -1
 D: alsa-util.c:   stop_threshold   : 6917529027641081856
 D: alsa-util.c:   silence_threshold: 0
 D: alsa-util.c:   silence_size : 0
 D: alsa-util.c:   boundary     : 6917529027641081856
 }}}
 --------------------

 do you have any clue what the problem could be?

 i suggest the problem is the different period_size/buffer_size
 configuration, but i'm not sure - and i don't know how to change it

 thx, simon

-- 
Ticket URL: <http://pulseaudio.org/ticket/570>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server


More information about the pulseaudio-bugs mailing list