Commit graph

1373 commits

Author SHA1 Message Date
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
Wim Taymans
e869d5bcb0 splitter: add channel splitter
Splits a buffer with multiple non-interleaved channels to multiple
buffers, each with 1 channel.
2018-04-13 20:00:30 +02:00
Wim Taymans
eea05cc139 improve format 2018-04-13 19:58:55 +02:00
Wim Taymans
f4f2e4bf68 small cleanups 2018-04-13 19:57:34 +02:00
Wim Taymans
03b914405d client-node: remove transport area
We don't need the area anymore
2018-04-12 10:12:40 +02:00
Wim Taymans
10fff4b2f8 node: add better node autolink
Add node media, category and role properties and use those to select
the target node.
Tag the DSP node with the right media.class
2018-04-12 09:55:03 +02:00
Wim Taymans
bd27b32c39 stream: install converter based on format 2018-04-12 09:50:12 +02:00
Wim Taymans
e33c76f728 stream: map buffers when using converter 2018-04-12 09:48:49 +02:00
Wim Taymans
96c87c3f7f stream: only install converter io once 2018-04-12 09:47:43 +02:00
Wim Taymans
b07c4932cd stream: remove client_reuse
We can't have client-reuse with the client-node interface.
2018-04-12 09:45:07 +02:00
Wim Taymans
8b74a3c0d2 small cleanups 2018-04-12 09:42:19 +02:00
Wim Taymans
c9fb320987 remote: improve mapped memory tracking 2018-04-11 10:55:12 +02:00
Wim Taymans
008df86c8f small cleanups 2018-04-11 10:54:47 +02:00
Wim Taymans
d88b88444d resample: use speex resampler for now 2018-04-10 16:54:15 +02:00
Wim Taymans
b3b47d3fe9 more work on audioconvert
Implement audioconvert as a complex element of fmtconver,
channelmix and resample.
Make copying resample just to test.
Plug the converter into pw_stream.
2018-04-10 15:54:29 +02:00
Wim Taymans
de36330917 handle: make method to get size 2018-04-09 10:06:17 +02:00
Wim Taymans
11f42d6262 port: add filter to pw_port_for_each_filtered_param 2018-04-09 09:33:09 +02:00
Wim Taymans
53e03019da buffer: more work on buffer allocation
Separate buffer sizes in the info. Make it possible to not set
data pointers for when we use memfd for the memory.
Improve format conversion.
Work on in-place conversion in test-convert2
2018-04-09 09:30:56 +02:00
Wim Taymans
142ef38df9 stream: more work on converter 2018-04-06 18:39:40 +02:00
Wim Taymans
19067dde17 buffer-alloc: add helpers for buffer allocation
Add some helpers to calculate buffers memory sizes and
construct buffer structures in memory.
2018-04-06 17:44:33 +02:00
Wim Taymans
b171361204 stream: for format conversion 2018-04-05 15:38:10 +02:00
Wim Taymans
ba518c0d9b small fixes 2018-04-05 15:37:34 +02:00
Wim Taymans
aada47252d pipewire: add helper to load spa plugin 2018-04-05 15:34:33 +02:00
Wim Taymans
0b4cef586f audioconvert: improvements 2018-04-03 16:29:36 +02:00
Wim Taymans
2cfb206d7c add audioconvert beginnings 2018-04-03 16:29:36 +02:00
Wim Taymans
7db732e2e2 spa: some more defines 2018-04-03 16:29:36 +02:00
Wim Taymans
36f7578aa8 export-sink: small cleanup 2018-04-03 16:29:36 +02:00
Wim Taymans
8481356f4b stream: add const to format event 2018-04-03 16:29:36 +02:00
Wim Taymans
95d45e4206 proxy: reuse id when server removed it
reset number of fds before we begin reading.
When we destroy the proxy, just clear the id. We then remove the id
completely when the server sends a remove_id request. This avoid
reusing the proxy id before the server has finished with it.
Add some debug
2018-04-03 16:29:36 +02:00
Wim Taymans
41a3a924ef stream: add pw_stream_new_simple
Make a new method that also makes a remote and connects to it
transparently. This saves some lines of code.
2018-04-03 16:29:36 +02:00
Wim Taymans
f9ceedb714 stream: improve stream API
Simplify the stream API. make just 2 methods to queue and dequeue
buffers. Make just one callback when new buffers can be dequeued.
Add support for driver nodes such as the video-src.
Pass a pw_buffer structure to add/remove_buffer and make it possible
to attach metadata to it. This makes it a lot easier to implement
the gstreamer pipewire pool.
Call the stream process function from the main loop and use a lockfree
ringbuffer to pass buffers between the threads. Make it possible to
also call process from the RT thread.
unmap the buffer data when needed.
2018-04-03 16:29:36 +02:00
Wim Taymans
97547d726f client-node: track io areas per mixer 2018-04-03 16:29:36 +02:00
Wim Taymans
a10d7a4e90 remote: improve memory handling
Better tracking of buffer memory and io areas
Activate/deactivate areas
2018-04-03 16:29:36 +02:00
Wim Taymans
a7341ce583 node: fix support for remote driver nodes 2018-04-03 16:29:36 +02:00
Wim Taymans
c725f1f7b6 stream: rewrite using remote node 2018-04-03 16:29:36 +02:00
Wim Taymans
97952e9312 video-src: mark as driver node 2018-04-03 16:29:36 +02:00
Wim Taymans
811ea2b1c9 client-node: manage io areas
Manage the memory of io areas
2018-04-03 16:29:36 +02:00
Wim Taymans
76ed4e9468 node: add finish hook
Add a finish hook to signal when the graph of a driver node
finished.
2018-04-03 16:29:36 +02:00
Wim Taymans
99d94044d1 small cleanups 2018-04-03 16:29:36 +02:00
Wim Taymans
33a322b96e graph: new scheduling model
Make explicit links between elements that are used to activate the
next element in the graph.
Make subgraphs a special regular node. Make a link from the
subgraph children to the parent so that the subgraph completes when
all the children completed.
Implement a single process function in plugins
Remove many messages in the client node
2018-04-03 16:29:36 +02:00
Wim Taymans
9b0a880afb simplify things with just 1 process function
Make just one process function in spa node. With the io area states
we can do more complicated io patterns.
2018-04-03 16:29:36 +02:00
Wim Taymans
e8d0281982 control: undo done work in case of error 2018-04-03 16:29:36 +02:00
Wim Taymans
3a9df8096b WIP add subgraph 2018-04-03 16:29:36 +02:00
Wim Taymans
933635f63f WIP: work on per driver graphs
Make a graph per driver node and let nodes that link to this join this
graph
Work on an idea for an even simpler scheduling mechanism.
2018-04-03 16:29:36 +02:00
Wim Taymans
2d77c4dc34 stream: keep track of io area and release mem 2018-04-03 16:29:36 +02:00
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