[pulseaudio-discuss] Edinburgh Murphy meeting notes

Tanu Kaskinen tanuk at iki.fi
Tue Nov 5 14:53:15 CET 2013


On Fri, 2013-11-01 at 12:24 +0200, Janos Kovacs wrote:
> Sorry, I hit a wrong key and my gmail sent out my unfinished mail.
> Here is the last comment
> again:
> 
> > > So if needed we could start with only nodes + some extra hooks in the core.
> > > However, node implementations should be added to ALSA, BT and other modules
> > > IMO.
> >
> > Please avoid touching the backend modules as much as you can. Ideally,
> > I'd like the ALSA and BT modules to just add properties (or similar
> > information) to indicate to the core and the routing system what it
> > needs to know.
> >
> > Otherwise we'll just end up copy-pasting code between different backends.
> 
> To implement certain node related operations and store node specific data I see
> two basic ways:
> 
> 1.) a kind'a object oriented approach, ie, the node related backend
>      specific stuff is implemented in the backend itself with some supporting
>      common functions in the core to avoid code duplicates. That is what we
>      choose for the PoC Tanu works on.
> 
> 2.) The node stuff is done in a layer top on the existing
> infrastructure. This extra
>       layer can be implemented in the routing module. That's how the TIZEN-IVI
>       implemented currently.
> 
>       However, the current PA core infrastructure lacks certain
> features what makes
>       the implementation of such layer cumbersome.
> 
>       We would need extra hooks as with the current hooks you get a
> lot of 'noise'
>       that needed to be filtered out. For instance hooking-in to
> stream and device creation
>       would produce callbacks at loading loopacks or combine thinks
> which should be
>       ignored. This led to a really complex state machine in the
> routing module what
>       could be dramatically simplified by adding extra hooks to the core.
> 
>       The extra layer need to maintain backend specific private data
> somewhere. We
>       would need to add support for this in the core. It could be
> 'node' specific mechanism,
>       or if we want to do this a more elegant way we could add some
> mechanism that
>       would allow a module to attach arbitrary data to the various PA
> objects. Xorg have
>       this for ages, eg. modules can add their extension data to
> windows structures
>       for instance.



More information about the pulseaudio-discuss mailing list