From 64926ff6b3c13d75731f19d36bc056dda1c49deb Mon Sep 17 00:00:00 2001 From: Erich Boleyn Date: Fri, 6 Feb 2009 02:11:07 +0100 Subject: RTP segfault/uninitialized resampler Erich Boleyn wrote: > Using RTP for multi-room music streaming, updated to Pulse 0.9.14 from > 0.9.9, RTP reception new crashes with a segfault on all machines at > the first "Updating sample rate" log message. > > Source of the segfault appears to be null pointer for > "impl_update_rates" function in resampler routine, perhaps > uninitialized resamplers in general? A fresh look after work made the resampler initialization code pop out. The problem is in the sink connection being made from "module-rtp-recv.c", the "PA_SINK_INPUT_VARIABLE_RATE" flag should be passed into "pa_sink_input_new", but is not there. Made the change and tested it, fixes the problem. Checked and head-of- tree off of the pulseaudio.org source browsing link does not have this fix either. One-liner patch attached. --- src/modules/rtp/module-rtp-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/modules/rtp') diff --git a/src/modules/rtp/module-rtp-recv.c b/src/modules/rtp/module-rtp-recv.c index baf3532f..c118b5c6 100644 --- a/src/modules/rtp/module-rtp-recv.c +++ b/src/modules/rtp/module-rtp-recv.c @@ -453,7 +453,7 @@ static struct session *session_new(struct userdata *u, const pa_sdp_info *sdp_in data.module = u->module; pa_sink_input_new_data_set_sample_spec(&data, &sdp_info->sample_spec); - pa_sink_input_new(&s->sink_input, u->module->core, &data, 0); + pa_sink_input_new(&s->sink_input, u->module->core, &data, PA_SINK_INPUT_VARIABLE_RATE); pa_sink_input_new_data_done(&data); if (!s->sink_input) { -- cgit