[pulseaudio-discuss] [PATCH] always-sink: Don't unload ourselves if a filter sink shows up

Tanu Kaskinen tanuk at iki.fi
Tue Aug 11 08:21:14 PDT 2015


On Wed, 2015-06-10 at 17:19 +0530, arun at accosted.net wrote:
> From: Arun Raghavan <git at arunraghavan.net>
> 
> If we don't do this, autoloading a filter module on top of the null 
> sink
> results in an infinite loop of:
> 
>   1. Load null sink since there are no real sinks
>   2. Load filter sink when a stream wants it
>   3. We have a (filter) sink, unload null sink
>   4. Goto 1
> ---
>  src/modules/module-always-sink.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/modules/module-always-sink.c b/src/modules/module
> -always-sink.c
> index a5f6bb3..b5721bf 100644
> --- a/src/modules/module-always-sink.c
> +++ b/src/modules/module-always-sink.c
> @@ -114,6 +114,10 @@ static pa_hook_result_t 
> put_hook_callback(pa_core *c, pa_sink *sink, void* userd
>      if (sink->module && sink->module->index == u->null_module)
>          return PA_HOOK_OK;
>  
> +    /* We don't count filter sinks since they need a real sink */
> +    if (pa_sink_is_filter(sink))
> +        return PA_HOOK_OK;
> +
>      pa_log_info("A new sink has been discovered. Unloading null
> -sink.");
>  
>      pa_module_unload_request_by_index(c, u->null_module, true);

Looks good to me.

-- 
Tanu


More information about the pulseaudio-discuss mailing list