Wim Taymans
db49021104
audioconvert2: add control port processing
2022-06-16 09:09:27 +02:00
Wim Taymans
d5c28149f1
audioconvert2: fix in/out queued samples
2022-06-16 09:09:27 +02:00
Wim Taymans
7fe15ee5db
audioconvert2: add beginnings of control ports
2022-06-16 09:09:27 +02:00
Wim Taymans
d3baa16559
audioconvert2: reset node in Flush/Suspend
2022-06-16 09:09:27 +02:00
Wim Taymans
8e6a8a705b
audioconvert2: clamp in and output samples
...
Make sure we don't read or write more samples than available in the
buffers.
2022-06-16 09:09:27 +02:00
Wim Taymans
9e93fe3c36
audioconvert2: remap volumes to right channels
...
We get the volumes with a channelmap of the input/output, remap this to
the channelmixer internal layout.
2022-06-16 09:09:27 +02:00
Wim Taymans
50c37cc801
audioconvert2: rearrange some code
...
Move some code around so that we don't have to prepare the output
buffers when there is no input to process.
2022-06-16 09:09:27 +02:00
Wim Taymans
d5e333eea7
audioconvert2: in merge mode, always process quant samples
2022-06-16 09:09:27 +02:00
Wim Taymans
c4d77d421a
audioconver2: process monitor ports immediately
2022-06-16 09:09:27 +02:00
Wim Taymans
f45f1acd82
audioconvert2: use the position rate as resampler rate
...
For the DSP inputs, use the position rate.
2022-06-16 09:09:27 +02:00
Wim Taymans
58abc1ec15
audioconvert2: Improvements
...
Suggest 2 buffers by default.
Improve rate match flow.
monitor does not need the out_offset
Update rate match when we know the queued samples.
2022-06-16 09:09:27 +02:00
Wim Taymans
2352ae33c3
audioconvert2: add queueing
...
Use in and out offset to read/write partial input/output.
2022-06-16 09:09:27 +02:00
Wim Taymans
d728076d33
audioconvert2: handle drain
2022-06-16 09:09:27 +02:00
Wim Taymans
1c4058b947
audioconvert2: clamp offset and size
2022-06-16 09:09:27 +02:00
Wim Taymans
229a7b6019
audioconvert2: fix default settings
2022-06-16 09:09:27 +02:00
Wim Taymans
f2c1fe106d
audioconvert2: more fixes
2022-06-16 09:09:27 +02:00
Wim Taymans
3806cdaa6f
audioconvert2: more improvements
...
Use a wildcard rate for DSP ports.
Handle wildcards for rate and channels.
Calculate required in/out samples using quantum
Limit monitor and output number of samples.
2022-06-16 09:09:27 +02:00
Wim Taymans
c0f34e9d9d
audioconvert2: set blocks a stride for DSP ports
...
They might not get connected and negotiated but we still need to
use empty buffers in that case.
2022-06-16 09:09:27 +02:00
Wim Taymans
2d6bf00acc
audioconvert2: add options
2022-06-16 09:09:27 +02:00
Wim Taymans
75ebdbdfa0
audioconvert2: start working on monitor ports
2022-06-16 09:09:27 +02:00
Wim Taymans
db2cbdf906
audioconvert2: DSP mode without format gives no ports
2022-06-16 09:09:27 +02:00
Wim Taymans
d53311099f
audioconvert2: format is optional for convert mode
2022-06-16 09:09:27 +02:00
Wim Taymans
e78a93d358
audioconvert2: fix audio rate property
2022-06-16 09:09:27 +02:00
Wim Taymans
9babdee6cd
audioconvert2: do input and output remapping
...
We remap the input channels to our cannonical layout and then remap it
to the target layout.
2022-06-16 09:09:27 +02:00
Wim Taymans
922a088129
audioconvert2: handle volume
2022-06-16 09:09:27 +02:00
Wim Taymans
0099b80098
audioconvert2: add properties
2022-06-16 09:09:27 +02:00
Wim Taymans
8cb0d9fd7b
audioconvert: add channelmix and resample
2022-06-16 09:09:27 +02:00
Wim Taymans
399f638eb1
audioconvert: more work
2022-06-16 09:09:27 +02:00
Wim Taymans
7f9ddd0f15
Add audioconvert2
2022-06-16 09:09:27 +02:00
Ole Salscheider
3695611b20
channelmix: Assign slev in mixing matrix when generating side/rear from front
...
This way, PSD upmixing sounds much more natural and is in line with the
original publication.
2022-06-14 10:58:25 +00:00
Peter Oliver
d3597ed149
alsa: Disable IEC958 on Audioengine HD3
...
As discussed in #2112 .
2022-06-14 06:58:41 +00:00
Wim Taymans
8e1f0628f7
channelmix: add 3p1_2 and use this for quad conversions
...
Simplify some SSE versions
2022-06-13 20:35:00 +02:00
Ole Salscheider
5dc4434dc7
channelmix: Implement PSD upmixing for stereo -> quad
...
Fixes #2436 .
2022-06-13 14:19:23 +00:00
Ole Salscheider
354a04c91d
Channel mixer: Remove channelmix_f32_2_4_sse
...
It does not have PSD upmixing implemented and does not allow to disable
the simple upmixing algorithm either.
Fixes #2438 .
2022-06-13 14:19:23 +00:00
Wim Taymans
a1d4b41c34
channelmix: fix control handling
...
We need to use the control type of the control we're actually going
to use.
2022-06-13 16:17:53 +02:00
Frédéric Danis
8bd1d4c7c9
bluez5: Fix LC3plus plugin build
...
LC3PLus plugin should not depend on LDAC C args to build
2022-06-10 18:16:49 +02:00
Wim Taymans
b99c71262e
alsa: force same clock only for pro audio profile
...
Assume that capture and playback nodes from a device have different
clocks. This enables the adative resampler to match them. A lot of devices
actually have slightly different rates and would work out of the box
with this fix.
Make an exception when the card is configured in the pro audio profile.
Then we force the same clock on all device nodes and avoid resampling
and rate matching. This can still be changed with a session manager
override.
2022-06-08 17:03:50 +02:00
Pauli Virtanen
5b429607a8
bluez5: disable dummy avrcp player by default
...
It causes some headsets behave strangely. See pipewire#2391,
pipewire#1853.
The BlueZ issue of AVRCP volume sometimes missing that this worked
around was fixed in recent versions. The issue of some headsets not
sending volume without AVRCP player remains, but it appears this breaks
more headsets than fixes.
2022-06-07 18:13:06 +03:00
Wim Taymans
9493dafe44
vulkan: update example shaders
2022-06-06 12:13:20 +02:00
Wim Taymans
80f317344e
vulkan: fix validation errors
2022-06-06 12:13:20 +02:00
Wim Taymans
d40e6aeedd
vulkan: use image sampler
2022-06-06 12:13:20 +02:00
Wim Taymans
b02ebec954
vulkan: use images
...
The filter can now run shadertoy filters.
2022-06-06 12:13:20 +02:00
Wim Taymans
24fc972164
vulkan: add some more error checks
2022-06-06 12:13:20 +02:00
Wim Taymans
6e681fc98d
vulkan: more improvements
2022-06-06 12:13:19 +02:00
Wim Taymans
e6f01563ab
vulkan: support multiple streams of buffers
2022-06-06 12:13:19 +02:00
Wim Taymans
332e8b7029
vulkan: start of vulkan filters
2022-06-06 12:13:19 +02:00
Pauli Virtanen
8898a6a8f0
bluez5: don't consider profiles the adapter doesn't have
...
Don't try to reconnect or wait for profiles, which cannot be connected
because the adapter doesn't have the counterpart sink/source profile.
E.g. we should not reconnect/wait for HFP HF on remote device, if
we don't have the corresponding HFP AG.
2022-06-05 18:15:42 +00:00
Pauli Virtanen
8383ee8552
bluez5: a2dp-sink: address A2DP transport acquire failure mode
...
If A2DP remote does not acquire its pending transport within a timeout,
we won't get a write error in a2dp-sink, but instead the transport
becomes idle. Currently, we continue writing to the socket as if
everything was fine, even though the data won't be processed at the
remote end.
Handle this by stopping the node and emitting a node error event.
Pipewire may then restart the node to retry.
2022-06-05 18:10:01 +00:00
Pauli Virtanen
fc4f831afa
audioconvert: forward follower node errors
...
If the follower of the adapter emits an error event, the adapter needs
to forward it to upper levels so that they know the node has errored,
and handle the situation.
2022-06-05 18:10:01 +00:00
Pauli Virtanen
8949d45c69
bluez5: check decode/encode capability also at registering
...
Endpoints without decode/encode capability are skipped in the object
manager, but we should also skip them in the registration calls (even
though in practice this doesn't appear to matter).
2022-06-05 18:03:24 +00:00