[pulseaudio-discuss] RCF: Public API for managing nodes
David Henningsson
david.henningsson at canonical.com
Tue Jul 16 05:01:31 PDT 2013
On 07/13/2013 05:48 PM, Tanu Kaskinen wrote:
> Hi all,
>
> I've written up a proposal for a public API for controlling routing with
> nodes:
> http://www.freedesktop.org/wiki/Software/PulseAudio/RFC/RoutingAPI/
>
> Comments would be very welcome.
>
> Also, if anyone wants to write a proof-of-concept GUI for exercising the
> API, or extend pavucontrol, that would be awesome. I probably won't do
> it.
I've tried to read it through and initially I'm trying to grasp the
concepts here.
A few points:
* The docs say "since 5.0", are you really planning that, or given our
new schedule, should it rather be since 6.0?
* I also wonder about the basic rules for edges/connections here. Can
we line them up:
- Edges are directed (stream flows from node A to node B)
- A node can have more than one incoming edge (mixes input to single
output)
- Can a node have more than one outgoing edge, and how is this then
handled for playback (clock deviation etc)? Automatic insert of combine
modules?
- And recording has the same thing but different, i e, spreading
data is not a problem but mixing requires clock synchronisation
- Can there be more than one edge between the same nodes? E g, one
default connection and one explicit connection? Or how does this work?
- Can edges have properties, e g, a volume?
* As for possible node operations, a move operation would be the same
as a "batched remove + add" operation. Maybe therefore the batch
solution would be better, i e, the client API inputs an array of node
operations?
* The operations on changing the default connections does not make
sense to me. If the definition for default connections are those made
automatically by the routing system, if you change them then you broke
the definition...?
* Now, streams can be moved using either the new node API or the
existing stream/sink API. Will either cause consequences for the other,
e g changing node connections will cause an update event for the sink,
and changing stream/sink connection will cause update events for the
relevant nodes?
* And an bird's eye thought - I was thinking that these nodes were
something for policy/routing modules primarily. Is a client API the next
step here?
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
More information about the pulseaudio-discuss
mailing list