Wim Taymans
fca3e1d85d
Remove dynamic types
...
Do not use dynamic types anymore. The reason is that it's difficult:
- to maintain a shared type database over a network.
- the extra overhead when translating between processes and for
maintaining the translation tables.
- race conditions in translating in RT-threads, this is a problem
because we want to make event streams.
We now have simple enums with types and extension points for all
types. This is also nicer to use in general.
We don't need the mapper anymore or pass strings around as types.
There is a parallel type info system to get more info about ids and
enums and their hierarchy. It can also be used for debugging.
2018-08-23 17:47:57 +02:00
Wim Taymans
d4ab36d52a
client-node: only clear ports once
2018-08-14 16:53:05 +02:00
Wim Taymans
a6ad8f747f
remove spalib
2018-08-14 15:29:25 +02:00
Wim Taymans
3b1c40f17f
pod: move compare and filter functions out of the library
2018-08-14 14:52:32 +02:00
Wim Taymans
a63523650d
hooks: enforce version on hook emission
...
Pass the minimum required version to the hook emission and only call
events when the handler is recent enough.
Add some macros to make event emission easier to read.
2018-08-01 21:41:25 +02:00
Wim Taymans
899e67eb61
client-node: clear buffers when mixer is removed
2018-07-31 21:36:10 +02:00
Wim Taymans
57ef49b154
client-node: fix port implementation
...
Make the port forward the port methods to the node.
Fix io area when not using adapter
2018-07-31 14:28:15 +02:00
Wim Taymans
ca898a00db
work on separating port mixers
...
Make it possible to assign an arbitary node as the port mixer.
Also remove dynamically added ports.
Improve negotiation and allocation on the mixer ports
Add some more SSE optimisations
Move float mixer from the audio dsp to the port
Remove pw_node_get_free_port() and do things more explicitly.
Handle mixer ports in client-node
2018-07-31 12:23:35 +02:00
Wim Taymans
0d148654c0
stream: add more timing info
...
Keep track of queued data in the stream
Pass delay field around to make it possible to know about the raw
software read/write pointer and the hardware one.
Start stream position at 0
2018-07-19 13:30:27 +02:00
Wim Taymans
cc542935ea
client-node: add more generic set_io method
...
Replace the set_position method with set_io that allows us to share
other types of state with the client.
2018-07-12 15:33:07 +02:00
Wim Taymans
5a3eee9cac
command: remove clock-update
2018-07-12 13:22:50 +02:00
Wim Taymans
54c45252fd
client-stream: don't run the driver
...
The driver will take the initiative to run the graph
2018-07-11 20:09:32 +02:00
Wim Taymans
70b04da723
media-session: express quantum relative to rate
2018-07-03 21:55:08 +02:00
Wim Taymans
9417cdd9e6
client-stream: Also link controls
...
Improve registration of the node, set the media.class
2018-07-03 21:47:53 +02:00
Wim Taymans
1b4a0e8d5d
client-node: also implement io on the node itself
2018-07-03 21:45:07 +02:00
Wim Taymans
79a3b594f9
client-node: set parent id and owner
...
Make sure we set the right parent id and owner for the client node
and client-stream
Move the remote id in the proxy object and use it in the stream to
get the node id.
2018-07-03 21:43:21 +02:00
Wim Taymans
e68624fe7b
client-stream: improve scheduling
2018-07-02 12:07:46 +02:00
Wim Taymans
b46a0bc047
client-stream: prefer client buffer params
2018-06-26 16:54:48 +02:00
Wim Taymans
bb7be076bb
client-stream: swap local and remote io area
2018-06-25 14:33:00 +02:00
Wim Taymans
c01112d6c2
node: move position calculation to the node
2018-06-22 17:38:36 +02:00
Wim Taymans
757e2ccc79
client-stream: trigger client-node manually
...
Don't let the graph scheduler trigger the client-node, instead do it
ourselves when the need a buffer for the next quantum.
2018-06-22 17:37:21 +02:00
Wim Taymans
ce2e605255
client-stream: fix format and buffers for capture
2018-06-22 17:36:26 +02:00
Wim Taymans
bbd5c941d2
client-stream: send node_id to client
...
Send the node_id of the client-stream node to the client.
2018-06-18 13:19:54 +02:00
Wim Taymans
a198943b1a
client-stream: fix capture case
...
Setup the processing order differently for capture, we first want
to schedule the converters and then the client-node.
2018-06-18 12:24:20 +02:00
Wim Taymans
4ac21aea53
stream: remove conversion
...
Improve audioconvert to also split the output.
Remove the format conversion from the stream and move into the
server client-stream.
2018-06-15 11:31:42 +02:00
Wim Taymans
acfd07c504
client-stream: allocate the right number of buffers
2018-06-15 11:30:20 +02:00
Wim Taymans
ba0a68aab3
client-stream: improve debug
2018-06-15 11:29:38 +02:00
Wim Taymans
e5629b23f3
client-node: pass position around
...
Pass the position from server to clients
Implement current time in stream.c using the position info
2018-06-07 11:01:20 +02:00
Wim Taymans
3d25e254ef
client-node: implement node property update
...
Make it possible to update the node properties
Make it possible to update the remote properties
2018-06-07 10:23:41 +02:00
Wim Taymans
bf2a6bb1d7
client-node: small cleanups
2018-06-01 11:19:22 +02:00
Wim Taymans
f5f1a435cc
client-node: improve time and position reporting
2018-05-24 16:10:22 +02:00
Wim Taymans
ef9fcd1093
node: keep better track of driver node
...
When a session disappears, try to move nodes to another session.
2018-05-17 17:40:08 +02:00
Wim Taymans
1bff5afe05
client-stream: reset format on adapter
2018-05-17 17:38:13 +02:00
Wim Taymans
6450c64542
clean up listeners
2018-05-17 17:30:30 +02:00
Wim Taymans
bed26040ef
node: add driver position struct
...
Pass driver info to client
use current buffersize and samplerate in client
update the buffer size dynamically based on session
2018-05-11 10:15:59 +02:00
Wim Taymans
6d79ce2589
small cleanups
2018-05-10 11:28:02 +02:00
Wim Taymans
d93dd5ec93
graph: remove io from graph port, it's not needed
2018-05-08 12:21:57 +02:00
Wim Taymans
27c53a31bc
stream: add exclusive flag
...
With the exclusive flag we don't go through the audio-dsp.
2018-05-08 10:47:18 +02:00
Wim Taymans
b160d81d2f
stream: fix driver mode
2018-05-02 11:42:04 +02:00
Wim Taymans
a6cb6b740c
client-node: make it possible to skip signal
...
Add an option to not signal the remote implementation when we still
have enough data.
2018-04-26 09:49:29 +02:00
Wim Taymans
f784da5505
pipewire: add info to interface load
...
Make it possible to pass info to interface load
Enable color logs
2018-04-26 09:48:19 +02:00
Wim Taymans
9376ba6098
client-stream: improve case without adapter
...
Handle the case where we don't have/need an adapter.
Add the adapter and client-node to the graph
2018-04-25 15:56:39 +02:00
Wim Taymans
d165b3b842
pipewire: improve memory cleanup
...
Add method to unload a spa interface.
Various other memory cleanups
2018-04-20 16:27:19 +02:00
Wim Taymans
0dc036ac84
client-stream: improvements
2018-04-19 22:02:11 +02:00
Wim Taymans
57cbc5e503
various cleanups
2018-04-19 20:15:30 +02:00
Wim Taymans
63ce244c79
add client-stream
...
A client stream is a more specialized way to send 1 stream to pipewire.
On the client side and receiver side it can do conversion and the
buffer size of the client can be choosen arbitrarily.
2018-04-13 20:06:37 +02:00
Wim Taymans
efa35c2911
node: add option to not register a node
2018-04-13 20:05:46 +02:00
Wim Taymans
fa07400c2e
port_mix: place io area in separate field
...
We would like to remove it from the spa_graph_port...
2018-04-13 20:04:22 +02:00
Wim Taymans
adf8bc7804
client-node: fix buffer data offset
2018-04-13 20:03:14 +02:00
Wim Taymans
04f3044f1c
client-node: implement add/remove port
2018-04-13 20:02:35 +02:00