Commit graph

1219 commits

Author SHA1 Message Date
Wim Taymans
d5e658e8f9 audio-dsp: add support for s32 format as well 2018-04-27 17:30:45 +02:00
Wim Taymans
c2cd56d903 loop: inline frequently used function 2018-04-27 17:29:39 +02:00
Wim Taymans
3e68dee7ff alsa-source: don't use htimestamp, it's not accurate 2018-04-27 17:29:11 +02:00
Wim Taymans
db77de9258 fmtconvert: only produce output when need_buffer 2018-04-26 17:23:47 +02:00
Wim Taymans
09cec04380 audio-dsp: implement capture 2018-04-26 17:23:27 +02:00
Wim Taymans
60d74d442f alsa: fix capture 2018-04-26 17:22:17 +02:00
Wim Taymans
7f6ac1162d stream: improve node.name 2018-04-26 10:26:56 +02:00
Wim Taymans
a6cb6b740c client-node: make it possible to skip signal
Add an option to not signal the remote implementation when we still
have enough data.
2018-04-26 09:49:29 +02:00
Wim Taymans
f784da5505 pipewire: add info to interface load
Make it possible to pass info to interface load
Enable color logs
2018-04-26 09:48:19 +02:00
Wim Taymans
8961e6d1c7 logger: add colors
Add colors and option to enable them
2018-04-26 09:47:24 +02:00
Wim Taymans
e74c41bdf6 splitter: fix bpf
Number of channels does not influence bytes-per-frame for
non-interleaved audio.
Add layout to get_format
2018-04-26 09:29:10 +02:00
Wim Taymans
b3c842a7ec stream: handle driver sources and sinks 2018-04-25 15:58:38 +02:00
Wim Taymans
9376ba6098 client-stream: improve case without adapter
Handle the case where we don't have/need an adapter.
Add the adapter and client-node to the graph
2018-04-25 15:56:39 +02:00
Wim Taymans
013b606a89 node: add driver graph field and schedule it for drivers 2018-04-25 15:55:30 +02:00
Wim Taymans
20692cf173 link: cleanups 2018-04-25 15:54:00 +02:00
Wim Taymans
e9839bade6 autolink: link to specified node unconditionally 2018-04-25 15:50:17 +02:00
Wim Taymans
bad8dac56e autolink: fix else branch 2018-04-25 15:49:59 +02:00
Wim Taymans
ced868c208 graph: improve debug 2018-04-25 15:49:08 +02:00
Wim Taymans
f9bda23e56 a2dp-sink: remove sources only once 2018-04-24 17:21:23 +02:00
Wim Taymans
b122f86e11 stream: always listen to the remote events
So that we can give a stream error on disconnect.
2018-04-24 17:11:21 +02:00
Wim Taymans
c4414bc9bc node: register ports in the registering event
That way we send registry events in order but only signal global_add
when the node is completely registered.
2018-04-24 17:10:17 +02:00
Wim Taymans
5e89e9421c link: only assume ports registered when registering the link 2018-04-24 17:09:34 +02:00
Wim Taymans
c24044108a link: always pause ports on deactivate 2018-04-24 17:08:57 +02:00
Wim Taymans
592cdfe90d global: add registering signal
Add a new signal that can be used to register child objects
2018-04-24 17:07:56 +02:00
Wim Taymans
23dbf76e85 spa-node: first activate, then register 2018-04-24 17:07:01 +02:00
Wim Taymans
d7f1be0376 monitor: add time when device was plugged 2018-04-24 17:06:37 +02:00
Wim Taymans
f8222c765e autolink: prefer latest plugged device 2018-04-24 17:05:48 +02:00
Wim Taymans
d2c545be8d audio-dsp: handle node remove
Handle dynamic samplerate and channels
Improve node names
Keep track of removed nodes
2018-04-24 17:03:56 +02:00
Wim Taymans
08484b92f5 bluez5: handle remove of devices
Fix a2dp-sink for new scheduling
2018-04-24 17:02:19 +02:00
Wim Taymans
4c9c939527 alsa-monitor: keep track of cards and devices
Keep better track of cards and devices so that we can remove them
without having to open (the removed device).
2018-04-24 17:01:04 +02:00
Wim Taymans
0eb73f0f06 loop: add back the destroy loop
We need to keep the sources around until all sources are dispatched. If
not: source A and B are active after poll, A is dispatched first and
removes B, when B is then dispatched, the memory is gone. We don't
free the source but simply mark the fd invalid and move it do a
destroy list. After all sources are dispatched we destroy.
This is safe because removing a source is either done from the poll
context (with invoke) or when holding the right locks.
2018-04-20 16:28:47 +02:00
Wim Taymans
d165b3b842 pipewire: improve memory cleanup
Add method to unload a spa interface.
Various other memory cleanups
2018-04-20 16:27:19 +02:00
Wim Taymans
0dc036ac84 client-stream: improvements 2018-04-19 22:02:11 +02:00
Wim Taymans
ebd13a2a74 loop: blocking wait
Release the locks before waiting.
2018-04-19 22:01:18 +02:00
Wim Taymans
64d1307684 alsa: do the wakeup differently
Directly write from the process thread, reduces potential latency.
2018-04-19 22:00:42 +02:00
Wim Taymans
57cbc5e503 various cleanups 2018-04-19 20:15:30 +02:00
Wim Taymans
550b544aa0 test: also test resampler 2018-04-19 20:12:51 +02:00
Wim Taymans
06dd7095fc audioconvert: various fixes 2018-04-19 20:12:24 +02:00
Wim Taymans
3b8ffdfb4e io: make status as flags
This way we can return status of both input and output
2018-04-19 20:10:47 +02:00
Wim Taymans
e125f9a9a7 alsa: add format layout 2018-04-19 20:10:07 +02:00
Wim Taymans
30d8df7d25 add layout to format 2018-04-19 20:09:10 +02:00
Wim Taymans
1f73143d55 connection: improve some return values 2018-04-19 20:04:25 +02:00
Wim Taymans
ae905530ba monitor: safely remove pending requests 2018-04-19 20:02:06 +02:00
Wim Taymans
63ce244c79 add client-stream
A client stream is a more specialized way to send 1 stream to pipewire.
On the client side and receiver side it can do conversion and the
buffer size of the client can be choosen arbitrarily.
2018-04-13 20:06:37 +02:00
Wim Taymans
efa35c2911 node: add option to not register a node 2018-04-13 20:05:46 +02:00
Wim Taymans
fa07400c2e port_mix: place io area in separate field
We would like to remove it from the spa_graph_port...
2018-04-13 20:04:22 +02:00
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