More work on implementing remote protocol

Rework things so that we negotiate buffer pools beforehand and only pass
buffer ids around We can then remove the refcount of buffers, events and
commands.
More work on buffer reuse
Use the node state changes to trigger the next step in the configuration
sequence.
Move most of the client-node to a plugin
Do buffer allocation in the port link.
This commit is contained in:
Wim Taymans 2016-08-02 16:34:44 +02:00
parent 05829f33e6
commit 3ace7e9648
36 changed files with 1780 additions and 1450 deletions

View file

@ -395,7 +395,7 @@ communication channel
node-update
port-update
state-configure
state change CONFIGURE
2) Set formats S->C CONFIGURE
@ -409,7 +409,7 @@ communication channel
3) Buffer requirements update C->S
Update port status
state-ready if enough formats are set
state change READY if enough formats are set
4) Start S->C READY
@ -418,43 +418,39 @@ communication channel
remove_mem
add_buffer
remove_buffer
start->streaming
command START/PAUSE
5) Pause S->C STREAMING
5) Pause S->C PAUSED
stop-streaming
state change STREAMING
set-format to NULL -> state change to CONFIGURE
5) data transfer C->S
5) data transfer C->S STREAMING
need-input
have-output
add_mem
add_buffer
process_buffer
reuse_buffer
remove_buffer
remove_mem
state change PAUSED
6) data transfer S->C
add_mem
add_buffer
process_buffer
reuse_buffer
remove_buffer
remove_mem
7) format change C->S
port-update
state-configure
state change CONFIGURE
8) format change S->C
Send set-format change on ports -> READY if new memory requirements
-> RUNNING if all ok
-> PAUSED/STREAMING if all ok
9) format-change to NULL -> CONFIGURE
9) format-change to NULL
state change CONFIGURE
10) ERROR