Commit graph

10650 commits

Author SHA1 Message Date
Wim Taymans
b59766c3d1 v4l2: add support fot G_CTRL
Get the current values of the controls and add those to the Props.

Emit a Props param changed event when we update properties.
2023-04-18 16:27:55 +02:00
Wim Taymans
74b1b63c3d module-raop: implement remote volume
Intercept the volume property changes and trigger a set_parameter
with the volume property to control the remote volume.

Fixes #2061
2023-04-18 11:30:57 +02:00
Niklāvs Koļesņikovs
5c72539e2e gitlab-ci: hopefully fix the CI failures after base image bumps
The Ubuntu image needs a rebuild, because there's already an image with that
same version which lacks meson. And likewise Fedora needs a rebuild, because
we still need python3-pip for two sub-images and this is (probably) the least
bad way to deal with that.

Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd@relay.firefox.com>
2023-04-18 08:47:28 +00:00
Niklāvs Koļesņikovs
12f415381a gitlab-ci: update Fedora image from 35 to 37
According to gkiagia Fedora 37 is a better choice, because it's newer and its
compatibility with Coverity has been verified by WirePlumber's CI setup already.
Therefore upgrading the CI image to F37 should be safe.

Also fixed a typo in a previous commit's comment introduced by autocompletion.

Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd@relay.firefox.com>
2023-04-18 08:47:28 +00:00
Niklāvs Koļesņikovs
3e23a7028b gitlab-ci: update Alpine image to 3.17
Back when it was added, the latest stable version was used. So it makes sense
to keep using using the latest stable image, which is now 3.17.

Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd@relay.firefox.com>
2023-04-18 08:47:28 +00:00
Niklāvs Koļesņikovs
e1fb9d1987 gitlab-ci: update the version of Ubuntu used to 22.04
Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd@relay.firefox.com>
2023-04-18 08:47:28 +00:00
Wim Taymans
3b3146e852 examples: fix type of getopt_long return value 2023-04-18 09:48:19 +02:00
Wim Taymans
f0003b702c logger: add special stdout and stderr filenames
Add special stdout and stderr filenames to redirect the log to those
targets with setlinebuf.
2023-04-18 09:37:39 +02:00
Wim Taymans
312af1103e support: don't set linebuf on stderr
Don't set linebuf on our stderr fallback file.

Fixes #3164
2023-04-17 21:22:26 +02:00
Wim Taymans
bbf0ed063e pulse-tunnel: proxy volume/mute
Intercept the stream volume/mute and set it as the remove volume/mute.

Listen for remote volume/mute changes and set this as the local stream
volume. Make sure the adapter is using 1.0 software volume but reports
the real channelVolume of the remote stream.
2023-04-17 17:53:23 +02:00
Wim Taymans
680f12e437 stream: expose pw_stream_set_param()
Add a new pw_stream_set_param() method to configure a param on the
adapter.

This can be used to override the volume param for the adapter, for
example.
2023-04-17 16:21:34 +02:00
Wim Taymans
bf1b3bb157 audioconvert: handle recursive Props set_param
When the node receives a set_param Props, it calls the follower
set_param implementation. If that one calls set_param again on the
adapter, discards the original set_param.

This makes it possible for the follower to intercept the Props param and
set a modified version on the converter. This can be used to intercept
volume changes.
2023-04-17 16:12:35 +02:00
Wim Taymans
dad87fb3a8 module-x11-bell: move error to info
Make the XOpenDiplay call failure print an info message instead of a
warning. We usually ignore this error in the config file. Add a
suggestion for how to fix this issue in the info log.

Fixes #2918
2023-04-17 11:11:01 +02:00
Wim Taymans
aacd458b92 conf: shortcut failure
As soon as we find a failed match, break the loop so that we don't check
uselessly the other properties but that we proceeed to the next set of
properties to match.
2023-04-17 10:34:38 +02:00
Wim Taymans
27bc60aeab pipewire.conf: add condition for exec and modules
Add a condition to load the session manager and pipewire-pulse. This
makes it possible to disable the exec based on a context.properties
override.

Add a condition to load the access module. This makes it possible to
disable the default access behaviour and override with a custom one.

