[pulseaudio-discuss] [PATCH] source-output: Get the correct source for "direct_on_input" streams

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Wed Aug 21 07:01:22 PDT 2013


On Wed, 2013-08-14 at 16:58 +0300, Tanu Kaskinen wrote:
> If a capture stream captures from a single sink input (so the capture
> stream is a so called "direct on input" stream), then it needs to
> connect to the monitor source of the sink to which the sink input is
> connected. Previously the correct source was not figured out
> automatically, causing the capture stream creation to fail.
> ---
>  src/pulsecore/source-output.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c
> index 66a33bd..fafc226 100644
> --- a/src/pulsecore/source-output.c
> +++ b/src/pulsecore/source-output.c
> @@ -255,9 +255,17 @@ int pa_source_output_new(
>      pa_return_val_if_fail(!data->driver || pa_utf8_valid(data->driver), -PA_ERR_INVALID);
>  
>      if (!data->source) {
> -        pa_source *source = pa_namereg_get(core, NULL, PA_NAMEREG_SOURCE);
> -        pa_return_val_if_fail(source, -PA_ERR_NOENTITY);
> -        pa_source_output_new_data_set_source(data, source, false);
> +        pa_source *source;
> +
> +        if (data->direct_on_input) {
> +            source = data->direct_on_input->sink->monitor_source;
> +            pa_return_val_if_fail(source, -PA_ERR_INVALID);
> +            pa_source_output_new_data_set_source(data, source, false);
> +        } else {
> +            source = pa_namereg_get(core, NULL, PA_NAMEREG_SOURCE);
> +            pa_return_val_if_fail(source, -PA_ERR_NOENTITY);
> +            pa_source_output_new_data_set_source(data, source, false);
> +        }
>      }
>  
>      /* Routing's done, we have a source. Now let's fix the format and set up the

No feedback received, I have now applied this patch.

-- 
Tanu



More information about the pulseaudio-discuss mailing list