[pulseaudio-discuss] [PATCH] loopback: Add a modarg for disabling remixing.
marcin at saepia.net
marcin at saepia.net
Sat May 14 06:45:40 PDT 2011
Wow, thank you!
m.
2011/5/14 Tanu Kaskinen <tanuk at iki.fi>:
> ---
> src/modules/module-loopback.c | 18 +++++++++++++-----
> 1 files changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c
> index 9a8640b..024337f 100644
> --- a/src/modules/module-loopback.c
> +++ b/src/modules/module-loopback.c
> @@ -59,7 +59,8 @@ PA_MODULE_USAGE(
> "sink_input_role=<media.role for the sink input> "
> "source_output_role=<media.role for the source output> "
> "source_dont_move=<boolean> "
> - "sink_dont_move=<boolean>");
> + "sink_dont_move=<boolean> "
> + "remix=<remix channels?> ");
>
> #define DEFAULT_LATENCY_MSEC 200
>
> @@ -120,6 +121,7 @@ static const char* const valid_modargs[] = {
> "source_output_role",
> "source_dont_move",
> "sink_dont_move",
> + "remix",
> NULL,
> };
>
> @@ -407,7 +409,7 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk
> u->in_pop = FALSE;
>
> if (pa_memblockq_peek(u->memblockq, chunk) < 0) {
> - pa_log_info("Coud not peek into queue");
> + pa_log_info("Could not peek into queue");
> return -1;
> }
>
> @@ -645,6 +647,7 @@ int pa__init(pa_module *m) {
> pa_memchunk silence;
> uint32_t adjust_time_sec;
> const char *n;
> + pa_bool_t remix = TRUE;
>
> pa_assert(m);
>
> @@ -663,6 +666,11 @@ int pa__init(pa_module *m) {
> goto fail;
> }
>
> + if (pa_modargs_get_value_boolean(ma, "remix", &remix) < 0) {
> + pa_log("Invalid boolean remix parameter");
> + goto fail;
> + }
> +
> ss = sink->sample_spec;
> map = sink->channel_map;
> if (pa_modargs_get_sample_spec_and_channel_map(ma, &ss, &map, PA_CHANNEL_MAP_DEFAULT) < 0) {
> @@ -713,7 +721,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, &map);
> - sink_input_data.flags = PA_SINK_INPUT_VARIABLE_RATE;
> + sink_input_data.flags = PA_SINK_INPUT_VARIABLE_RATE | (remix ? 0 : PA_SINK_INPUT_NO_REMIX);
>
> sink_dont_move = FALSE;
> if (pa_modargs_get_value_boolean(ma, "sink_dont_move", &sink_dont_move) < 0) {
> @@ -764,8 +772,8 @@ int pa__init(pa_module *m) {
> pa_proplist_sets(source_output_data.proplist, PA_PROP_MEDIA_ICON_NAME, n);
>
> pa_source_output_new_data_set_sample_spec(&source_output_data, &ss);
> - pa_sink_input_new_data_set_channel_map(&sink_input_data, &map);
> - source_output_data.flags = (pa_source_output_flags_t)0;
> + pa_source_output_new_data_set_channel_map(&source_output_data, &map);
> + source_output_data.flags = (remix ? 0 : PA_SOURCE_OUTPUT_NO_REMIX);
>
> source_dont_move = FALSE;
> if (pa_modargs_get_value_boolean(ma, "source_dont_move", &source_dont_move) < 0) {
> --
> 1.7.5.1
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
>
More information about the pulseaudio-discuss
mailing list