Wim Taymans
5aa0ff21c6
stream: only use adapter for raw audio for now
2019-07-25 12:00:08 +02:00
Wim Taymans
e5778b8745
mem: set READWRITE flags
2019-07-24 10:58:00 +02:00
Wim Taymans
bae1426615
mem: use MemId to pass buffer memory
...
Track memory on buffers in the server and simplify some memory tracking
on the client.
Don't send internal memblock flags to client.
Add read/write flags to memblock.
2019-07-24 10:33:26 +02:00
Wim Taymans
2caf81c97c
mem: improve memory handling
...
Add a memory pool to manage blocks of memory. Make it possible
to allocate and import blocks.
Add add_mem and remove_mem to the core events to signal a client
of a block of memory. Remove the client-node add_mem.
Make a global pool for memory and a per client pool where we
import and share the memory we need with the client.
Use the new memory pool to track and map memory in clients.
2019-07-23 17:46:43 +02:00
Wim Taymans
a8bc8e1b1e
adapter: improve cleanup
2019-07-23 17:37:48 +02:00
Wim Taymans
b23ca2e24d
client-node: track and free activation memory
2019-07-19 13:50:58 +02:00
Wim Taymans
6820806409
core: clean slave_list nicely
2019-07-17 17:07:37 +02:00
Wim Taymans
1379d45e97
node: make destroyed nodes as inactive
...
To make sure they are skipped in the graph calculation.
Always update the slave_list and slave_link
2019-07-17 16:25:59 +02:00
Wim Taymans
1612ed793e
core: handle slave_list in set_driver only
...
When destroying a node, move all slaved nodes to their own driver.
2019-07-17 15:31:50 +02:00
Wim Taymans
af1b012a70
adapter: free slave in the module
2019-07-17 15:31:01 +02:00
Wim Taymans
53d3d5cb0c
improve debug
2019-07-17 15:29:18 +02:00
Wim Taymans
cf6fcb65c9
adapter: decide monitor ports in the session-manager
2019-07-16 18:53:04 +02:00
Wim Taymans
11830871df
client-node: improve cleanup
2019-07-16 18:52:40 +02:00
Wim Taymans
a54efe8581
link: set/clear io as part of de/activate
2019-07-16 18:51:51 +02:00
Wim Taymans
30e5ad2b6a
protocol: improve debug
2019-07-16 18:51:14 +02:00
Wim Taymans
71938e6c77
make client non-busy when sending sync or ping
...
We need a reply so mark the client non-busy so that we can receive
it.
2019-07-16 18:49:41 +02:00
Wim Taymans
7bb27344ba
node: only add listener once
2019-07-16 18:48:20 +02:00
Wim Taymans
24d4eb585f
adapter: improve port names
2019-07-16 11:16:10 +02:00
Wim Taymans
3d302ffd4d
media-session: remove DSP node type
...
Remove unused profile-format
2019-07-16 11:15:30 +02:00
Wim Taymans
0cdc3dce0b
stream: remove client-stream
...
Use an adapter instead of the client-stream. This means we run
the audioconverters and resamplers in the client instead of the
pipewire daemon. It also allows us to implement the audio mixing
correctly in the capture client.
The only pending piece is that we now wake up the client with the
period of the server. Maybe we can later optimize that and
accumulate/split buffers before waking the client.
This probably needs fixing with video..
2019-07-15 17:23:20 +02:00
Wim Taymans
01d9f4eb3a
module-adapter: make it possible to pass the slave node pointer
2019-07-15 17:16:08 +02:00
Wim Taymans
0a6ee19018
remote-node: fix mmap offset
...
Use the right offset in the mapped memory
Clear the DYNAMIC data flag because we really can only work with
the shared memory.
2019-07-15 17:14:34 +02:00
Wim Taymans
b0b379fc2a
node: handle async node_set_param
...
We block the client doing the call until the operation completes
with a sync on the node.
2019-07-15 17:13:39 +02:00
Wim Taymans
9b7d5c81e0
module-adapter: only set MEDIA_CLASS when NULL
2019-07-15 17:12:51 +02:00
Wim Taymans
1a6fe0e023
module-adapter: handle errors with NULL resource
2019-07-15 17:12:08 +02:00
Wim Taymans
453e75a23e
improve some debug
2019-07-15 17:09:44 +02:00
Wim Taymans
fec2915b75
adapter: allow factory.mode to be set with property
2019-07-12 15:11:03 +02:00
Wim Taymans
4aa1ef9bf1
audio-dsp: Allow merger.monitor to be set with property
...
Only set the factory.mode when not already set.
2019-07-12 15:08:52 +02:00
Julian Bouzas
ea6ff81d4f
audio-dsp: allow mode to be set with a property
2019-07-12 15:00:13 +02:00
Wim Taymans
6fc02ca5e0
move some debug to trace
2019-07-12 10:26:44 +02:00
Wim Taymans
3745f79fc5
media-session: create a local adaper+a2dp sink/source
...
Run the a2dp sink and sources with the adapter in the session manager
and export it to PipeWire. The idea is that the codecs should not
preferably not run inside the daemon.
2019-07-12 10:04:26 +02:00
Wim Taymans
57d471b6f4
remote-node: implement set_param and port_set_io
...
Implement set_param, just call the node implementation
Always call port_set_io on the mixer port.
2019-07-12 09:58:56 +02:00
Wim Taymans
5385bb5674
adapter: make the factory work without a resource
...
Free the slave when the adapter is destroyed.
2019-07-12 09:58:11 +02:00
Wim Taymans
01e56c45ac
node-factory: destroy node when resource is destroyed
2019-07-12 09:54:32 +02:00
Wim Taymans
6655e09502
node: only update driver_list when registered
2019-07-12 09:53:43 +02:00
Wim Taymans
0e765de519
props: remove pointers in property values in protocol
...
Mark pointers in property values with pointer: and remove them
when sending the properties over the wire to avoid errors.
2019-07-11 12:52:55 +02:00
Wim Taymans
6f672c883e
node: always call output mix when HAVE_BUFFER
2019-07-11 11:20:04 +02:00
Wim Taymans
a9bce3803a
cleanups and debug improvements
2019-07-11 11:15:24 +02:00
Wim Taymans
d7098d6a4c
session: handle monitor in the session
...
Load the monitor in the session manager.
Export devices to pipewire.
Create nodes or a device in an adapter.
2019-07-10 20:24:11 +02:00
Wim Taymans
1c0bf4266c
adapter: fix alias
2019-07-10 19:45:22 +02:00
Wim Taymans
a07fb58a21
adapter: set driver property
...
Pass the node.driver property from the slave to the adapter.
Set the media-class on the adapter.
2019-07-10 19:18:53 +02:00
Wim Taymans
9364f64b10
adapter: move to SPA plugin
...
Move the adapter code to a SPA plugin and make the adapter module
use the plugin instead.
2019-07-10 18:04:59 +02:00
Wim Taymans
7f885b6db4
add SPA_SENTINEL
2019-07-09 21:19:53 +02:00
Wim Taymans
c7d7058896
Improve rate matching and clock slaving
...
Use a new rate_match io area to exhange rate matching info between
sink/source and resampler.
Compensate for the rate match delay when scheduling timeouts.
Let the resampler notify the source of how many samples it needs to
produce the desired quantum. Make sure we keep an extra buffer in
the device to be able to make this possible.
Let the adapter directly call the slave node process function.
2019-07-09 17:44:07 +02:00
Wim Taymans
a3c0bb0e9a
module: fix cleanup on error
2019-07-09 16:53:31 +02:00
Wim Taymans
0154e6eaac
small cleanups
...
resample: remove unused index variable
2019-07-08 18:23:22 +02:00
Wim Taymans
98d10bbd1f
adapter: use slave as filter for adapter
...
This makes the converter choose the final param and not the
slave, which makes more sense.
2019-07-03 11:06:12 +02:00
Wim Taymans
cb6b8e0d17
adapter: setup control and notify
2019-07-03 11:00:55 +02:00
Wim Taymans
94e7be1845
media-session: use adapter around sink
...
Don't use the DSP nodes anymore, use the adapter instead and wrap
it around a sink/source.
2019-07-02 17:39:04 +02:00
Wim Taymans
aba81455ff
adapter: add adapter node
...
An adapter is like an audio-dsp node and client-stream combined.
It allows tighter control with the device (for rate control and
variable buffer sizes), software volume.
The idea is to also implement the client-stream with this
eventually.
2019-07-02 17:34:26 +02:00