[pulseaudio-discuss] [PATCH 3/4] module-remap-sink: Add resample_method argument
Peter Meerwald
pmeerw at pmeerw.net
Tue Aug 6 13:44:06 PDT 2013
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)
More information about the pulseaudio-discuss
mailing list