[pulseaudio-discuss] [PATCH] Up max channels to 64 for MADI cards etc

Takashi Sakamoto o-takashi at sakamocchi.jp
Fri Jan 27 13:08:22 UTC 2017


Hi Tanu and Klaus,

On Jan 27 2016 20:26, Tanu Kaskinen wrote:
> On Tue, 2017-01-24 at 11:35 -0800, Klaus Badelt wrote:
>> The 32 channel limit excludes use of audio interfaces like for example (my)
>> RME HDSPe MADI (64x64), all other MADI interfaces (incl. RME MADIface), RME
>> Fireface UFX+ (94x94), MOTU 1248 (32x34), MOTU 112D (112), Focusrite Red
>> (64x64), ProTools hardward, and more. In general, we're excluding many pro
>> audio and prosumer audio interfaces.
>>
>> A workaround could be to limit use of first 32 channels instead of crashing
>> with assert on startup. Happy to work on a patch if you see this as a
>> potential path.
>
> What's the assertion? At the very least the crash should be fixed, even
> if it doesn't make the sound card work.

I face the assertion in my current work for ALSA driver for MOTU 
FireWire units. One of my test device supports 34ch capture. When 
logging in desktop environment which starts pulseaudio process, I can 
see its abort due to below assertion.

pulseaudio[18757]: [pulseaudio] channelmap.c: Assertion 
'pa_channels_valid(channels)' failed at pulse/channelmap.c:401, function 
pa_cannel_map_init_extend(). Aborting.

Below is the stacktrace.

== Stacktrace =================================
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
         set = {__val = {0, 0, 0, 0, 0, 0, 4672924419136, 146028888064, 
34, 189408057797700, 105961138159616, 24671, 4672924419136, 0, 0, 0}}
         pid = <optimized out>
         tid = <optimized out>
#1  0x00007f50383433ea in __GI_abort () at abort.c:89
         save_stage = 2
         act = {__sigaction_handler = {sa_handler = 0x3000000028, 
sa_sigaction = 0x3000000028}, sa_mask = {__val = {0, 140732661601104, 
4035625362880256, 140732661601088, 0, 139982539889656, 94743048657840, 
139982546343824, 0, 0, 140732661601104, 0, 139982517379468, 
189408057753607, 139981574111266, 140732661600784}}, sa_flags = 
965515017, sa_restorer = 0x7f503990903e}
         sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f50398c9712 in pa_channel_map_init_extend () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-9.0.so
No symbol table info available.
#3  0x00007f502ac6f058 in pa_alsa_open_by_device_string () from 
/usr/lib/pulse-9.0/modules/libalsa-util.so
No symbol table info available.
#4  0x00007f502ac6f12c in pa_alsa_open_by_template () from 
/usr/lib/pulse-9.0/modules/libalsa-util.so
No symbol table info available.
#5  0x00007f502ac78ae1 in ?? () from 
/usr/lib/pulse-9.0/modules/libalsa-util.so
No symbol table info available.
#6  0x00007f502ac82161 in pa_alsa_profile_set_probe () from 
/usr/lib/pulse-9.0/modules/libalsa-util.so
No symbol table info available.
#7  0x00007f502b1b00ee in module_alsa_card_LTX_pa__init () from 
/usr/lib/pulse-9.0/modules/module-alsa-card.so
No symbol table info available.
#8  0x00007f5039b593b8 in pa_module_load () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecore-9.0.so
No symbol table info available.
#9  0x00007f502b3b6703 in ?? () from 
/usr/lib/pulse-9.0/modules/module-udev-detect.so
No symbol table info available.
#10 0x00007f502b3b7a0b in module_udev_detect_LTX_pa__init () from 
/usr/lib/pulse-9.0/modules/module-udev-detect.so
No symbol table info available.
#11 0x00007f5039b593b8 in pa_module_load () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecore-9.0.so
No symbol table info available.
#12 0x00007f5039b48381 in ?? () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecore-9.0.so
No symbol table info available.
#13 0x00007f5039b4e71c in pa_cli_command_execute_line_stateful () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecore-9.0.so
No symbol table info available.
#14 0x00007f5039b4ef31 in pa_cli_command_execute_file_stream () from 
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecore-9.0.so
No symbol table info available.
#15 0x0000562b1430c242 in main ()
No symbol table info available.

We can see SIGABRT is generated in below line:
https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/pulse/channelmap.c#n401


Regards

Takashi Sakamoto


More information about the pulseaudio-discuss mailing list