Fixes #3160
2023-04-17 10:34:21 +02:00
Wim Taymans
e8c5c1bb97 alsa: hopefully fix compilation on ubuntu CI 2023-04-17 10:05:54 +02:00
Wim Taymans
647c55dba9 filter-chain: improve error reporting
Log en error message when config section is missing or doesn't have
an object.
Log warning when ignoring an unknown key.
2023-04-16 20:35:12 +02:00
Wim Taymans
381be87e37 filter-chain: config is only required for bq_raw
Fixes #3161
2023-04-16 18:38:52 +02:00
Pauli Virtanen
9d7d3599db bluez5: output silence if no data for some ISO sinks
When a sink contributing to an ISO CIG does not have data, output
silence for it, as long as at least one sink in the CIG is running.
Only if writes to sockets fail, pause all streams to reset
synchronization.

This way we write exactly the same number of packets for each CIS at the
same time, which probably is the best tested configuration in BT
adapters and devices. We also don't then have to pause output if some
sinks are not running or miss their timing, as we generate silence on
the fly.

When using iso-io, have it initialize the codec instance, and have
media-sink uses that instance, so that silence and actual audio are
encoded with the same codec.
2023-04-14 22:29:03 +03:00
Pauli Virtanen
2d1b02b5a2 bluez5: wait for all pending transports in CIG before marking active
Mark transports in CIG active only after all acquires are completed, so
that all iso-io are present before sinks are started.
2023-04-14 22:29:01 +03:00
Wim Taymans
bd42e54c21 alsa: also define area_addr when version check missing 2023-04-14 19:59:18 +02:00
Wim Taymans
aa971187d7 alsa: include version.h to get the version macros 2023-04-14 19:49:44 +02:00
Wim Taymans
381283ad81 alsa: handle old alsa version
Out Ubuntu CI seems to have an older alsa version that doesn't have
snd_pcm_channel_area_addr so include it here.
2023-04-14 19:25:51 +02:00
Pauli Virtanen
a8770d501c bluez5: fix glib signal disconnect
Disconnect glib signal in the right way, silencing a glib warning.
2023-04-14 20:06:57 +03:00
Wim Taymans
ea7781d7d0 alsa: fix area pointers
We should use the first and step fields to get to the first byte in the
area.

See #3069
2023-04-14 17:52:26 +02:00
Wim Taymans
916f1cdfbf Revert "alsa-mixer: allow to re-attach the mixer control element"
This reverts commit b554fc20e9.
2023-04-14 16:32:18 +02:00
Wim Taymans
f6d4306a37 doc: mention .conf extension for config files
See #3079
2023-04-14 15:51:21 +02:00
Wim Taymans
f318edb699 metadata: add support for initial metadata
Add a metadata.values property that is used to fill the metadata store
with initial values.

Fixes #3076
2023-04-14 15:07:26 +02:00
Wim Taymans
ccd118368e pw-metadata: add -l option to list available metadata 2023-04-14 15:06:55 +02:00
Wim Taymans
6394eb1b18 metadata: return pw_metadata from factory create
That is what the factory return value says.
2023-04-14 12:50:07 +02:00
Wim Taymans
c968259348 module-rtp: silence some debug 2023-04-14 12:17:43 +02:00
Wim Taymans
a275e825c7 context: improve state calculations
Always make peers of non-passive links runnable, even if we already
visited the peer node. This makes non-passive links between drivers set the
drivers to runnable. (midi-bridge, source to sink). It also makes nodes
collected from the (link-)group runnable when they are linked together.

To calculate the runnable state of the other nodes, only start from
non-driver runnable nodes (like we already did when following links).

This makes a link from echo-cancel-source to echo-cancel-sink activate
the echo-canceler chain instead of staying idle.
2023-04-14 12:01:03 +02:00
Wim Taymans
0962555291 gst: implement renegotiation
If the stream format changes, set the basesrc caps again before pushing
a new buffer.

See #3147
2023-04-14 10:42:01 +02:00
Wim Taymans
b84083a1bb pulse-server: improve echo-cancel aec_args parsing
Actually convert the aec_args argument to something that the
echo-canceler will understand. Add the beamforming and mic-geometry
and target_direction properties.
2023-04-13 17:38:26 +02:00
Wim Taymans
0b83dd61fc aec-webrtc: support beamforming 2023-04-13 15:52:30 +02:00
Wim Taymans
cd8be0ba3b 0.3.69 2023-04-13 10:20:12 +02:00
Wim Taymans
94a1531ec5 thread-loop: remove callbacks in destroy
Make sure the pw_loop doesn't call our callbacks anymore after we are
destroyed.

See #3150
2023-04-12 16:46:39 +02:00
Wim Taymans
a66d5b90f9 Revert "alsa: UCM conflicting devices changes"
If needs some more work

