When module-loopback is loaded without arguments, the ss and map variables are initialized with dummy values. This caused a problem, because also pa_memblockq_new() was called with the dummy values, making it work incorrectly. The base was set to 1 instead of the real frame size, which in turn caused alignment related crashes. --- src/modules/module-loopback.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c index 9054700..f71cd81 100644 --- a/src/modules/module-loopback.c +++ b/src/modules/module-loopback.c @@ -796,6 +796,11 @@ int pa__init(pa_module *m) { if (!u->sink_input) goto fail; + /* If format, rate or channels were originally unset, they are set now + * after the pa_sink_input_new() call. */ + ss = u->sink_input->sample_spec; + map = u->sink_input->channel_map; + u->sink_input->parent.process_msg = sink_input_process_msg_cb; u->sink_input->pop = sink_input_pop_cb; u->sink_input->process_rewind = sink_input_process_rewind_cb; -- 1.7.9.5