Commit graph

10303 commits

Author SHA1 Message Date
Wim Taymans
911378651b avb: implement some more methods
Only reply to messages for us.
2022-07-12 12:27:22 +02:00
Wim Taymans
4110f35269 avb: remove static streams 2022-07-12 12:27:22 +02:00
Wim Taymans
3cc21c6f5b avb: implement acmp connect/disconnect commands 2022-07-12 12:27:22 +02:00
Wim Taymans
50199c9824 avb: use descriptors for ADP
Remove some of the json parsing for now, work with descriptors.
Remove some parsing code.
Implement GET_AVB_INFO.
Keep descriptors in a list.
Add some utils.
2022-07-12 12:27:22 +02:00
Wim Taymans
b6b8471540 avb: add some more descriptors
PipeWire Streams now show up in Hive.
2022-07-12 12:27:22 +02:00
Wim Taymans
4613c7822f avb: implement some descriptors
Work on raw ethernet frames.
2022-07-12 12:27:22 +02:00
Wim Taymans
da14e9f59d avb: implement some more AEM 2022-07-12 12:27:22 +02:00
Wim Taymans
287e8cfe51 avb: clean up some packets
Listen to all messages. We don't seem to receive TSN messages from our
local host it seems.
Reply with not-implemented for an AEM_COMMANDS.
Implement some mode ADP messages.
2022-07-12 12:27:22 +02:00
Wim Taymans
07a4c5032e avb: add aecp stubs 2022-07-12 12:27:22 +02:00
Wim Taymans
dc44a61ef3 avbtp: add some more fields
Add ADP entries timeout
2022-07-12 12:27:22 +02:00
Wim Taymans
f470354e67 avbtp: add beginnings of AVB manager module 2022-07-12 12:27:22 +02:00
Wim Taymans
af4875eb47 avb: remove libavtp dependency 2022-07-12 12:27:21 +02:00
Wim Taymans
c79fddf007 avb: handle xruns better
Don't stop early, fill gaps with silence.
2022-07-12 12:27:21 +02:00
Wim Taymans
87053365ea avb: handle sink follower
We need to flush out the packets when we are a follower and when we get
data because our timer is not running as a sink.
2022-07-12 12:27:21 +02:00
Wim Taymans
4d6c71bf12 avb: use iovec to read from ringbuffer 2022-07-12 12:27:21 +02:00
Wim Taymans
5c3629a165 avb: add follower mode
As a follower we disable our own timer and produce a buffer from what we
have when _process is called.
2022-07-12 12:27:21 +02:00
Wim Taymans
ff5201ef3d avb: check seq
Avoid infinite loops.
Check sequence number and warn
Use 32 frames per pdu in example.
2022-07-12 12:27:21 +02:00
Wim Taymans
200f591a3d avb: add source 2022-07-12 12:27:21 +02:00
Wim Taymans
552a0056b5 avb: more work
Handle properties.
Fix format negotiation.
Wait in underrun.
2022-07-12 12:27:21 +02:00
Wim Taymans
537a38355a avb: more work 2022-07-12 12:27:21 +02:00
Wim Taymans
f95b8263e6 avb: more improvements 2022-07-12 12:27:21 +02:00
Wim Taymans
1adc94df11 start of AVB support 2022-07-12 12:27:21 +02:00
Wim Taymans
957e3a7b38 0.3.55 2022-07-12 10:54:59 +02:00
Wim Taymans
6a8fd7024e audioconvert: add and use AVX2 clamp macros 2022-07-12 10:45:41 +02:00
Wim Taymans
7745346292 audioconvert: add sse2 s16 dither functions 2022-07-12 10:34:13 +02:00
Wim Taymans
c31928c5f0 audioconvert: add and use CLAMP macros 2022-07-12 10:33:37 +02:00
Doğukan Korkmaztürk
fd2cc19eaa pipewire: fix a bugprone-branch-clone warning
A clang-tidy bugprone-branch-clone warning has been fixed and branches
are made more uniform
2022-07-11 13:03:44 -04:00
Wim Taymans
c35006f040 audioconvert: move scaling to setup 2022-07-11 17:50:20 +02:00
Wim Taymans
68f883ff77 audioconvert: fix dither scale
Rectangular dither should be [-0.5, 0.5]
Triangular dither should be [-1.0, 1.0]
Noise should add extra bits.
2022-07-11 17:19:28 +02:00
Wim Taymans
e313149f7f audioconvert: improve SSE2 dither generation 2022-07-11 16:41:12 +02:00
Wim Taymans
277addcca6 audioconvert: add triangular dither 2022-07-11 16:28:51 +02:00
Wim Taymans
9a5a71dda9 tests: add test for noise 2022-07-11 15:49:44 +02:00
Pauli Virtanen
a56435c4dc pipewire: deprecate pw_stream_connect target_id in documentation 2022-07-11 15:32:43 +03:00
Pauli Virtanen
ca87d40448 examples: use PW_KEY_TARGET_OBJECT
In examples, tell people how to use target.object.
2022-07-11 15:32:43 +03:00
Wim Taymans
de65fd442f modules: use TARGET_OBJECT instead of NODE_TARGET 2022-07-11 13:52:35 +02:00
Wim Taymans
dedbf39ab5 tests: whitespace is not allowed in number either 2022-07-11 12:15:40 +02:00
Wim Taymans
302bad96a0 tests: add json float check unit test 2022-07-11 12:05:42 +02:00
Wim Taymans
03f918bf15 udev: prefix vendor.id and product.id with 0x
They are hex strings so prefix them with 0x to make sure they get
handled like that in properties.

