Wim Taymans
eca4822311
filter-chain: add custom volume support
...
Add capture.volumes and playback.volumes to control the graph controls
that handle the capture and playback volume respectively.
See #3434
2023-10-02 17:02:33 +02:00
Wim Taymans
be1a60c5f9
pw-cat: add DFF file suppport
2023-10-02 16:51:37 +02:00
Wim Taymans
e1b6a4237f
context: use smallest fraction for largest rate
...
To find the largest rate, we need to select the smallest fraction.
This fixes the case where 44100Hz was selected when there are 2 nodes,
one suggesting 44.1Khz and another 48Khz. After this, 48KHz is
selected.
2023-10-02 10:58:39 +02:00
Barnabás Pőcze
ceb4f43944
pipewire: rtsp-client: use flexible array member for outgoing message content
...
There is no need to have an extra pointer in the struct that is
set to right after the object at initialization and is never modified
because a flexible array member can be used instead.
This has advantages: `struct message` is now smaller, and there is
no extra load when accessing `struct message::data`.
2023-09-29 16:55:54 +00:00
Barnabás Pőcze
37b2633756
pulse-server: reorder initialization to make proper cleanup possible
...
Previously, in case of errors, the struct members were not disposed of
correctly, leading to memory leaks. Reordering the initialization slightly
makes it possible to call `impl_free()`.
See https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1840#note_2106874
2023-09-29 18:19:13 +02:00
Wim Taymans
bcc902a55e
modules: fix compilation on clang
2023-09-28 11:42:56 +02:00
Wim Taymans
45c99cd487
impl-link: recalc graph after destroy prepared link
...
Get and use the prepared state of the link *before* unpreparing
the link as part of the destroy.
2023-09-28 11:22:46 +02:00
Wim Taymans
447ad35585
filter-chain: have separate control values per handle
...
When we duplicate the filter, also duplicate the control values instead
of reusing the same value for all copies. We then duplicate the value
ourselves when setting a control. This makes it possible to later use
this for volume control.
2023-09-27 16:18:58 +02:00
Wim Taymans
ee8cb6aa67
filter-chain: fix gain when mixing 1 source
...
The gain was not used when mixing just one source.
2023-09-27 16:10:56 +02:00
Christian Glombek
4823e573dc
module-raop-sink: Send POST /feedback every 2 seconds
2023-09-26 19:11:08 +02:00
Christian Glombek
2ae850aa49
module-raop-sink: Use "PipeWire/$VERSION" as UserAgent
2023-09-26 19:11:08 +02:00
Christian Glombek
def6514872
module-raop-sink: Set DACP-ID header
2023-09-26 19:11:08 +02:00
Christian Glombek
de329f3a62
module-raop-sink: Uppercase Client-Instance header
2023-09-26 19:11:08 +02:00
Christian Glombek
c4a18d6c5c
module-raop-sink: Add Apple-Challenge only if RSA encrypted
...
Only add Apple-Challenge header once on ANNOUNCE,
and only if RSA encrypted.
2023-09-26 19:11:08 +02:00
Christian Glombek
a8f5d20384
module-raop-sink: Rename a bunch of things
2023-09-26 19:11:08 +02:00
Wim Taymans
9726f53e60
conf: fix regex matching
...
Reset skip to 0 for each value or else we won't be able to match
2 values when using regex.
Fixes #3528
2023-09-26 11:56:26 +02:00
Wim Taymans
93d27cb26f
conf: lower pulse client priority
...
So that jack and native pipewire clients get more priority. The pulse
clients are supposed to less critical desktop apps.
2023-09-26 09:30:12 +02:00
Wim Taymans
4be0c5f365
stream: add EARLY_PROCESS flag
...
This will call the process function as soon as a new buffer is dequeued.
This can be used to keep the buffer at a certain fill level instead of
the minimal fill level without the flag.
Fixes #3480
2023-09-25 10:00:07 +02:00
Christian Glombek
7f14e14ab7
module-raop-sink: Use rtp_header for RTP messages
2023-09-25 08:37:56 +02:00
Samuel Thibault
8b807ded35
Add GNU/Hurd support
2023-09-24 15:11:52 +00:00
Samuel Thibault
5aefb1f9f4
module-pipe-tunnel.c: Include <sys/uio.h> to get struct iovec
2023-09-24 15:11:52 +00:00
Samuel Thibault
c5ff3c8e3c
utils.h: Include <errno.h> to get ENODATA
2023-09-24 15:11:52 +00:00
Wim Taymans
224f1f16f1
pulse-server: emit stream changed after Latency param change
...
Piggy back on the Latency param change to emit a stream changed event
because we now might have a link between the stream and a device.
We should really watch for new links and emit change events for the
streams that it links to.
Fixes #3522
2023-09-21 16:42:08 +02:00
Wim Taymans
cc0eb1ba0d
context: handle force quantum like force_rate
...
Make sure we don't end looping when doing a reconfigure by using the
same logic as the force rate.
2023-09-20 16:58:12 +02:00
Wim Taymans
9bfe24d62f
context: also reconfigure when quantum was forced
...
This makes the clock.force-quantum setting and node.force-quantum
suspend all drivers and resume them in the new quantum.
This is essential in order to change the quantum on an IRQ based
driver because it will otherwise refuse to change the graph quantum.
2023-09-20 15:46:41 +02:00
Wim Taymans
c915f2a6fd
modules: add quotes around hw:0
...
Because of the : it needs to be surrounded with quotes to be parsed
as a string.
Fixes #3515
2023-09-16 19:39:51 +02:00
Barnabás Pőcze
436787d6ba
treewide: try to use const char * for string literals
2023-09-16 17:47:35 +02:00
Barnabás Pőcze
3293e6a8ff
pipewire: module-profiler: mark event vtable const
2023-09-16 17:15:32 +02:00
Wim Taymans
27f6ef119f
context: add some more debug
...
Also debug the currently configured graph target values.
2023-09-15 11:17:40 +02:00
Wim Taymans
a4f3b78dff
conf: enable jackdbus support by default
...
Become a JACK client as soon as jackdbus is started. This is probably
a good thing to do by default.
2023-09-14 13:24:51 +02:00
Wim Taymans
846e732458
pulse-server: remove pending_streams list
...
We can simply use the pending flag and merge the handling of the new
stream with the stream move logic.
2023-09-14 12:08:48 +02:00
Wim Taymans
13caae49b5
pulse-server: avoid emitting changes for unused params
...
Don't emit change events when latency or tag change, for example.
2023-09-14 11:03:39 +02:00
Wim Taymans
3c812f672b
pulse-server: add an option to check module arguments
...
Add a list of valid keys to the module info. When set, check if the
module arguments only contain the allowed keys and give an error
otherwise.
2023-09-13 12:26:57 +02:00
Wim Taymans
b094057b0b
handle NULL latency param
...
Fixes #3504
2023-09-13 11:13:48 +02:00
Simon Ruderich
615f950c2f
pw-top: add missing options to man page and improve --help output
2023-09-11 18:50:24 +00:00
Stefan Ursella
cacdcc1b62
pw-mon: add filter param to hide props and/or params
2023-09-11 17:42:14 +00:00
Wim Taymans
00a82017a2
stream: fix datatyp on copied object
...
First copy the object and then modify it to avoid changing the user
provided param.
2023-09-08 12:19:05 +02:00
Wim Taymans
016d15e598
ratelimit: missed -> suppressed
...
To avoid confusing with missed samples.
2023-09-08 12:18:23 +02:00
Wim Taymans
1837654a4b
impl-port: only log changes
2023-09-07 17:46:34 +02:00
Wim Taymans
6eb7eb7df2
modules: fix page ref
2023-09-07 16:30:46 +02:00
Wim Taymans
0da572474f
modules: forward tag param
2023-09-07 15:54:28 +02:00
Wim Taymans
ebeae802ad
audioconvert: improve tag and latency handling
...
Don't just forward the tag and latency events to the follower but let
the audioconvert aggregate and emit the updated tag/latency event
that is then configured on the follower.
When using the DSP mode of the audioconvert, this results in an
accumulated latency/tag from all the DSP ports instead of just
the last DSP port param update.
Put properties with media. prefix in tags in pw-cat.
2023-09-07 15:27:21 +02:00
Wim Taymans
c5f188784d
impl-node: make sure we always clear params
...
Always first clear the params before we start enumerating new ones.
Otherwise we only clear them when we see the first result and there
might not be a result.
2023-09-07 14:18:04 +02:00
Wim Taymans
d7f7fd258d
pw-cat: set default properties after setup
...
So that we can still set the MEDIA_NAME from the artist/title.
2023-09-07 10:05:15 +02:00
Jonas Holmberg
be943ca9db
context: scan peers in both directions
...
Don't stop scanning peers after trying one direction. Try the other
direction too, just like with link groups.
See a821027fb8 .
2023-09-06 09:29:33 +00:00
Michael Tretter
9b29bcd4e8
conf: set description for test nodes
...
`wpctl status` shows the description of device nodes. Therefore, the
videotestsrc and audiotestsrc are listed as "(null)" if the example
configuration of the sources is used.
Set the description in the example for how to configure the audiotestsrc
and the videotestsrc.
2023-09-04 15:46:05 +02:00
Dmitry Sharshakov
18b0fe1e05
module-filter-chain: don't use i for single filename
...
While this shouldn't be broken, it's illogical
2023-09-01 19:30:07 +00:00
columbarius
33f98489d6
pipewire-vulkan: Start vulkan nodes via pipewire proxy server
2023-08-31 10:08:06 +00:00
Wim Taymans
9f30e58ef2
pipe-tunnel: support pipe-source as a driver
...
Use a timer to periodically schedule the pipe-source when configured
as a driver. Adjust the timeout period based on buffer fill levels.
Fixes #3478
2023-08-31 11:41:00 +02:00
Wim Taymans
f25da522a4
pulse-tunnel: fix index after overrun
...
First advance the index, then fix the avail value or else we don't end
up changing the index at all.
2023-08-31 11:39:54 +02:00