Commit graph

9792 commits

Author SHA1 Message Date
Pjotr Vertaalt
9af69d1b30 Translated using Weblate (Dutch)
Currently translated at 97.5% (552 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
simmon
108d9d7a13 Translated using Weblate (Korean)
Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Milo Casagrande
754dbb82ca Translated using Weblate (Italian)
Currently translated at 97.8% (554 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/it/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Karl Ove Hufthammer
40fb98949e Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nn/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Oğuz Ersen
7cc1bb5a26 Translated using Weblate (Turkish)
Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/tr/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Ricky Tigg
d670c2d4dd Translated using Weblate (Finnish)
Currently translated at 90.9% (515 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Piotr Drąg
790eb47fe2 Translated using Weblate (Polish)
Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Yaron Shahrabani
b17700ae5e Translated using Weblate (Hebrew)
Currently translated at 26.0% (147 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/he/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>
2021-06-03 21:02:44 +03:00
Igor V. Kovalenko
411c087095 alsa-mixer: prevent double-free on decibel fixes object key
When decibel fixes object is cloned, there is only a shallow copy of `key`
string member of original object. This may lead to double-free crash reported in
pipewire tracker https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1125

Fix this by doing a deep copy of `key` string to maintain correct ownership.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/569>
2021-06-01 20:34:54 +03:00
Felipe Sateler
3a1affa175 Don't link libpulsecommon with GLib and GTK
This was the behaviour with the autotools build.

Fixes #1210

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/559>
2021-05-31 16:18:08 +00:00
Takashi Sakamoto
4d825dad42 udev: fix match expression to Focusrite Saffire Pro i/o series for ignorance
It seems that in sound context environment variable is not available for
match expression.

This commit utilizes walkthrough to refer to attributes in fw node. The
combination of vendor, model, units is enough to match the node since
the attributes of fw unit doesn't have vendor.

Fix: 37358e42c4 ("alsa: Suppress udev detection of sound card for some units on IEEE 1394 bus")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/566>
2021-05-30 13:22:29 +09:00
Igor V. Kovalenko
e818899e51 alsa-mixer: Add support for usb audio in the Dell dock WD19
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/562>
2021-05-19 21:03:01 +03:00
Sanchayan Maity
94e7cf10f5 bluetooth: aptX: Improve error message for when aptX element is not found
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/561>
2021-05-19 19:25:08 +05:30
Sanchayan Maity
8dbe5f7ad4 bluetooth: ldac: Fix missing check for RTP LDAC payloader element
While at it, improve the error message to include the name of the
element which was not found.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/560>
2021-05-19 18:09:43 +05:30
Igor V. Kovalenko
edae28e9b5 build-sys: meson: make doxygen optional
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/558>
2021-05-19 01:05:42 +03:00
Igor V. Kovalenko
6e04c0a704 build-sys: meson: only require libltdl if daemon is built
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/557>
2021-05-18 19:37:28 +03:00
Arun Raghavan
188f9772c8 build-sys: Fix a couple of meson warnings
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/556>
2021-05-17 16:07:33 -04:00
Arun Raghavan
f8c2f4c1c2 build-sys: Bump libpulse soversion
Lots of changes, particularly related to the messaging API.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/555>
2021-05-17 11:39:57 -04:00
Jason Nader
9a4280988b Apply 3 suggestion(s) to 1 file(s)
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
05d8185552 Apply 1 suggestion(s) to 1 file(s)
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
ee6af0be23 Apply 1 suggestion(s) to 1 file(s)
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
4979fa649c Apply 1 suggestion(s) to 1 file(s)
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Klaas van Schelven
29860175c7 pactl: add get-(source|sink)-mute commands
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
bc8d615c1b pactl: add get_source_volume command
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
258bc97fb1 pactl: add get_default_source command
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
75390822b4 pactl: add get-sink-volume command
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Jason Nader
0e4a92ca69 pactl: add get_default_sink command
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>
2021-05-17 15:35:07 +00:00
Marijn Suijten
d9db47bdb5 bluetooth: Add avrcp_absolute_volume module flag for disablement
Not all peers might work fine with Absolute Volume, provide the user
with an option to disable it without impairing other AVRCP-related
commands like media status and playback controls.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Marijn Suijten
25426bc029 bluetooth: Delay A2DP Absolute Volume setup until property is available
The Volume property on org.bluez.MediaTransport1 is required to utilize
Absolute Volume, but it will only become availabe if the peer device
supports the feature.  This happens asynchronously somewhere after the
transport itself has been acquired, after which the callbacks are
attached and software volume is reset.

To prevent race conditions availability of the property is also checked
on startup through a "Get" call.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Marijn Suijten
c6b771537e bluetooth: Report a2dp_source volume changes to the source device
Write the current volume to the `Volume` DBus property to keep the
volume on the remote in sync.  Without this the remote device shows the
wrong volume, and any attempts to change it will cause an unexpected
jump when the local volume has also been adjusted.

Thanks to prior investments to improve volume synchronization, setting
up callbacks and sending initial volume to the peer for HFP/HSP
implementing this feature is as easy as unconditionally assigning a
valid function to `set_source_volume`.  `source_setup_volume_callback`
is already responsible for attaching a `SOURCE_VOLUME_CHANGED` hook and
sending initial (restored) volume to the peer (signifying support for
Absolute Volume - if not derived from the presence of FEATURE_CATEGORY_2
on the profile yet).

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Marijn Suijten
ac21b07ad6 bluetooth: Synchronize AVRCP Absolute Volume with A2DP sink
Like the previous commit this handles `Volume` property changes but
applies them to an A2DP sink instead of source stream.  As mentioned in
the AVRCP spec v1.6.2 §5.8 the rendering device (A2DP sink) is
responsible for performing volume attenuation meaning PulseAudio should
pass through audio as-is without performing any attenuation in SW.
Setting a valid pointer to `set_sink_volume` and returning `true` from
`should_attenuate_volume` attaches a hardware callback to `pa_sink` such
that no volume attenuation is performed anymore.

In addition to receiving volume change notifications it is also possible
to control remote volume by writing a new value to the DBus property.
This is especially useful when playing back to in-ear audio devices
which usually lack physical buttons to adjust the final volume on the
sink.

While software volume (used before this patch) is generally fine it is
annoying to crank it up all the way to 100% when a previous connection
to a different device left saved volume on the peer at a low volume.
Providing this bidirectional synchronization is most natural to users
who wish to use physical controls on their headphones, are used to this
from their smartphone, or aforementioned volume mismatches where both PA
as source and the peer as sink/rendering device are performing
attenutation.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Marijn Suijten
710a35cdc3 bluetooth: Update source software volume on AVRCP SetAbsoluteVolume
The A2DP spec mandates that the audio rendering device - the device
receiving audio, in our case a `pa_source` - is responsible for
performing attenuation:

AVRCP v1.6.2, §5.8:
    The SetAbsoluteVolume command is used to set an absolute volume to be used by the rendering device.

BlueZ models this call as a change of the `Volume` property on the
`org.bluez.MediaTransport1` interface.  Supporting Absolute Volume is
optional but BlueZ unconditionally reports feature category 2 in its
profile, mandating support.  Hence remote devices (ie. a phone) playing
back audio to a machine running PulseAudio assume volume is to be
changed through SetAbsoluteVolume, without performing any local
attenuation.

Future changes will implement this feature the other way around: setting
an initial value for the `Volume` property as well as propagating
`pa_source` volume changes back to the peer.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Marijn Suijten
c098a75d10 bluetooth: Move HSP_MAX_GAIN to header for reuse in n_volume_steps
Instead of hardcoding the number `16`, use `HSP_MAX_GAIN + 1`.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>
2021-05-17 14:50:03 +00:00
Georg Chini
dbaf450394 null-sink: Request no more than the configured latency from sink-input
In the case, where the latency is larger than the maximum block size,
module-null-sink will request multiples of the maximum block size from
the sink input instead of limiting the requested amount of data to the
the configured latency.

This patch fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/554>
2021-05-17 14:40:15 +00:00
Hui Wang
80efd7a64c Revert "alsa-mixer: Set "Front" control to 0 dB on headphone path"
This reverts commit 96369919e5.

The commit was originally for the issue of Headphone can't output
sound, that was because the Headphone and Lineout share the 1st alsa
mixer and DAC, but this commit introduced a new issue of the speaker
is not muted after switching to headphone.

A recent merged kernel commit (f48652bbe3ae@linux) could fix the 1st
issue, so we could revert the fix of the 1st issue from PA, then the
2nd issue is fixed automatically.

BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/747
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/553>
2021-05-17 14:30:33 +00:00
Jan Alexander Steffens (heftig)
2a07c83cfc build-sys: meson: Add missing include dir
Otherwise building module-echo-cancel fails here:

    FAILED: src/modules/module-echo-cancel.so.p/echo-cancel_adrian-aec.c.o
    cc -Isrc/modules/module-echo-cancel.so.p -I. -I../pulseaudio -Isrc -I../pulseaudio/src -I/usr/include/orc-0.4 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu11 -march=x86-64 -mtune=generic -O2 -p>
    ../pulseaudio/src/modules/echo-cancel/adrian-aec.c:30:10: fatal error: adrian-aec-orc-gen.h: No such file or directory
       30 | #include "adrian-aec-orc-gen.h"
          |          ^~~~~~~~~~~~~~~~~~~~~~

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/552>
2021-05-12 21:10:54 +02:00
Christopher Arndt
2af43a8baf Add port order metadata to JACK sink / source ports
Adds JACK metadata property to ports created by *module-jack-sink*
and *module-jack-source* with key `JACK_METADATA_ORDER`, the port index
(1-based, in order of creation) as value and type
`http://www.w3.org/2001/XMLSchema#int`.

This allows JACK applications, which use JACK metadata, to list or display
these ports in correct order.

See also: https://jackaudio.org/api/group__Metadata.html

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/550>
2021-05-03 12:19:17 +00:00
Patrick Gaskin
39125a0f2b win32: Use DACLs when setting socket permissions
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/548>
2021-05-03 11:43:10 +00:00
Patrick Gaskin
a238a58186 cli-command: Replace config dir with toplevel for .include on win32
This makes the behaviour match pa_{open,find}_config_file by
replacing PA_DEFAULT_CONFIG_DIR with the toplevel.

This fixes the hardcoded paths for {default,system}.pa.d introduced
in 45abd0b43c (!361).

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/545>
2021-05-03 10:58:45 +00:00
Igor V. Kovalenko
4ec89c27c9 bluetooth: adjust sync to source with different sample spec
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/544>
2021-05-03 10:49:32 +00:00
Patrick Gaskin
d21d0d89a5 build-sys: meson: Merge system_conf config data from default_conf
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/547>
2021-04-23 01:52:55 -04:00
Georg Chini
1c1d0c7827 stream-restore: Fix use of uninitialized variable
The variable card_name in sink_input_preferred_sink_changed_cb and
source_output_preferred_source_changed_cb could be used uninitialized,
which leads to invalid database entries.

This patch fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/543>
2021-04-20 12:18:43 +02:00
Igor V. Kovalenko
f760143c22 build-sys: meson: do not install manpages for disabled parts
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/540>
2021-04-19 18:48:59 +00:00
Igor V. Kovalenko
424580a901 build-sys: meson: allow building client libraries only
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/540>
2021-04-19 18:48:59 +00:00
Martin Wilck
1a73fb9eb9 parecord: really fix recording OGG
432a91ed ("fix "Failed to open audio file" for FLAC and OGG)" claimed
to fix recording of OGG files with pacat, but it really fixed only
FLAC. This patch must be added on top to fix OGG, too.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/542>
2021-04-19 18:24:34 +02:00
Georg Chini
468e3669aa loopback: Fix crash bug
The loopback message may be called after the sink input is already destroyed which causes
a crash. Also memory is leaked because the message object is not correctly freed.

This patch fixes the problems by adding a "dead" flag to the message structure and freeing
the message object on exit.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/541>
2021-04-19 15:21:07 +00:00
Igor V. Kovalenko
38905a096c alsa-mixer: Allow selected fallback mappings in all profile sets
When fallback mapping is selected all subsequent profile sets containing
selected mapping are ignored. When there are only e.g. fallback input mappings
available, admitted profile set will only contain one profile with selected
first input fallback mapping and no outputs, and rest of profiles will only
contain outputs and no inputs. When there are only fallback input and output
mappings, there will be no profiles admitted at all.

Fix this by making sure that selected first fallback input or output mapping
is actually allowed to exist in all probed profile sets.

Note while this change allows selected fallback mappings to be found in duplex
configuraitons, probing fallbacks still can fail if there is more than one input
fallback and first one (selected) does not work in duplex configurations.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/539>
2021-04-19 14:48:36 +00:00
Martin Wilck
432a91ed43 parecord: fix "Failed to open audio file" for FLAC and OGG
This patch fixes the following error:

$ pacat --file-format=ogg -r test.ogg
Failed to open audio file.
$ parecord sep.flac
Failed to open audio file.

libsndfile errors out if a WAV or OGG file is set to have anything but
SF_ENDIAN_FILE:

f4d1646e5c

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/526>
2021-04-19 13:35:48 +00:00
Igor V. Kovalenko
fec9eb178d bluetooth: disable HSP HS profile by default
A few headsets have issues if HFP HF profile connection is attempted before
HSP HS profile connection is closed. Looks like this could happen because
bluez bluetoothd alows to make simultaneous HSP HS and HFP HF peer connections.

One of affected headsets is WH-1000XM2

Until we find out how to prevent simultaneous HSP HS and HFP HF connections,
when native backend has HFP HF profile enabled (this is the default) do disable
HSP HS completely unless user explicitly request it via discovery modarg.

Do this by adding module-bluetooth-discover arg enable_native_hsp_hs,
default to inverse of enable_native_hfp_hf.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/538>
2021-04-16 08:33:42 +03:00
Igor V. Kovalenko
e3fa937508 bluetooth: handle HFP codec list in any order
HFP HF peer can send +BAC= list of codecs in any order and pa only expects "1,2"
Fix this by actually parsing codec list elements while looking for "2" (mSBC)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/537>
2021-04-14 21:30:27 +00:00