Fixes #2527
2022-07-11 11:55:42 +02:00
Wim Taymans
cbbc4baa3f json: avoid converting random string to floats
Only allow the json float characters when converting to float.
This avoids NAN, INF, 0xffe4 etc to be seen as a json float.
2022-07-11 11:50:58 +02:00
Wim Taymans
bdfde2fdf0 Revert "spa: leave vendor.id and product.id in hex"
This reverts commit 0d33760b71.
2022-07-11 11:23:08 +02:00
Wim Taymans
dd1d5960b4 audioconvert: implement f64s
Add swapping functions for f64s.
Fix the awkward interleave/deinterleave names for 32s.
2022-07-11 10:58:51 +02:00
Wim Taymans
bc1789c3ea Revert "acp: sync with pulseaudio"
This reverts commit 57f0fdf746.

This seems to cause problems and needs to mature a bit more in
pulseaudio it seems.
2022-07-11 10:03:01 +02:00
Wim Taymans
6baf2ede50 filter-chain: add filter-chain.conf
Make a new filter-chain.conf file that contains the boilerplate for
filters.
Suggest that the example filter-chain fragments be copied to the
filter-chain.conf.d/ directory and that filters be run from this
config.
2022-07-11 10:00:46 +02:00
Wim Taymans
8fe83e5304 audiomixer: optimize avx mixer some more
Add avx mixer to test and benchmark
Rework and unroll the avx mixer some more.
The SSE one is 10 times faster than the C one, The AVX is 20 times
faster. The SSE2 function is 5 times faster than the C one.
2022-07-10 23:13:24 +02:00
Wim Taymans
23984f8790 jack: improve mix function
Avoid many reads and writes to temp buffer.
2022-07-10 21:59:05 +02:00
Wim Taymans
7a0445cb28 audiomixer: improve sse and sse2 mixer
Add mixer benchmark.
Improve sse and sse2 mixer function by removin some read/write to the
temporary buffer at the expense of more scattered reads.
2022-07-10 21:15:34 +02:00
Pauli Virtanen
240d212822 pipewire-v4l2: disable _FORTIFY_SOURCE when defining override functions
_FORTIFY_SOURCE defines always_inline versions of open etc. functions,
which conflict with our exported override versions.  Disable it for the
file that defines the override functions.
2022-07-10 16:05:27 +03:00
Wim Taymans
5fbda82cc3 spa: tweak SPA_MIN and SPA_MAX
This generates much better assembler because it can use a cmov in
more cases.
2022-07-09 20:35:47 +02:00
Pauli Virtanen
fe7c6bcef9 bluez5: volume changes from headset should be saved
User changing volume via headset buttons should be treated on the same
level as changing from desktop UI.  Also initial headset volume should
be considered saved (even though session managers currently ignore the
initial route values on route restore).

Mark route as saved on volume events.
2022-07-09 18:19:45 +00:00
Pauli Virtanen
77959a2c1c bluez5: get initial node volume from transport
When emitting node, get initial volumes from transport hardware volume,
if available.

The session manager usually overrides these immediately with saved
values, but it's better to show the HW volume when the node first
appears.
2022-07-09 18:19:45 +00:00