Wim Taymans
60150d67f1
remote: there is no need to init the io area
2018-04-03 16:29:36 +02:00
Wim Taymans
dc091c7c00
node: remove old code
2018-04-03 16:29:36 +02:00
Wim Taymans
f2edfacf09
link: update graph on activate/deactivate
...
Add the mixer ports to the graph when activating and remove in
deactivate.
2018-04-03 16:29:36 +02:00
Wim Taymans
05b3c666d9
improve debug
2018-04-03 16:29:36 +02:00
Wim Taymans
f599120433
mix: keep track of mix id
2018-04-03 16:29:36 +02:00
Wim Taymans
a50ea4c929
client-node: we need io on the mixer nodes
2018-04-03 16:29:36 +02:00
Wim Taymans
6eea9247ea
graph: add new scheduler
...
Move the activation state to the graph
Replace an old scheduler with a new one that works with the new
activation states.
Remove the DISABLED port flags, we explicitly add and remove to
make ports enabled/disabled.
Find first compatible port for link
Remove the node based scheduler and use the spa one.
2018-04-03 16:29:36 +02:00
Wim Taymans
c547baf952
client-node: remove the area
...
Remove the share node area, we don't need it
2018-04-03 16:29:36 +02:00
Wim Taymans
2a159c04ff
video-play: let stream map for us
2018-04-03 16:29:36 +02:00
Wim Taymans
40d2451718
examples: add example audio source
2018-04-03 16:29:36 +02:00
Wim Taymans
0bf03abafb
stream: add option to map buffers
...
Add an option to automatically map the buffers
Cleanups to the memory mapping
2018-04-03 16:29:36 +02:00
Wim Taymans
6f095f4cc5
link: improve clear_buffers
...
Clear the right mix port
Don't clear ouput ports when busy
2018-04-03 16:29:36 +02:00
Wim Taymans
533c299244
link: try to improve passive links
2018-04-03 16:29:36 +02:00
Wim Taymans
e85f7501b5
node: improve scheduling
...
Do a pull in links that need a buffer.
When pulling, stop when we find a node that has buffers.
2018-04-03 16:29:36 +02:00
Wim Taymans
ad6ecf6be8
audio-dsp: use flag to check if buffer is filled
...
Only produce a filled buffer otherwise produce an empty buffer.
Handle different buffer sizes.
Also link to a mixer
2018-04-03 16:29:36 +02:00
Wim Taymans
a3033ee2b7
client-node: improve debug
2018-04-03 16:29:36 +02:00
Wim Taymans
9758e37279
mixer: add properties
...
Use the propeties from the sink we are mixing and set Audio/Mixer
as the media.class.
2018-04-03 16:29:36 +02:00
Wim Taymans
b6239fb1ab
node: improve scheduling
...
Don't use the graph scheduler anymore, instead use a more simple
method using the nodes directly. The idea is that when a node
pulls, we walk the graph backwards and collect nodes to process.
Searching stops on a node with output. Then we process the nodes,
each one in turn calling process on the next one when all dependend
nodes are processed. This is quite similar to jack2 and with some
modifications seems to work well for more complicated input/output
patterns.
Set per mix input/output buffers.
Implement mixing in the audio-dsp node.
remote: handle mix ports a little better
2018-04-03 16:29:36 +02:00
Wim Taymans
1f077c7e0a
client-node: fix mem_offset of io areas
2018-04-03 16:29:36 +02:00
Wim Taymans
1aa960ad54
link: fall back to local io
2018-04-03 16:29:36 +02:00
Wim Taymans
b9880dbd5f
Add some more debug
2018-04-03 16:29:36 +02:00
Wim Taymans
1704c6756b
remote: cleanups
2018-04-03 16:29:36 +02:00
Wim Taymans
3bb988820e
remote: work directly with the port mixers
...
Add port_mixer on the ports
Work directly with the port mixers
simplify scheduling
2018-04-03 16:29:36 +02:00
Wim Taymans
c0865581b9
port: don't schedule disabled ports
2018-04-03 16:29:36 +02:00
Wim Taymans
2ea9addcf2
port: delegate initialization of mix ports to port
2018-04-03 16:29:36 +02:00
Wim Taymans
319098b4c8
client-node: implement set_io on mixer and regular node
2018-04-03 16:29:36 +02:00
Wim Taymans
28a094a65b
client-node: free io_area
2018-04-03 16:29:36 +02:00
Wim Taymans
4f680c224b
make per mix port io and buffers
...
Move the io areas to a separate memory block.
Make per link io areas for the ports
Send per mix port io area and buffers
2018-04-03 16:29:36 +02:00
Eike Rathke
871dd2743b
__STDC_VERSION__ may be undefined
...
Clang++ (and g++) don't define __STDC_VERSION__ which results in
include/spa/support/log.h:101:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
#if __STDC_VERSION__ >= 199901L
include/pipewire/log.h:64:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
#if __STDC_VERSION__ >= 199901L
so check if __STDC_VERSION__ is defined before comparing.
Also, include/feature.h additionally defines __USE_ISOC99 (and
__USE_ISOC11 for C11 extension), so check these as well.
2018-04-03 16:27:58 +02:00
Wim Taymans
8cadcd7f56
hook: return number of hooks called
...
Do finish_format ourselved when nobody was listening for the
format change.
2018-03-14 16:03:33 +01:00
Wim Taymans
fb7a51c6e7
client-node: fix mem_offset of io areas
2018-03-14 16:00:04 +01:00
Wim Taymans
6d569b132f
control: safely iterate the list, unlink modifies the list
2018-03-14 15:56:24 +01:00
Wim Taymans
1b2e73de0c
node: export method to update ports
2018-03-14 15:55:35 +01:00
Wim Taymans
2660b5c4f5
export-source: add float format
2018-03-14 15:54:57 +01:00
Wim Taymans
6cb35bf23e
link: remove unused field
2018-03-14 15:14:30 +01:00
Wim Taymans
d655d9e0bf
export-sink: don't block for render
...
Pass the buffer to the render function in the main thread but don't
block the data thread
2018-03-14 14:54:36 +01:00
Wim Taymans
153bf51ef1
client-node: safely remove source
...
Remove the source from the data_loop with invoke to make sure it
really is removed before we destroy the node.
Based on patch by David Svensson Fors <davidsf at axis.com>
2018-03-14 14:52:22 +01:00
Wim Taymans
992f20f805
protocol-native: debug connection after remap
2018-03-01 18:31:56 +01:00
Wim Taymans
ea182ba194
client-node: reference memory with id
...
Reference the memory with id because it could be relocated.
2018-03-01 18:30:39 +01:00
David Svensson Fors
6365ea18d9
module-node-factory: remove destroyed node from node list
2018-03-01 17:43:19 +01:00
Wim Taymans
135a0a18d8
client-node: track memory for client
...
Keep track of the memory we sent to the client to only send memory
once and choose better memid values.
2018-03-01 14:46:49 +01:00
Wim Taymans
059571cec0
remote: clear mem id
...
Clear the memid so that find_mem can't find old memory anymore.
2018-03-01 13:08:45 +01:00
Wim Taymans
e9685c794f
remote: handle buffer errors
2018-03-01 12:39:33 +01:00
Wim Taymans
7bc9230a79
client-node: proxy -> node
2018-03-01 12:13:00 +01:00
Wim Taymans
a48761503c
remote: ignore duplicate mem
...
Ignore if we receive the same memid multiple times
2018-03-01 11:45:42 +01:00
Wim Taymans
53ee07c901
link: generate unique mix ids
...
Generate a per link id for the mixer input of the ports.
2018-03-01 09:30:42 +01:00
Wim Taymans
8e2ceb773e
Improve some debug
2018-03-01 09:01:52 +01:00
Wim Taymans
ebac77f4e4
conf: add some commented out modules
...
The link-factory allows the client to create links between ports.
The audio-dsp module creates dsp ports (float32, mono) for each
audio sink and source.
2018-02-27 12:53:05 +01:00
Wim Taymans
1ecf982504
link: improve allocation
...
Always move the allocated buffers to the output port and reuse them
from there if possible.
2018-02-27 12:51:25 +01:00
Wim Taymans
241a7bc7d9
mem: add some debug
2018-02-27 12:50:47 +01:00