[pulseaudio-discuss] [PATCH 00/15] Routing: Edges for initial routing

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Thu Feb 13 19:35:45 CET 2014


Edges are meant to abstract away the details of connecting two nodes.
This patch set implements edges to an extent that makes it possible to
greatly simplify the fallback code for setting the initial routing for
streams in node.c.

The initial routing of streams is now fully based on the new routing
infrastructure. When a stream is created, an edge is created between
the stream node and the sink/source/port node. Currently moving a
stream deletes the original edge, but doesn't create a new one to
reflect the new routing. I will work on that next.

Tanu Kaskinen (15):
  core: Free pa_core.nodes when freeing pa_core
  node: Replace a state enum with an unlinked flag
  node: Set the unlinked flag earlier in pa_node_unlink()
  node: Fix unsafe pa_idxset_remove_by_index() call
  protocol-native: Protect stream unlinking against recursion
  sink-input, source-output: Protect unlinking against recursion
  sink-input, source-output: Don't do anything when killing unlinked
    streams
  core, edge: Add a basic pa_edge implementation
  node: Delete edges when unlinking a node
  node: Delete edges when deactivating a node
  sink-input, source-output: Delete edge when detaching a stream
  edge: Add support for connecting new streams
  node: Create edges for new streams
  edge: Refuse to connect inactive nodes
  experimental-router: Create edges for new streams

 src/Makefile.am                          |   2 +-
 src/modules/module-experimental-router.c |  67 +++---
 src/pulsecore/core.c                     |  77 +++++++
 src/pulsecore/core.h                     |  12 +-
 src/pulsecore/edge.c                     | 345 +++++++++++++++++++++++++++++++
 src/pulsecore/edge.h                     |  25 +++
 src/pulsecore/node.c                     | 253 ++++++++---------------
 src/pulsecore/node.h                     |  15 +-
 src/pulsecore/protocol-native.c          |  16 +-
 src/pulsecore/sink-input.c               |  46 ++++-
 src/pulsecore/source-output.c            |  42 +++-
 11 files changed, 652 insertions(+), 248 deletions(-)
 create mode 100644 src/pulsecore/edge.c

-- 
1.8.3.1



More information about the pulseaudio-discuss mailing list