Hello, > I'm not sure why you want to add this to module-remap-* in particular, > and no other sinks/sources - could you elaborate, and perhaps do so in > the commit message too? the main intent is to make testing different sample rate resampling implementations easier; so far there is only global control via resample-method (command line argument and /etc/pulse/daemon.conf) module-remap-*'s only purpose is resampling (comprising format conversion, channel remapping, sample rate adjustment), it can easily be introduced into any audio pipeline I will add this to a v2 of the patch series thanks, regards, p. > > Signed-off-by: Peter Meerwald <p.meerwald at bct-electronic.com> > > --- > > src/modules/module-remap-sink.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/src/modules/module-remap-sink.c b/src/modules/module-remap-sink.c > > index 67e8da8..274f9f2 100644 > > --- a/src/modules/module-remap-sink.c > > +++ b/src/modules/module-remap-sink.c > > @@ -48,6 +48,7 @@ PA_MODULE_USAGE( > > "rate=<sample rate> " > > "channels=<number of channels> " > > "channel_map=<channel map> " > > + "resample_method=<resampler> " > > "remix=<remix channels?>"); > > > > struct userdata { > > @@ -68,6 +69,7 @@ static const char* const valid_modargs[] = { > > "rate", > > "channels", > > "channel_map", > > + "resample_method", > > "remix", > > NULL > > }; > > @@ -318,6 +320,7 @@ static void sink_input_moving_cb(pa_sink_input *i, pa_sink *dest) { > > int pa__init(pa_module*m) { > > struct userdata *u; > > pa_sample_spec ss; > > + pa_resample_method_t resample_method = PA_RESAMPLER_INVALID; > > pa_channel_map sink_map, stream_map; > > pa_modargs *ma; > > pa_sink *master; > > @@ -363,6 +366,11 @@ int pa__init(pa_module*m) { > > goto fail; > > } > > > > + if (pa_modargs_get_resample_method(ma, &resample_method) < 0) { > > + pa_log("Invalid resampling method"); > > + goto fail; > > + } > > + > > u = pa_xnew0(struct userdata, 1); > > u->module = m; > > m->userdata = u; > > @@ -418,6 +426,7 @@ int pa__init(pa_module*m) { > > pa_sink_input_new_data_set_sample_spec(&sink_input_data, &ss); > > pa_sink_input_new_data_set_channel_map(&sink_input_data, &stream_map); > > sink_input_data.flags = (remix ? 0 : PA_SINK_INPUT_NO_REMIX); > > + sink_input_data.resample_method = resample_method; > > > > pa_sink_input_new(&u->sink_input, m->core, &sink_input_data); > > pa_sink_input_new_data_done(&sink_input_data); > > > > > > -- Peter Meerwald +43-664-2444418 (mobile)