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
Barnabás Pőcze
2d060a5a72
INSTALL.md: add note about uninstallation
...
At the moment, meson stores the list of installed files
in the build directory, and this list must be kept intact
for uninstallation to work. Add a note about it.
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
33a8cf2a23
INSTALL.md: remove unnecessary colon
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
c757ed6d41
INSTALL.md: do not specify sudo for installation
...
Depending on the installation prefix and destination dreictory,
`sudo` may be unnecessary, so remove it from the command,
but mention that it may be needed.
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
78d5315c76
INSTALL.md: emphasize some things with monospace font
...
Make some mentions of paths, programs, environmental variables monospace.
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
c195b5eda0
INSTALL.md: specify build directory for (un)installation
...
Most meson command invocations specify the build directory
in the document, do the same for `meson install` and
uninstallation.
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
f6ddac3f8e
INSTALL.md: use meson compile
...
The "compile" subcommand is available since meson 0.54,
and it provides a backend agnostic way to start the build.
2022-06-15 19:11:50 +00:00
Barnabás Pőcze
24177c3bae
INSTALL.md: link to meson and ninja websites
2022-06-15 19:11:50 +00:00
Jonas Holmberg
671fc51d27
pw-cli: Work without readline too
...
Build and install pw-cli using getline() (standardized in POSIX.1-2008)
if readline is not found.
2022-06-15 16:37:01 +02:00
Wim Taymans
b9fa0e6f28
pw-cat: also set rate/latency for pipe
...
Move the latency and rate properties to a separate function so that
we can call it in all cases and not just for sndfile io.
Simplify format handling.
2022-06-15 12:35:56 +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
Wim Taymans
68bafcf166
pulse-server: Don't send more than fragsize chunks
...
Send exactly fragsize chunks when capturing.
See #2418 and #2434
2022-06-14 11:20:18 +02: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
Wim Taymans
c1a61a7941
pulse-server: only append .monitor for capture streams
2022-06-13 20:12:10 +02:00
Wim Taymans
f88134232d
pulse-server: fix name when moved to monitor
...
When a stream is moved to a monitor, make sure we append the .monitor
suffix to the node name.
Fixes #2440
2022-06-13 19:54:35 +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
Jonas Holmberg
aa3aa6bb05
stream: Fix memory leak
...
Cleanup controls instead of inserting new elements with id 0 into the
controls list every time there is an unsupported or invalid PropInfo in
an info_changed node event.
2022-06-10 11:50:40 +02:00
Wim Taymans
9255cfbd7c
pw-cli: add -m option
...
To keep the mainloop running and keep the process (and objects) alive.
Interesting when doing pw-cli load-module libpipewire-module-loopback.
2022-06-09 17:24:13 +02:00
Wim Taymans
4821c7ca2f
pulse-server: don't append "/pulse" to PULSE_RUNTIME_PATH
...
Fixes #2431
2022-06-09 17:06:07 +02:00
Wim Taymans
31bf631057
0.3.52
2022-06-09 10:35:24 +02:00
Barnabás Pőcze
c8c2526f87
pulse-server: destroy modules first
...
The `impl::servers` list contains all servers, and they are all
destroyed in `impl_clear()`. However, by that time, modules were
not freed previously, so if there were any instances of
*module-protocol-native-tcp* loaded, then the unload() method
of those would call `server_free()` on already freed servers,
resulting in use-after-frees. Fix that by unloading modules
before destroying the servers.
==451490==ERROR: AddressSanitizer: heap-use-after-free on address 0x612000006050 ...
READ of size 8 at 0x612000006050 thread T0
#0 0x7f45edb19a0c in server_free ../src/modules/module-protocol-pulse/server.c:1022
#1 0x7f45edb46c7d in module_native_protocol_tcp_unload ../src/modules/module-protocol-pulse/modules/module-native-protocol-tcp.c:66
#2 0x7f45eda893c7 in module_unload ../src/modules/module-protocol-pulse/module.c:128
#3 0x7f45edaf7269 in impl_unload_module ../src/modules/module-protocol-pulse/pulse-server.c:5336
#4 0x7f45edaa1583 in pw_map_for_each ../src/pipewire/map.h:238
#5 0x7f45edaf79c5 in impl_clear ../src/modules/module-protocol-pulse/pulse-server.c:5358
...
0x612000006050 is located 16 bytes inside of 264-byte region [0x612000006040,0x612000006148)
freed by thread T0 here:
#0 0x7f45f30be672 in __interceptor_free /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:52
#1 0x7f45edb1a48a in server_free ../src/modules/module-protocol-pulse/server.c:1040
#2 0x7f45edaf730b in impl_clear ../src/modules/module-protocol-pulse/pulse-server.c:5347
...
Fixes: f181210b29 ("pulse-server: properly unload modules")
2022-06-09 03:02:06 +02:00