node: allocate shared mem for activation

Allocate a per node a piece of shared memory where we place the
activation structure with the graph state and io_position.
We can then give this info to nodes so that they can get the position
in the graph directly but also later, activate the next node in
the graph.
This commit is contained in:
Wim Taymans 2019-02-07 12:34:54 +01:00
parent db230fc136
commit 658c1da52f
8 changed files with 83 additions and 89 deletions

View file

@ -39,12 +39,13 @@ extern "C" {
#include "pipewire/stream.h"
#include "pipewire/log.h"
#include <spa/utils/type-info.h>
#ifndef spa_debug
#define spa_debug pw_log_trace
#endif
#include <spa/graph/graph.h>
#include <spa/utils/type-info.h>
struct pw_command;
@ -298,7 +299,8 @@ struct pw_node_activation {
uint64_t awake_time;
uint64_t finish_time;
struct spa_graph_state state;
struct spa_io_position position;
struct spa_graph_state state[2]; /* one current state and one next state */
};
#define pw_node_events_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_node_events, m, v, ##__VA_ARGS__)