Wim Taymans
306f0dd964
v4l2: set result param id
2019-03-14 16:38:36 +01:00
Wim Taymans
8b2b7c3053
params: only emit callback for requested seq
2019-03-14 16:37:58 +01:00
Wim Taymans
efa74adfc3
submodule update
2019-03-14 13:24:51 +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
66ea505f22
alsa: improve debug
2019-03-13 15:02:04 +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
7a05a35f8e
v4l2: don't error when we finish the enumeration
2019-03-11 20:59:43 +01:00
Wim Taymans
25292e5078
pulse: update submodule
2019-03-11 18:06:24 +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
fd373ce4d2
submodule update
2019-03-08 17:02:06 +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
Wim Taymans
3e359646d7
client-stream: first destroy the node
...
When the client-stream is destroyed, let us first destroy the node
of the stream and then the internal client-node.
2019-03-08 11:55:01 +01:00
Wim Taymans
7cdc13b281
node: improve driver changes
...
Reimplement driver changes without corrupting our lists.
Keep track of unfinished graph and dump state of nodes.
2019-03-08 11:37:52 +01:00
Wim Taymans
964be84e1c
list: check for empty list before insert
...
We can't insert an empty list.
2019-03-08 11:34:28 +01:00
Wim Taymans
47fc2020c0
link: select io right after mix init
2019-03-07 23:19:40 +01:00
Wim Taymans
1d3ce5a9d9
stream: prepare output before signaling ready
...
Just prepare the output on the port and signal ready. When the graph
completes we will be signaled again to recycle the buffer and
prepare more output if we can.
Improve the bookkeeping a little when activating nodes.
Fix race with moving nodes between drivers.
2019-03-07 23:01:32 +01:00
Wim Taymans
94ce6d528c
client-stream: handle driver
...
When we have a client driver node, it will have prepared the io
areas for us before sending the ready signal. We then need to run
the converters before signaling ready.
2019-03-07 18:37:12 +01:00
Wim Taymans
ae3178abfe
node: the exported node and never finish the graph
...
That graph is always started and finished on the server, even when
the driver is remote.
2019-03-07 18:36:23 +01:00
Wim Taymans
264383cdd4
remote-node: first run the tee and then signal ready
...
We first need to run the tee so that all the io areas are ready before
we can start the driver on the daemon.
2019-03-07 18:34:39 +01:00
Wim Taymans
e31f1fcdca
remote-node: handle add/remove of activation
2019-03-07 18:34:15 +01:00
Wim Taymans
84bb897886
stream: first prepare output io, then call the ready callback
...
It is assumed that the output io area is ready when the ready
callback is called so that the next elements in the graph can be
triggered immediately. When the graph finishes, the node that
triggered the ready (the driver) is scheduled to recycle and complete
the graph.
2019-03-07 18:31:37 +01:00
Wim Taymans
b357b7a7da
scheduling: don't use the graph helpers.
...
Simplify the scheduling by using simple lists and removing the
subgraphs etc..
Make the driver node trigger all nodes it manages and when they
complete, trigger the driver node to finish the graph.
2019-03-06 20:33:55 +01:00
Wim Taymans
f0eb59bc75
port: allocate only from output ports
...
We don't need to use the mix_id to allocate, the allocation is
always shared between all output mixer ports
2019-03-06 10:30:27 +01:00
Wim Taymans
dcbe94c55a
port: simplify states
...
Remove the mix states, we can get rid of them when:
The format is the same for all mixer ports. Set the existing
format on new mixer ports. When the first format is set, the port
becomes READY. When all mixer ports are cleared the port goes back
to CONFIGURE.
Only output ports allocate and manage buffers, input ports share
the buffers of the peer output port on the link.
2019-03-06 09:53:41 +01:00
Wim Taymans
412c7f4cee
client-node: send own activation to client for stats
2019-03-06 09:52:40 +01:00
Wim Taymans
5ee287d79b
client-node: improve cleanup
2019-03-06 09:52:07 +01:00
Wim Taymans
3777d9612e
v4l2: only emit port info once
2019-03-06 09:43:24 +01:00
Wim Taymans
1d907412e5
stream: keep track of param ids and emit changes
2019-03-04 17:56:02 +01:00
Wim Taymans
936dcbea2e
remote-node: handle driver nodes
2019-03-04 17:55:43 +01:00
Wim Taymans
f42e214c2d
client-node: also send param idss
2019-03-04 17:54:17 +01:00
Wim Taymans
7281a2b2cf
export-sink: update port params
2019-03-04 15:17:46 +01:00
Wim Taymans
b238c8c2f6
node: first reset graph, then run nodes
2019-03-04 13:34:36 +01:00
Wim Taymans
582bc70b3c
device: use right method
2019-03-04 13:33:57 +01:00
Wim Taymans
ed988788fd
client-node: pass spa_node_info along
...
Pass the complete spa_node_info to update node information. Remove
the redundant max/min port info.
Update the remote node based on port and node update events.
2019-03-04 12:30:45 +01:00
Wim Taymans
a9b58618b2
remote: fix ping event
2019-03-01 15:04:45 +01:00
Wim Taymans
236d346a3f
global: remove unused event
2019-03-01 15:03:57 +01:00