diff options
| author | Erich Boleyn <erich@uruk.org> | 2009-02-06 02:11:07 +0100 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-02-06 02:12:20 +0100 | 
| commit | 64926ff6b3c13d75731f19d36bc056dda1c49deb (patch) | |
| tree | 577a5c72be0488e60f33dc8f4b47f65cf64df2f5 | |
| parent | 6bb2c49057338fc88fd3846b34911878aec65b12 (diff) | |
RTP segfault/uninitialized resampler
Erich Boleyn <erich@uruk.org> 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.
| -rw-r--r-- | src/modules/rtp/module-rtp-recv.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| 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) { | 
