Wim Taymans
9b1da77bfc
node: remove obsolete enabled state
...
We will create/destroy nodes instead of enabled/disable
2019-04-24 15:39:29 +02:00
Wim Taymans
3b513fa7ae
floatmix: remove some unused code
2019-04-23 17:37:46 +02:00
Wim Taymans
8dabd52807
audio-dsp: use audioconvert to get a resampler
2019-04-23 17:37:22 +02:00
Wim Taymans
bb3da2fcc1
remote-node: reuse activation logic in pw_node
...
Set the received eventfd as the node eventfd and let existing
logic take care of scheduling the node.
2019-04-17 15:23:11 +02:00
Wim Taymans
8b1e5fedc9
core: clear driver on unassigned nodes
2019-04-11 16:40:16 +02:00
Wim Taymans
affc641c71
node: set master flag
...
Set the master flag when a node is selected as master.
Recalc graph when a node is destroyed
2019-04-11 16:38:24 +02:00
Wim Taymans
092a0c660d
make bitfields unsigned
...
Remove driver property from client-node of client-stream.
2019-04-10 17:52:42 +02:00
Wim Taymans
787900e8bf
v4l2: map all jpeg formats to video/mjpeg
2019-04-10 17:10:34 +02:00
Wim Taymans
0db5817ed7
client-stream: Don't allow DYNAMIC_DATA
...
We don't want to use dynamic data for the remote nodes, the buffers
need to keep pointing to the memfd memory.
2019-04-10 16:35:28 +02:00
Wim Taymans
32f039e2e5
core: rework how nodes are added to a driver
...
Add a function to recalculate all nodes associated with a driver by
iterating the graph for each driver node. We used to do this in an
incremental way, which is easy to join graph but expensive to
split.
A full scan simplifies some things and we can't avoid it when we
need to calculate latencies later. It will also simplifies assigning
master and slave roles to drivers when the graphs are joined/split.
When we link/unlink or add/remove nodes, recalc the graph.
2019-04-10 16:19:10 +02:00
George Kiagiadakis
40a5063b9f
module-link-factory: fix wrong goto label
...
harmless, but leads to a wrong error message being printed
2019-04-02 23:26:17 +02:00
George Kiagiadakis
7a7a12138f
module-access: don't leak the fd in check_cmdline
2019-04-02 23:26:05 +02:00
Wim Taymans
5c896fedd5
connection: stop refill when 0 bytes read
2019-04-02 23:02:58 +02:00
Wim Taymans
e7ef13e310
audioconvert: add avx optimizations
2019-03-28 16:45:57 +01:00
Wim Taymans
5a2ccee1ff
Add FASTPATH trace log
...
Add a trace_fp that can be optimized away when FASTPATH is defined.
2019-03-21 11:31:53 +01:00
Wim Taymans
036ca89c0e
audioconvert: mark ports and buffers as DYNAMIC
...
Only passthrough buffer data when the buffer and ports are
marked as DYNAMIC.
Use extra buffer for nodes that keep a ref on buffers (resample).
2019-03-21 10:45:24 +01:00
Wim Taymans
c2cb74a146
protocol-native: fix indentation
2019-03-20 15:57:34 +01:00
Wim Taymans
70e62aacd7
protocol-native: pass a message around
...
Pass a message around to make things more extensible later.
Keep fds per message if we ever want to write individual
messages.
Pass number of fds in the message header. We might need this to
close the fds when the proxy is gone.
2019-03-19 16:15:20 +01:00
Wim Taymans
30747942ac
connection: add more test
2019-03-19 11:58:46 +01:00
Wim Taymans
a3e4726ea6
connection: add test and fix a bug
...
Add a unit test for the connection
When we consumed all packets in a buffer, try to get more data instead
of failing right away.
2019-03-19 11:44:23 +01:00
Wim Taymans
ca051282a4
port: add port subscribe_params
2019-03-18 16:34:07 +01:00
Wim Taymans
ae7e60d790
interfaces: add subscribe params method
...
Add a node subscribe params method that automatically emits the new
params when they change so that we can avoid an enum_params.
Use this in the stream object.
Remove the control messages to update controls in stream, use the
set_param. This is more overhead but allows for notifications to other
clients.
Make it possible to update many controls in one go.
2019-03-18 16:12:27 +01:00
Wim Taymans
b163dc9114
private: define max params
2019-03-18 16:10:36 +01:00
Wim Taymans
3049964031
stream: parse PropInfo and make controls
...
Parse the PropInfo params and make pw_stream_control elements.
Only emit control changes when something changed.
2019-03-18 11:19:08 +01:00
Wim Taymans
a23be2b0d8
export-source: fix example
2019-03-15 21:16:58 +01:00
Wim Taymans
6e17b38658
test: fix test
2019-03-15 21:04:49 +01:00
Wim Taymans
9245c81227
client-node: add get_node method
...
Make a get node method that binds to the server side node of the
client-node immediately. use this in the remote_export and always
return a node proxy.
Use the node proxy to get property updates and signal those in the
stream.
2019-03-15 20:29:34 +01:00
Wim Taymans
33afa18621
client-node: don't make add_listener async
...
It is not really async, the init is async.
2019-03-15 20:28:42 +01:00
Wim Taymans
1ab00fae6d
client-stream: make PropInfo visible
2019-03-15 20:25:21 +01:00
Wim Taymans
7675141cb9
monitor: improve param handling
...
When we receive a param change and the param is unreadable,
remove the params.
When we get a param update, always remove the old params.
2019-03-14 16:42:59 +01:00
Wim Taymans
3fb9fa06a9
client-stream: emit property change events
...
Emit a property (param) change event when the volume or mute is
changed on a stream.
2019-03-14 16:40:17 +01:00
Wim Taymans
8b2b7c3053
params: only emit callback for requested seq
2019-03-14 16:37:58 +01:00
Wim Taymans
132dd760ee
client-stream: only add link once
2019-03-14 12:28:01 +01:00
Wim Taymans
24117b33c7
control: make control links many to many
...
Output controls can be linked to many input controls and many input
controls can receive input from many output controls. Keep the control
link information inside the link.
2019-03-14 12:04:20 +01:00
Wim Taymans
7b3e7e2813
proxy: call core_proxy_delete in pw_proxy_destroy
...
Destroying a local proxy will also attempt to destroy the remote
resource unless the server already did that and told us to remove
the proxy.
Fix some cleanups.
2019-03-13 16:24:33 +01:00
Wim Taymans
7b2f96ae75
global: don't destroy resources when unregistering
...
We can unregister the global without having to destroy the
resources. We always destroy the resources when the global is
destroyed.
2019-03-13 16:23:26 +01:00
Wim Taymans
f0c887186c
node: signal driver when graph incomplete
...
When the graph was not complete, call the driver node to recycle any
pending buffer and complete the graph.
2019-03-13 16:20:22 +01:00
Wim Taymans
1646b13e29
node: improve debug
2019-03-13 16:02:50 +01:00
Wim Taymans
c6cb2ea61b
port: remove unused code
2019-03-12 12:16:57 +01:00
Wim Taymans
776ed79b86
remote-node: improve some errors
2019-03-12 09:07:33 +01:00
Wim Taymans
743874dd9f
client-stream: improve cleanup
2019-03-11 22:07:17 +01:00
Wim Taymans
4d99bf9297
improve some debug
2019-03-11 22:06:58 +01:00
Wim Taymans
d3d7b7e39f
client-node: ignore io on the node itself
...
We only handle the io on the mixer ports, the internal io from the
port to the node is done on the client side.
2019-03-11 16:43:43 +01:00
Wim Taymans
61ad5ee518
fix some small memory leaks
2019-03-11 15:50:52 +01:00
Wim Taymans
4faa28fd96
gst: handle clock reset
...
The clock time is reset to 0 after a new format is negotiated. Make sure
the time reported by the gstreamer clock is increasing in this case.
2019-03-11 15:09:28 +01:00
Wim Taymans
8591d85710
node: remove our listener on the node in destroy
2019-03-11 12:36:26 +01:00
Wim Taymans
3281737199
link: keep per link buffer negotiation state
...
Keep buffers cached on output ports.
Complete the link to PAUSED when we have negotiated buffers on
input and output.
2019-03-11 12:35:04 +01:00
Wim Taymans
317493a2dc
stream: also recycle buffers
2019-03-08 17:16:44 +01:00
Wim Taymans
6c643a0ad0
link: first set all buffers, then complete the state
2019-03-08 15:45:23 +01:00
Wim Taymans
45c00ebb54
node: recalc quantum of the driver when a node is destroyed
2019-03-08 11:55:52 +01:00