Wim Taymans
994630cb3a
filter-chain: optimize convolver some more
...
Add function to convolve without accumulate and use that when possible
to avoid some memset and memcpy.
2021-08-27 17:11:45 +02:00
Wim Taymans
73854e9ec9
filter-chain: improve convolver
...
Make the input buffer a little larger and leave the top blockSize
samples zero. That way we can fill up the lower part, leave the upper
part zero padded and feed this to the fft directly. Also only clear
the lower part when we can't fill it completely.
This removes some memcpy and memset operations.
2021-08-26 17:19:48 +02:00
Wim Taymans
a701a500af
filter-chain: add hilbert function
...
Can be used to perform a 90 degree phase shift.
2021-08-25 21:20:42 +02:00
Wim Taymans
09a0fdcc0f
protocol-simple: avoid freeing client multiple times
...
Ensure we only queue one cleanup operation and cancel all pending
operations when we destroy the client.
Fixes #1550
2021-08-25 21:19:25 +02:00
jakobrs
d1f521af40
Add missing > in link factory usage string
2021-08-25 15:39:06 +00:00
Wim Taymans
a9169cf491
pulse-server: Handle formats of virtual devices better
...
Virtual devices tend to start with partial fields set in the EnumFormat
param (usually rate is missing). This causes virtual devices to be
invisible until they are used in some way.
Fix this by relaxing the parsing of EnumFormat and by falling back to
the server defaults for the unspecified fields.
Fixes #1413
2021-08-25 17:33:22 +02:00
Wim Taymans
df92c09ff5
filter-chain: fix loop index
2021-08-24 16:45:11 +02:00
Wim Taymans
1e4e83d305
filter-chain: add more mixer ports
...
Add option to set NULL data as the port data so that plugins can
skip processing.
Add 8 mixer ports and skip NULL data.
Move silence and discard samples to static area.
Improve the virtual sink examples. use the correct mixing for the HRIR
channels.
2021-08-24 16:26:06 +02:00
Wim Taymans
123fe3d1c5
filter-chain: improve pffft compilation and CPU support
...
Compile different pffft versions per CPU.
Plug the right version depending on the runtime CPU.
See #1543
2021-08-24 12:07:37 +02:00
Wim Taymans
0f5face73f
filter-chain: use pffft for the convolver
...
It is faster.
2021-08-23 21:00:45 +02:00
Wim Taymans
34e53113e2
pulse-server: handle the case where rate-match returns 0
...
Still feed the minreq amount of data into the converter.
2021-08-23 17:27:45 +02:00
Wim Taymans
1a713e963a
pulse-server: fix parsing and creation of iec958 formats
...
Implement creating IEC958 format EnumFormat params.
Fix parsing of negotiated IEC958 formats and convert to our internal
format.
2021-08-23 12:09:53 +02:00
Wim Taymans
bceb9a4b6e
pipewire-pulse: enumerate iec958 formats for sinks
2021-08-23 11:58:29 +02:00
Wim Taymans
abf37f618e
modules: ensure node.name and description are set
...
Most apps need this and some even crash when they are not set.
2021-08-20 09:26:17 +02:00
Stefan Riesenberger
bb2f637839
pipewire-pulse: set description for ladspa sources
2021-08-19 17:33:31 +02:00
Wim Taymans
f96fa1bf36
pulse-server: find the rate in the format_info
...
Also look for the highest rate in the format_info to suggest as
the graph sample rate.
See #1523
2021-08-18 16:58:22 +02:00
Wim Taymans
bf66a3b236
pulse-server: use NODE_RATE to suggest a graph rate
...
When the rate is in the allowed rates and the graph is idle, it
will switch to the new rate.
2021-08-17 20:05:19 +02:00
Wim Taymans
961f478af8
pulse-server: add alaw/ulaw support
2021-08-17 17:35:05 +02:00
Wim Taymans
ee6d363481
filter-chain: add the 2 stage convolver
...
So that the tail is processed with a larger fft size to make it
faster for larger convolutions.
2021-08-16 20:31:43 +02:00
Torkel Niklasson
eff67c3c03
Add log level argument to ratelimit_test function
...
If a log message is rate limited, we only need to know about it if we
are actually interested in that log level. We therefore add an argument
to the ratelimit_test function to set the log level of the message
printed if a message is skipped
Change-Id: I5ccd4a78bf7e972fe8b0e7133cd7e08c1e38835f
2021-08-12 18:59:31 +00:00
Wim Taymans
f816f702a5
filter-chain: make sndfile optional
...
Replace the code paths that require sndfile with a fallback when the
dependency was not found.
2021-08-12 09:59:56 +02:00
Wim Taymans
ce2b385318
filter-chain: protect against bad values
2021-08-11 21:33:56 +02:00
Wim Taymans
755eab0cd3
filter-chain: add more convolver options
...
Add gain, delay, offset, length, channels options.
Make default blocksize depend on the ir length.
2021-08-11 21:33:56 +02:00
Wim Taymans
dbe9f02471
filter-chain: add support to read from offset
...
So that the channel of the response file can be set
2021-08-11 21:33:56 +02:00
Wim Taymans
be9ac91ce1
filter-chain: read samples correctly
2021-08-11 21:33:56 +02:00
Wim Taymans
44c6ec146e
filter-chain: parse config options
...
Remove LADSPA dependencies, only use it in ladspa_plugin.c
Parse convolver config, like filename
2021-08-11 21:33:48 +02:00
Wim Taymans
a2aaa71392
filter-chain: simplify plugin API some more
2021-08-11 21:12:38 +02:00
Wim Taymans
48136b4c2b
filter-chain: simplify the plugin API
2021-08-11 21:12:38 +02:00
Wim Taymans
85dd03c2d8
filter-chain: make plugin wrapper
...
So that we can implement the internal plugins with a more expressive
API than LADSPA.
2021-08-11 21:12:36 +02:00
Wim Taymans
e46799d43f
filter-chain: simplify parsing a little
...
Always parse the value and check the type.
2021-08-11 21:10:29 +02:00
Wim Taymans
67eb485811
filter-chain: add convolver
2021-08-11 20:54:04 +02:00
jicksaw
b4976728c3
filter-chain: fix parsing when control isn't last
...
Control had to be defined last, because after it the parser would
start skipping keys and fail to set rest of the params.
2021-08-11 18:52:10 +00:00
Pauli Virtanen
aa0736d67f
pulse-server: allow moving nodes with node.target to default sink/src
...
Set node.target metadata to "-1" instead of deleting it to direct nodes
to the default device.
Deleting the metadata, as done previously, does not work for nodes for
which the client has node.target set.
2021-08-09 22:25:59 +03:00
Wim Taymans
5a4ef78480
pulse-server: fix some indent errors
2021-08-09 15:27:42 +02:00
Nils Tonnätt
dd12910769
Revert "[Meson] Fix all deprecation warnings"
...
This reverts commit f7e1175ef0 .
2021-08-08 19:18:40 +00:00
Nils Tonnätt
f7e1175ef0
[Meson] Fix all deprecation warnings
2021-08-06 07:56:16 +00:00
Wim Taymans
9229467f20
module-zeroconf: only free impl when not NULL
2021-08-05 15:49:38 +02:00
Wim Taymans
83422ba62d
pulse-server: bump version to 15.0.0
2021-08-05 13:32:09 +02:00
Nils Tonnätt
761fa6f59d
meson: fix meson test without building pipewire before
...
This adds project internal dependencies to some tests to let all
tests succeed. It is not adding all dependencies those tests actually
need.
2021-08-04 20:38:30 +02:00
Peter Hutterer
99a10c1606
protocol: assert if the loop initialization fails on the connection test
...
This test needs an environment set up to load everything correctly,
running it directly results in a segfault. Let's make sure we assert on
a NULL loop to make this look slightly more planned.
2021-08-04 15:43:10 +10:00
Wim Taymans
bba8c5daa3
client-node: add port_set_mix_info
...
Add a new client-node port_set_mix_info event. bump the interface
version to 4 and the event version to 1.
The event is used to send information about the peer object to the
port mixer. This can be used to track what buffers belong to what
peer.
2021-08-03 17:36:11 +02:00
Wim Taymans
f4048ae663
protocol-native: fix marshal of add_port
...
We need to terminate the arguments with NULL.
2021-08-03 17:30:08 +02:00
Wim Taymans
7d9dde0a1d
loopback: pass all latency to the other stream
...
Latency configured on one streams needs to be passed directly to the
other stream.
2021-08-02 11:46:53 +02:00
Peter Hutterer
51a177eb6d
tree-wide: replace strstr(a, b) == a with spa_strstartswith()
...
spa_strstartswith() is more immediately understandable.
Coccinelle spatch file:
@@
expression E1, E2;
@@
- strstr(E1, E2) != E1
+ !spa_strstartswith(E1, E2)
@@
expression E1, E2;
@@
- strstr(E1, E2) == E1
+ spa_strstartswith(E1, E2)
Applied to the tree except for alsa/acp/compat.h because it looks like
that header is still mostly as-is from PA.
2021-08-02 08:24:21 +00:00
Peter Hutterer
6989b24148
pulse-server: fix json comma handling
...
First was never set to false, so we kept skipping the commas.
Fixes 393f3e6d05
2021-07-30 07:29:11 +00:00
Peter Hutterer
b6a8f67764
module-portal: use spa_atoi32 for safer PID parsing
2021-07-30 07:24:24 +00:00
Peter Hutterer
82e427745d
doc: structure the portal documentation a bit better
2021-07-30 07:24:24 +00:00
Wim Taymans
393f3e6d05
pulse-server: align format to pulseaudio json message format
...
PulseAudio uses json now as the message format. Reformat our output
and parse our input accordingly.
2021-07-29 20:55:44 +02:00
Peter Hutterer
4496aed5a6
doc: revamp the pipewire-access page
...
Rewording, linking to the various things, etc.
2021-07-29 16:06:36 +10:00
Wim Taymans
8e8cb34dc2
protocol: don't place sockets in $HOME
...
No server will put them there and no client will look for it there.
2021-07-27 10:57:31 +02:00