[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