mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
graph: new scheduling model
Make explicit links between elements that are used to activate the next element in the graph. Make subgraphs a special regular node. Make a link from the subgraph children to the parent so that the subgraph completes when all the children completed. Implement a single process function in plugins Remove many messages in the client node
This commit is contained in:
parent
9b0a880afb
commit
33a322b96e
36 changed files with 401 additions and 750 deletions
|
|
@ -272,10 +272,11 @@ struct pw_node {
|
|||
struct pw_loop *data_loop; /**< the data loop for this node */
|
||||
|
||||
struct {
|
||||
struct spa_graph_node node;
|
||||
struct spa_list links[2];
|
||||
struct spa_graph_node root;
|
||||
struct pw_node_activation *activation;
|
||||
struct spa_list sched_link;
|
||||
struct spa_graph_node node;
|
||||
struct spa_graph_node subnode;
|
||||
struct spa_graph_link sublink;
|
||||
} rt;
|
||||
|
||||
void *user_data; /**< extra user data */
|
||||
|
|
@ -336,6 +337,7 @@ struct pw_port {
|
|||
struct spa_graph_port port; /**< this graph port, linked to mix_port */
|
||||
struct spa_graph_port mix_port; /**< port from the mixer */
|
||||
struct spa_graph_node mix_node; /**< mixer node */
|
||||
struct spa_graph_link mix_link; /**< mixer link */
|
||||
struct spa_graph_state mix_state; /**< mixer state */
|
||||
} rt; /**< data only accessed from the data thread */
|
||||
|
||||
|
|
@ -369,8 +371,7 @@ struct pw_link {
|
|||
|
||||
struct {
|
||||
struct pw_port_mix mix[2];
|
||||
struct spa_list in_node_link;
|
||||
struct spa_list out_node_link;
|
||||
struct spa_graph_link link; /**< nodes link */
|
||||
} rt;
|
||||
|
||||
void *user_data;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue