From b08237b6c612c349c9a9d19bca435cbb96eb52a7 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Thu, 18 Aug 2011 12:35:23 +0530 Subject: [PATCH] passthrough: We must not plug in a resampler on stream move --- src/pulsecore/sink-input.c | 7 ++++--- src/pulsecore/source-output.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 7aee54663..4ffa03bf8 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -1608,9 +1608,10 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { /* Try to reuse the old resampler if possible */ new_resampler = i->thread_info.resampler; - else if ((i->flags & PA_SINK_INPUT_VARIABLE_RATE) || - !pa_sample_spec_equal(&i->sample_spec, &dest->sample_spec) || - !pa_channel_map_equal(&i->channel_map, &dest->channel_map)) { + else if (!pa_sink_input_is_passthrough(i) && + ((i->flags & PA_SINK_INPUT_VARIABLE_RATE) || + !pa_sample_spec_equal(&i->sample_spec, &dest->sample_spec) || + !pa_channel_map_equal(&i->channel_map, &dest->channel_map))) { /* Okay, we need a new resampler for the new sink */ diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index ce9409500..a9e60f877 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -1376,9 +1376,10 @@ int pa_source_output_finish_move(pa_source_output *o, pa_source *dest, pa_bool_t /* Try to reuse the old resampler if possible */ new_resampler = o->thread_info.resampler; - else if ((o->flags & PA_SOURCE_OUTPUT_VARIABLE_RATE) || - !pa_sample_spec_equal(&o->sample_spec, &dest->sample_spec) || - !pa_channel_map_equal(&o->channel_map, &dest->channel_map)) { + else if (!pa_source_output_is_passthrough(o) && + ((o->flags & PA_SOURCE_OUTPUT_VARIABLE_RATE) || + !pa_sample_spec_equal(&o->sample_spec, &dest->sample_spec) || + !pa_channel_map_equal(&o->channel_map, &dest->channel_map))) { /* Okay, we need a new resampler for the new source */