[pulseaudio-discuss] why command_cork_playback_stream() will be invoked many times?

Bastian, Waldo waldo.bastian at intel.com
Wed Jan 28 13:44:33 PST 2009


> On Tue, 20.01.09 10:13, pl bossart (bossart.nospam at gmail.com) wrote:
> > I agree with you that pausing may create timing havoc on the client; but
> > we are missing a generic protocol to notify the clients and implement 
> > this legitimate use case.
>
> This issue has come up before. e.g. Nokia folks needs this kind of
> policy enforcing module, too.
> 
> Simply pausing client streams without having explicit client support
> for it is not really an option though. So I generally think the way
> forward is like this:
>
> 1) Add an API to PA to allow informing clients of policy requests from the
> server. i.e. add some mechanism so that clients that allocate a
>  pa_stream object can set a callback that is called whenever some
>  policy engine inside PA wants the client to stop/pause/resume
>  playback or has similar requests. It would then be up to the
>  client to actually do something about it and then pause the stream
>  and update the UI accordingly. 
>
>  Such an "inline" policy request notification subsystem should be
>  trivial to add. This should probably be extensible so that we can add
>  further notifications such as keypresses from BT devices or jack
>  sensing events from the sink.
>
> 2) Add a GStreamer interface for events like this.
>
> 3) If a client doesn't handle these request the streams in question
>   should simply be muted/unmuted.

The problem that I see with this approach is that executing the policy will have a dependency on the application responding quickly enough and behaving properly. What about starting with step 3) -> Mute the audio stream and then do step 1) and 2) after that to let the application know that it might be a good idea to pause?

I think such approach would also combine better with volume ramping: policy engine could fade out the stream before muting it and then advice application to pause. Thoughts?

Cheers,
Waldo



More information about the pulseaudio-discuss mailing list