Commit graph

11930 commits

Author SHA1 Message Date
Barnabás Pőcze
5d0e82be7e pulse-server: module-echo-cancel: set pulse.module.id
Set `pulse.module.id` on every node that libpipewire-module-echo-cancel
creates so that one can see in the output of `pactl list {sinks,sources}`
which nodes were created by a particular instance of module-echo-cancel.

Fixes #3541
2023-10-02 22:04:34 +02:00
Wim Taymans
15a283834f filter-chain: add nofail flags
Add nofail flags to some filter-chain examples to avoid aborting on
startup and leaving the system in a silent state.

Add some more comments to guide people to change the paths to the
filters and config files where needed.
2023-10-02 17:49:33 +02:00
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
428f766d11 audioadapter: always pass Start when passthrough
When we are operating in passthrough, let the Start command pass through
to the follower in all cases. Only do the negotiate/buffers when not in
passthrough.

This fixes a case where the buffers are cleared on the alsa node and it
Pauses but then never resumes in a Start because the node is already
started. The real problem is probably somewhere else (in PipeWire) but
for now this will improve things in passthrough.
2023-10-02 15:41:56 +02:00
Wim Taymans
96c12c2988 alsa: do playback sync even when alsa is paused
We only start the ALSA pcm after we get our first buffer.

We still need to do the sync through (and get the number of prefilled
samples) to make sure we set our new timeout and don't keep on waking
up quickly while the graph fetches the first buffer.
2023-10-02 15:38:52 +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
Pauli Virtanen
bfcbeccec2 bluez5: adapt to changes in BlueZ BAP API
BlueZ master branch now puts various QoS fields into a separate dict, in
properties and method input and return values.

Adjust our code to match that.
2023-09-30 18:13:30 +00:00
Barnabás Pőcze
2e9633b6f6 spa: debug: log: add missing includes
Include `spa/debug/{pod,format,mem,dict}.h` for the declarations
of `spa_debugc_{pod,format,mem,dict}()`.
2023-09-30 17:22:12 +02:00
Wim Taymans
ee6e7021f0 loop: rate limit xrun messages
When the reader thread locks up for some reason, avoid excessive
logs about the invoke queue being filled.

See #3532
2023-09-30 09:29:20 +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
Wim Taymans
c4944dad17 audioconvert: silence some debug info 2023-09-27 11:44:31 +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
columbarius
092d01240b DNM: change socket name 2023-09-25 00:13:25 +02:00
columbarius
bafc779c86 examples/video-play: HACK disable dsp 2023-09-25 00:13:25 +02:00
columbarius
0af8a47058 videoconvert: Add videoconvert-vulkan 2023-09-25 00:13:25 +02:00
columbarius
87736cc685 videoconvert: Remove rate matching 2023-09-25 00:13:25 +02:00
columbarius
b39feb37c8 videoconvert: Support setting videoconverter via defines 2023-09-25 00:13:25 +02:00
columbarius
7fd0e8cda5 videoconvert: disable latency recalculation 2023-09-25 00:13:25 +02:00
columbarius
b8cbfe61d0 videoconvert: get running 2023-09-25 00:13:25 +02:00
columbarius
29bcebe4fe stream: wrap video streams with adapter node 2023-09-25 00:13:25 +02:00
columbarius
d435a36a9f apply changes from audioadapter to videoadapter 2023-09-25 00:13:25 +02:00
columbarius
3d8054eaf6 vulkan: compute return from process on invalid buffer id
Combined with the blit filter the process function of the source is
often called without a valid buffer, which results in a crash. This hack
mitigates this.
2023-09-25 00:10:56 +02:00
columbarius
b2766ad9ca vulkan: check if vulkan_blit_state is initialized and prepared 2023-09-25 00:10:56 +02:00
columbarius
c76addabd6 vulkan: Support MemPtr as input in blit 2023-09-25 00:10:56 +02:00
columbarius
7e40aec64e vulkan: Add function to upload data to a staging buffer 2023-09-25 00:10:56 +02:00
columbarius
05f0057f7c vulkan: Add functions to create staging buffers 2023-09-25 00:10:56 +02:00
columbarius
d17f853b03 vulkan: add enumerate function for dsp and raw 2023-09-25 00:10:56 +02:00
columbarius
e1cee625d5 vulkan: Create vulkan-blit-filter 2023-09-25 00:10:56 +02:00
columbarius
bd08dd056a vulkan: store formats with modifiers 2023-09-25 00:10:56 +02:00
columbarius
80fa9ee516 vulkan: Add pixel-formats to query format properties 2023-09-25 00:10:56 +02:00
columbarius
439758f681 vulkan: disable modifier properties check 2023-09-25 00:10:56 +02:00
columbarius
50c4fa43d6 vulkan: move format enumeration into utils functions 2023-09-25 00:10:56 +02:00
Samuel Thibault
8b807ded35 Add GNU/Hurd support 2023-09-24 15:11:52 +00:00
Samuel Thibault
f9559d2e83 node-driver: Cope with missing CLOCK_BOOTTIME 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