This reverts commit aae770f18b.
This reverts commit 2216956e05.
This reverts commit 1d3c4501ef.
This reverts commit c7ca024607.
This reverts commit 8e4a5f5d5e.
This reverts commit 8b20675ad1.
This reverts commit ebe6f8b51a.
This reverts commit 4b97da1277.
This reverts commit 7c46a656c7.
This reverts commit 96ed03e1fc.
This reverts commit 43770c533c.
This reverts commit ccb2fce054.
This reverts commit 93d0ddc8b3.
This reverts commit 815e8c8fa0.
This reverts commit 97b99a0f7c.
This reverts commit 7e4d87402b.
This reverts commit 168b3ee22c.
This reverts commit 5128cdba31.
This reverts commit 31cde774c5.
This reverts commit b02c8ba153.
This reverts commit 68ac72d098.
This reverts commit 96cfc9bc1a.
This reverts commit e2d642a20b.
This reverts commit 80fc80c343.
This reverts commit 3a68905c7c.
This reverts commit 7e64680a65.
This reverts commit 8d1e38a281.
This reverts commit 591188195c.
This reverts commit 973fe0cb79.
This reverts commit 4d08c9ad60.
This reverts commit 3dce92e580.
This reverts commit 6b5e232c5c.
This reverts commit b1286c62c9.
2023-04-12 13:05:08 +02:00
Robert Mader
5fc782b893 pipewireclock: Disable clock_reset() for now
This was introduced in 4faa28fd96 in order to correctly map the time
from the stream. From d52df30c88 on, however, the clock switched to
monotonic time, which does not need the extra-offset.

Disable `clock_reset()` for now but leave it in place so we can easily
reenable it once we use the stream time again.

This fixes video recording in Cheese and similar apps.

Closes https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3149
2023-04-12 10:13:54 +00:00
Simon Ruderich
85e971dc06 man: pipewire.conf(5): fix rendering of quotes in JSON
Breaking the line causes the first line to be rendered in bold and the
second to be indented.
2023-04-12 10:13:05 +00:00
Simon Ruderich
107fb7c854 man: pw-cli: remove empty examples section 2023-04-12 10:13:05 +00:00
Simon Ruderich
d491adf4dd man: pw-metadata: add examples 2023-04-12 10:13:05 +00:00
Simon Ruderich
17c46a9f68 man: pw-metadata: document --name option 2023-04-12 10:13:05 +00:00
Simon Ruderich
f74f600601 man: pw-metadata: fix display of --delete and remove unnecessary paragraph
With the extra newline the -d/--delete option is not styled as bold in
the resulting man page.
2023-04-12 10:13:05 +00:00
Pauli Virtanen
bb5d01068e bluez5: iso-io: larger idle time
Use larger idle time, so that it's bigger than transport latency, in
case that helps to reset synchronization on controller/device side.
2023-04-12 10:12:00 +00:00
Pauli Virtanen
facef4a6c6 bluez5: lc3: use high-reliability QoS defaults
Use the "high-reliability" values for QoS parameters instead of the
low-latency ones. Under some condition BlueZ does not pass on the
endpoint QoS values to us, in which case we may end up selecting bad
latency.
2023-04-12 10:12:00 +00:00
Pauli Virtanen
645822b30b bluez5: refresh device set leader when current one disconnects 2023-04-12 10:12:00 +00:00
Pauli Virtanen
5b55118e7f bluez5: media-sink: fix reference time vs. resampling delay
Determine correctly if we are resampling, and have the associated delay.

Add off-by-one sample adjustment to the resampling delay, which seems to
correctly align the resampled audio with non-resampled.
2023-04-12 10:12:00 +00:00
Wim Taymans
bd04af6cc9 context: handle non-passive driver links to itself
A non-passive link between the driver and itself should make the driver
active as well.

This makes the midi-bridge running when linking its ports. It also activates
a sink when its monitor ports are connected to its playback ports.

Fixes #3153
2023-04-12 12:05:47 +02:00
Wim Taymans
2a5c23c811 module-echo-cancel: support different channels per stream
Make the channels configurable for capture, source, playback and
sink streams. The playback and sink stream need to have the same number
of channels but the layout can be different.

Use init2 of the echo-cancel plugin when available to pass this info
around. The echo-canceler will then further adjust the settings to make
things work.
2023-04-11 16:55:48 +02:00