[pulseaudio-discuss] [PATCH 3/4] module-remap-sink: Add resample_method argument

David Henningsson david.henningsson at canonical.com
Mon Aug 5 05:41:05 PDT 2013


On 07/18/2013 09:22 AM, Peter Meerwald wrote:
> From: Peter Meerwald <p.meerwald at bct-electronic.com>

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?

> 
> 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);
> 



-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list