Ticket #123 (closed defect: fixed)
segfault when playing two-channel audio to a four-channel combine sink
| Reported by: | theorbtwo | Owned by: | lennart |
|---|---|---|---|
| Milestone: | 0.9.7 | Component: | module-combine-* |
| Keywords: | Cc: |
Description
I recently got a four-channel soundcard, which presents itself as two two-channel alsa sinks, hw:0,0 and hw:0,1. The relevant lines from my config file are: load-module module-alsa-sink device=hw:2,0 sink_name=front channels=2 format=s16le rate=48000 channel_map=left,right load-module module-alsa-sink device=hw:2,1 sink_name=rear channels=2 format=s16le rate=48000 channel_map=rear-left,rear-right load-module module-combine sink_name=surround master=front slaves=rear channels=4 channel_map=left,right,rear-left,rear-right set-default-sink surround
A gdb backtrace of the segfault shows: #0 0xb7d71d27 in sink_notify (s=0x80635f8) at modules/module-combine.c:222 #1 0x4f931919 in pa_sink_notify (s=0x80635f8) at pulsecore/sink.c:218 #2 0xb7d71dba in sink_notify (s=0x80635f8) at modules/module-combine.c:231 #3 0x4f931919 in pa_sink_notify (s=0x80635f8) at pulsecore/sink.c:218 #4 0xb7d71dba in sink_notify (s=0x80635f8) at modules/module-combine.c:231 #5 0x4f931919 in pa_sink_notify (s=0x80635f8) at pulsecore/sink.c:218 ... With those two lines repeating themselves.
According to gdb, s is (gdb) p *s $2 = {ref = 1, index = 2, core = 0x8055a28, state = PA_SINK_RUNNING, name = 0x8062b78 "surround",
description = 0x80610e8 "Combined Sink", driver = 0x80593d0 "modules/module-combine.c", is_hardware = 0, owner = 0x80612c8, sample_spec = {format = PA_SAMPLE_S16LE, rate = 48000, channels = 4 '\004'}, channel_map = {
channels = 4 '\004', map = {PA_CHANNEL_POSITION_LEFT, PA_CHANNEL_POSITION_RIGHT, PA_CHANNEL_POSITION_REAR_LEFT,
PA_CHANNEL_POSITION_REAR_RIGHT, PA_CHANNEL_POSITION_MONO <repeats 28 times>}}, inputs = 0x80593f0,
monitor_source = 0x80639e8, hw_volume = {channels = 4 '\004', values = {65536, 65536, 65536, 65536,
0 <repeats 28 times>}}, sw_volume = {channels = 4 '\004', values = {65536, 65536, 65536, 65536, 0 <repeats 28 times>}}, hw_muted = 0, sw_muted = 0, notify = 0xb7d71d20 <sink_notify>,
get_latency = 0xb7d71c81 <sink_get_latency_cb>, set_hw_volume = 0, get_hw_volume = 0, set_hw_mute = 0, get_hw_mute = 0, userdata = 0x8062530}
This is a custom build of debian's 0.9.6 (the normal one also has the segfault, but debugging symbols aren't available.
Thanks, please let me know there's any other data I can provide you with.
