platform/upstream/pulseaudio.git
3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Sat, 6 Mar 2021 16:41:38 +0000 (16:41 +0000)]
Translated using Weblate (Finnish)

Currently translated at 90.9% (513 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/523>

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Fri, 5 Mar 2021 13:34:59 +0000 (13:34 +0000)]
Translated using Weblate (Finnish)

Currently translated at 87.2% (492 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/523>

3 years agoAdded translation using Weblate (Sinhala)
Hela Basa [Wed, 3 Mar 2021 21:25:57 +0000 (22:25 +0100)]
Added translation using Weblate (Sinhala)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/523>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Mon, 1 Mar 2021 14:24:52 +0000 (14:24 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 25.1% (142 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/523>

3 years agobluetooth: correct rfcomm command and reply formatting
Igor V. Kovalenko [Fri, 5 Mar 2021 11:40:37 +0000 (14:40 +0300)]
bluetooth: correct rfcomm command and reply formatting

The format of COMMAND line sent from HS to AG is COMMAND<cr>
The format of RESPONSE line sent from AG to HS is <cr><lf>RESPONSE<cr><lf>

Split rfcomm_write into rfcomm_write_command and rfcomm_write_response to handle
line formatting correctly.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/520>

3 years agobluetooth: fix typo checking if target codec is available
Igor V. Kovalenko [Tue, 2 Mar 2021 19:47:20 +0000 (22:47 +0300)]
bluetooth: fix typo checking if target codec is available

A2DP switch-codec command implementation must check if target codec is good,
not the one we want to switch from.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/518>

3 years agobuildsys/autotools: add pulseaudio-x11.service.in
Faidon Liambotis [Mon, 1 Mar 2021 01:43:14 +0000 (03:43 +0200)]
buildsys/autotools: add pulseaudio-x11.service.in

Commit 4868fcf5f344af613172f61d9105c02f3f07e1ab ("daemon: Rely on
systemd unit file for X11 plugin initialization") added a new systemd
unit file, pulseaudio-x11.service, generated from a respective .in file.

Unfortunately, this was only hooked up to meson, and is not currently
installed by autotools. Among other breakage, "make dist" produces a
tarball that meson is then unable to build (because a file is missing).

Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/514>

3 years agotests: fix use of uninitialized variable cpu_info
Faidon Liambotis [Fri, 26 Feb 2021 01:23:52 +0000 (03:23 +0200)]
tests: fix use of uninitialized variable cpu_info

On cpu-volume-test, cpu_info is initialized only on i386/amd64 systems,
and otherwise passed on to pa_cpu_init_orc() uninitialized.

If one was unlucky enough, they could end up with cpu_info.cpu_type ==
PA_CPU_X86 on a non-x86 system, and use and test the Orc codepath
without that being functional, and thus with the test failing.

This has been observed in the wild on the ppc64el Debian buildds. See
Debian bug #982740 for more context.

Define cpu_info here in the same way as in other tests.

Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/511>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Tue, 16 Feb 2021 19:35:11 +0000 (19:35 +0000)]
Translated using Weblate (Finnish)

Currently translated at 86.7% (489 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Sun, 14 Feb 2021 18:30:02 +0000 (18:30 +0000)]
Translated using Weblate (Finnish)

Currently translated at 78.9% (445 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Wed, 10 Feb 2021 19:43:08 +0000 (19:43 +0000)]
Translated using Weblate (Swedish)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sv/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Thu, 11 Feb 2021 13:44:41 +0000 (13:44 +0000)]
Translated using Weblate (Finnish)

Currently translated at 78.1% (441 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Mon, 8 Feb 2021 17:00:09 +0000 (17:00 +0000)]
Translated using Weblate (Swedish)

Currently translated at 95.9% (541 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sv/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Fri, 5 Feb 2021 20:44:05 +0000 (20:44 +0000)]
Translated using Weblate (Swedish)

Currently translated at 94.1% (531 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sv/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Norwegian Nynorsk)
Karl Ove Hufthammer [Sat, 6 Feb 2021 14:52:58 +0000 (14:52 +0000)]
Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nn/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Esperanto)
Carmen Bianca Bakker [Thu, 4 Feb 2021 00:41:27 +0000 (00:41 +0000)]
Translated using Weblate (Esperanto)

Currently translated at 23.5% (133 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/eo/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoAdded translation using Weblate (Esperanto)
Carmen Bianca Bakker [Thu, 4 Feb 2021 00:05:18 +0000 (01:05 +0100)]
Added translation using Weblate (Esperanto)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Sat, 30 Jan 2021 22:49:26 +0000 (22:49 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 22.1% (125 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/515>

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:56:02 +0000 (12:56 +0000)]
Translated using Weblate (Polish)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:53:51 +0000 (12:53 +0000)]
Translated using Weblate (Polish)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:36:40 +0000 (12:36 +0000)]
Translated using Weblate (Polish)

Currently translated at 95.3% (538 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Wed, 27 Jan 2021 19:19:47 +0000 (19:19 +0000)]
Translated using Weblate (Finnish)

Currently translated at 73.2% (413 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Ukrainian)
Yuri Chornoivan [Mon, 25 Jan 2021 20:02:46 +0000 (20:02 +0000)]
Translated using Weblate (Ukrainian)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/uk/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agoTranslated using Weblate (Turkish)
Oğuz Ersen [Mon, 25 Jan 2021 21:52:15 +0000 (21:52 +0000)]
Translated using Weblate (Turkish)

Currently translated at 100.0% (564 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/tr/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/515>

3 years agotreewide: fix a bunch of typos
Felipe Sateler [Fri, 26 Feb 2021 22:58:41 +0000 (19:58 -0300)]
treewide: fix a bunch of typos

Detected by lintian, the debian package linter

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/512>

3 years agoalsa-mixer: increase the max number of HDMI/DP output device to 11
Hui Wang [Tue, 2 Feb 2021 02:07:36 +0000 (10:07 +0800)]
alsa-mixer: increase the max number of HDMI/DP output device to 11

Intel TGL HDMI/DP codec provides 9 pins (Linux kernel, 9a11ba7388f16:
ALSA: hda: hdmi - add Tigerlake support), and with the DP MST enabled,
the linux kernel will build 11 output devices (3, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16), and the alsa-lib will map 11 PCM devices from HDMI:0
to HDMI:10, but current pulseaudio only supports 8 HDMI/DP devices,
if users plug the HDMI/DP monitor to the last 3 ports, the users will
not see the output device from pulseaudio or gnome.

We have experienced this issue on a dell TGL machine with a dock, we
plugged 2 HDMP/DP monitors on the dock, but we could only see 1
HDMI/DP output device from pulseaudio or gnome, through investigation,
we found one monitor is plugged in the 2nd port from last.

Here we add 3 HDMI/DP output devices.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/495>

3 years agobluetooth: clean up rfcomm_write usage
Igor V. Kovalenko [Thu, 18 Feb 2021 18:08:21 +0000 (21:08 +0300)]
bluetooth: clean up rfcomm_write usage

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: rename enable_hs_role to enable_shared_profiles
Igor V. Kovalenko [Tue, 16 Feb 2021 05:46:19 +0000 (08:46 +0300)]
bluetooth: rename enable_hs_role to enable_shared_profiles

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: use device flag to prevent assertion failure during shutdown
Igor V. Kovalenko [Mon, 1 Feb 2021 17:51:18 +0000 (20:51 +0300)]
bluetooth: use device flag to prevent assertion failure during shutdown

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: complete bluetooth profile separation
Igor V. Kovalenko [Fri, 29 Jan 2021 18:32:09 +0000 (21:32 +0300)]
bluetooth: complete bluetooth profile separation

This is a follow-up change to review of these series on pulseaudio-discuss
https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-September/028801.html

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: prefer headset HFP HF connection with native backend
Igor V. Kovalenko [Fri, 29 Jan 2021 06:28:36 +0000 (09:28 +0300)]
bluetooth: prefer headset HFP HF connection with native backend

When HFP HF support is enabled in native backend, peer HFP HF profile connection
is preferred over same peer HSP HS profile connection if peer supports both
profiles.

Enforce the preference by rejecting HSP HS profile connections from such peer.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: fix headset=auto ofono handover
Igor V. Kovalenko [Thu, 28 Jan 2021 06:08:53 +0000 (09:08 +0300)]
bluetooth: fix headset=auto ofono handover

Native backend implements HFP AG but not HFP HF yet, therefore headset=auto
functionality is still needed if HFP HF is required.

To make headset=auto work again, drop both HFP AG and HSP AG roles while
performing handover from native backend when oFono is detected running.

While at it, restore profile description to Headset Head Unit (HSP/HFP)
to note that HFP may be still provided via oFono backend.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: enable module-bluez5-discover argument enable_native_hfp_hf
Igor V. Kovalenko [Thu, 28 Jan 2021 12:37:36 +0000 (15:37 +0300)]
bluetooth: enable module-bluez5-discover argument enable_native_hfp_hf

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: make native the default backend
James Bottomley [Thu, 21 Sep 2017 18:49:45 +0000 (11:49 -0700)]
bluetooth: make native the default backend

Change default backend from 'auto' to 'native' so that in the usual
install pulseaudio uses the native backend with HFP_HF handling.

set default to false unless the backend is the native one, in which
case the default becomes true.

Additionally set default value of enable_native_hfp_hf to false unless
the backend is the native one, in which case the default becomes
true. so that we only bind the HFP_HF end point in the native case
(leaving it free for ofono in the ofono backend or auto case)

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: add correct HFP rfcomm negotiation
James Bottomley [Sat, 20 Aug 2016 17:56:14 +0000 (10:56 -0700)]
bluetooth: add correct HFP rfcomm negotiation

HFP 1.6 requires a stateful negotiation of AT commands.  The prior
version got away with initialising HFP simply by replying 'OK' to
every negotiation attempt.  This one actually tries to parse the state
and make sure the negotiation occurs correctly

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
---

v4:

- Update for PA 11.0
- Finally sort out CIND negotiaton for complex headsets

v3:

- remove internal debugging
- added comment for t->config being not null for hfp
- removed unused returns from hfp_rfcomm_handle()
- remove rfcomm comment
- use pa_startswith
- simplify negotiation

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: separate HSP and HFP
James Bottomley [Thu, 18 Aug 2016 15:48:48 +0000 (08:48 -0700)]
bluetooth: separate HSP and HFP

When all headsets supported both HSP and HFP, life was good and we
only needed to implement HSP in the native backend.  Unfortunately
some headsets have started supporting HFP only.  Unfortuantely, we
can't simply switch to HFP only because that might break older HSP
only headsets meaning we need to support both HSP and HFP separately.

This patch separates them from a joint profile to being two separate
ones.  The older one retains the headset_head_unit name, meaning any
saved parameters will still select this (keeping us backward
compatible).  It also introduces a new headset_handsfree.

For headsets that support both HSP and HFP, the two profiles will
become separately visible and selectable.  This will only matter once
we start adding features to HFP that HSP can't support (like wideband
audio).

Signed-off-by: <James.Bottomley@HansenPartnership.com>
---
v6:

- merge profile switching fixes patch from Rodrigo Araujo

v5:

- rename option to enable_native_hfp_hf
- don't call profile_done for HFP_HF unless it was initialised

v3:

- Update for PA 11.0

v2:

- fold in review feedback
- add global disable option for not registering HFP

v3:

- change parameter to enable_profile_hfp
- update device_supports_profile to be aware of hfp/hsp exclusivity
- change parameter to enable_profile_hfp_hf

bluetooth: separate HSP and HFP (to me merged with this patch)

Hi.

First, just to say that your patches are going great. Finally I can use
the microphone of my HFP only headset (a version of a Bluedio T2+).

So far, I've only encontered one problem: the auto_switch option of
module_bluetooth_policy stops working. Dug through the code and I think
you missed a few spots were you have to hangle the new headset_handsfree
profile in module_bluetooth_policy.c

Applying the following after applying your v5 patches fixed the issue
for me, now when I start making a VOIP call the profile switches to
headset_handsfree and the mic works automatically, and when the call
finishes it reverts back to a2dp.

Thanks and best regards.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agobluetooth: use consistent profile names
James Bottomley [Sat, 20 Aug 2016 17:39:30 +0000 (10:39 -0700)]
bluetooth: use consistent profile names

The PA_BLUETOOTH_PROFILE names should mirror the PA_BLUETOOTH_UUID
names using profile_function instead of randomly made up names.  Fix
this with the transformation:

PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT -> PA_BLUETOOTH_PROFILE_HSP_HS
PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY -> PA_BLUETOOTH_PROFILE_HFP_AG

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
---

v4: update for PA 11.0

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>

3 years agosystemd: move to session slice
Henri Chain [Wed, 17 Feb 2021 11:35:56 +0000 (12:35 +0100)]
systemd: move to session slice

As per https://systemd.io/DESKTOP_ENVIRONMENTS/
(the default is app.slice which is not appropriate for pulseaudio)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/506>

3 years agosource-output: Fix source-output volume after move of virtual source stream
Georg Chini [Wed, 17 Feb 2021 20:36:07 +0000 (21:36 +0100)]
source-output: Fix source-output volume after move of virtual source stream

When the source-output of a virtual source with volume sharing disabled is moved,
the source output volume is reset to 100%. This patch fixes the problem by
applying the virtual source volume to the source-output after the move.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/509>

3 years agobluetooth: remove unwanted change from bluez fallback code
Igor V. Kovalenko [Mon, 15 Feb 2021 06:03:13 +0000 (09:03 +0300)]
bluetooth: remove unwanted change from bluez fallback code

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/504>

3 years agofix handling of symbolic port names in zsh completion
pseyfert [Tue, 9 Feb 2021 23:17:13 +0000 (23:17 +0000)]
fix handling of symbolic port names in zsh completion

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/500>

3 years agobuild-sys: meson: support elogind alternative for module-systemd-login
Igor V. Kovalenko [Thu, 11 Feb 2021 05:56:22 +0000 (08:56 +0300)]
build-sys: meson: support elogind alternative for module-systemd-login

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/502>

3 years agobuild-sys: meson: add tcp-wrappers
Igor V. Kovalenko [Tue, 9 Feb 2021 06:18:18 +0000 (09:18 +0300)]
build-sys: meson: add tcp-wrappers

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/498>

3 years agobuild-sys: drop gconf support
Igor V. Kovalenko [Tue, 9 Feb 2021 07:15:50 +0000 (10:15 +0300)]
build-sys: drop gconf support

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/499>

3 years agozsh-completion Add completion of sample names
Paul Seyfert [Wed, 10 Feb 2021 18:37:07 +0000 (19:37 +0100)]
zsh-completion Add completion of sample names

This closes #201.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/501>

3 years agobluetooth/gst: Unify encoder and decoder pipeline setup
Marijn Suijten [Sat, 23 Jan 2021 19:39:15 +0000 (20:39 +0100)]
bluetooth/gst: Unify encoder and decoder pipeline setup

The encoding and decoding pipeline are essentially identical: both push
data in via an appsrc, route it through a codec-specific (opaque)
element, and finally pull data out of an appsink. The code already makes
it impossible to have an encoding and decoding pipeline simultaneously
set up in `gst_info`, and converting `bool for_encoding` to a tri-state
(encode, decode, or both) would be messy; particularly when encoding and
decoding could possibly differ in format.

This change removes a swath of code and removes the possibility of
misusing `enc_` or `dec_` in the wrong place (ie. after copying a bit of
code and forgetting to rename one or two). When bidirectional codecs
come online a second codec instance (`gst_info`) can simply be created
and controlled independently.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/487>

3 years agobluetooth/aptx: Call the non-HD encode_buffer function
Marijn Suijten [Sat, 23 Jan 2021 19:47:29 +0000 (20:47 +0100)]
bluetooth/aptx: Call the non-HD encode_buffer function

For consistency with its decode_buffer counterpart.

For the time being the base function only performs an extra check and
logs an error when no data has been written into the GStreamer encoding
pipeline.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/487>

3 years agobluetooth/aptx: Simplify lifetime of `caps`
Marijn Suijten [Sat, 23 Jan 2021 19:20:45 +0000 (20:20 +0100)]
bluetooth/aptx: Simplify lifetime of `caps`

Fixes: 73c80ffba ("bluetooth/aptx: Deduplicate caps setup for encoding and decoding")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/487>

3 years agobluetooth: support increasing bitrate for SBC XQ
Igor V. Kovalenko [Tue, 19 Jan 2021 16:24:23 +0000 (19:24 +0300)]
bluetooth: support increasing bitrate for SBC XQ

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/476>

3 years agobluetooth: a2dp dual channel SBC XQ codec configurations
Igor V. Kovalenko [Tue, 19 Jan 2021 15:52:55 +0000 (18:52 +0300)]
bluetooth: a2dp dual channel SBC XQ codec configurations

Desired SBC bitpool value is calculated from target bitrate limit.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/476>

3 years agobluetooth: Remove unused ts_elapsed variable
Marijn Suijten [Thu, 21 Jan 2021 21:05:51 +0000 (22:05 +0100)]
bluetooth: Remove unused ts_elapsed variable

Fixes: 969951121 ("bluetooth: allow increasing output bitrate")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agotests: Update ladspa-dbus to Python 3
Marijn Suijten [Tue, 19 Jan 2021 19:33:11 +0000 (20:33 +0100)]
tests: Update ladspa-dbus to Python 3

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agotreewide: Use DBus defines instead of direct string literals
Marijn Suijten [Thu, 7 Jan 2021 23:36:06 +0000 (00:36 +0100)]
treewide: Use DBus defines instead of direct string literals

While cleaning up the BlueZ counterpart of strings defined in
preprocessor macros it is only consistent to take care of all DBUS_
macros as a whole.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agobluetooth: Consistently use BlueZ defines for strings
Marijn Suijten [Tue, 19 Jan 2021 19:27:35 +0000 (20:27 +0100)]
bluetooth: Consistently use BlueZ defines for strings

These errors and interface names shoudld all reuse predefined constants.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agobluetooth: Unify BlueZ macro defines shared between util and native
Marijn Suijten [Thu, 7 Jan 2021 23:45:24 +0000 (00:45 +0100)]
bluetooth: Unify BlueZ macro defines shared between util and native

Define all BLUEZ_ macros once in the shared header, instead of twice in
both backend-native.c and bluez5-util.h.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agobluetooth: improve indentation around dbus_message_iter_open_container
Marijn Suijten [Thu, 7 Jan 2021 23:48:55 +0000 (00:48 +0100)]
bluetooth: improve indentation around dbus_message_iter_open_container

Consistently use newlines and the same indentation style for all calls
to dbus_message_iter_open_container in Bluetooth code.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agonull-source: Change max_rewind when the latency changes
Georg Chini [Sun, 31 Jan 2021 19:13:16 +0000 (20:13 +0100)]
null-source: Change max_rewind when the latency changes

The null-source did not change max_rewind when changing the latency. This
patch fixes the issue.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/493>

3 years agosink: Unlink monitor source before unlinking sink
Georg Chini [Sun, 31 Jan 2021 19:08:11 +0000 (20:08 +0100)]
sink: Unlink monitor source before unlinking sink

Unlinking the monitor source after unlinking the sink leads to a crash when the monitor
source is master of a virtual source. Changing the unlink order fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/493>

3 years agoalsa: fix the plug: PCM device name creation
Jaroslav Kysela [Thu, 28 Jan 2021 07:48:03 +0000 (08:48 +0100)]
alsa: fix the plug: PCM device name creation

The plug: ALSA PCM device name can pass any device name
even with argument, but the syntax is:

plug:SLAVE='<pcm_device_name>'

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/75#issuecomment-768555182
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/492>

3 years agobluetooth: pass output_rate_refresh_interval_ms module parameter
Igor V. Kovalenko [Tue, 26 Jan 2021 06:10:02 +0000 (09:10 +0300)]
bluetooth: pass output_rate_refresh_interval_ms module parameter

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/488>

3 years agobluetooth: ldac: Use format as FLOAT32LE
Sanchayan Maity [Fri, 22 Jan 2021 10:56:52 +0000 (16:26 +0530)]
bluetooth: ldac: Use format as FLOAT32LE

LDAC encoder already supports S16, S24, S32 and F32LE. Using FLOAT32LE
for the sample format would avoid the additional call for conversion to
pa_sconv_s32le_from_float32ne. perf tool shows this as being the function
called frequently after encode. So, just avoid this by using sample format
as F32LE.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/486>

3 years agobluetooth/gst: Move common enc/dec initialization back to generic init
Marijn Suijten [Fri, 22 Jan 2021 09:55:02 +0000 (10:55 +0100)]
bluetooth/gst: Move common enc/dec initialization back to generic init

Now that codec-specific code only touches its own bin and not any
elements (appsink/src) outside of it, make things official by
initializng them later in gst_codec_init where they are actually needed.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/484>

3 years agobluetooth/aptx: Use capsfilter instead of appsink/appsrc "caps" prop
Marijn Suijten [Thu, 21 Jan 2021 23:01:20 +0000 (00:01 +0100)]
bluetooth/aptx: Use capsfilter instead of appsink/appsrc "caps" prop

Make the codec-specific initializer more generic by not touching any
elements outside of its own GstBin.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/484>

3 years agobluetooth/aptx: Deduplicate caps setup for encoding and decoding
Marijn Suijten [Thu, 21 Jan 2021 22:59:57 +0000 (23:59 +0100)]
bluetooth/aptx: Deduplicate caps setup for encoding and decoding

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/484>

3 years agobluetooth/gst: Determine PA input/output caps in generic code
Marijn Suijten [Thu, 21 Jan 2021 08:43:16 +0000 (09:43 +0100)]
bluetooth/gst: Determine PA input/output caps in generic code

Make the code ever so slightly more generic by not using appsrc and
appsink in codec-specific logic when assigning caps specific to the raw
(PCM) format provided by or returned to PA.

Note that caps have to be set (= event) after starting, can't send
events in flushing state.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/484>

3 years agobluetooth/gst: Add assertions around element_add_pad and bin_add
Marijn Suijten [Thu, 21 Jan 2021 11:04:23 +0000 (12:04 +0100)]
bluetooth/gst: Add assertions around element_add_pad and bin_add

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/484>

3 years agoi18n: Update .pot and .po files
Tanu Kaskinen [Fri, 22 Jan 2021 07:12:32 +0000 (09:12 +0200)]
i18n: Update .pot and .po files

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/485>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Mon, 18 Jan 2021 13:35:59 +0000 (13:35 +0000)]
Translated using Weblate (Finnish)

Currently translated at 95.1% (472 of 496 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/485>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Mon, 11 Jan 2021 16:29:44 +0000 (16:29 +0000)]
Translated using Weblate (Finnish)

Currently translated at 94.9% (471 of 496 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/485>

3 years agobluetooth: allow increasing SBC output bitrate
Igor V. Kovalenko [Wed, 13 Jan 2021 16:19:52 +0000 (19:19 +0300)]
bluetooth: allow increasing SBC output bitrate

SBC codec decrements bitpool value by fixed amount each time it is asked to
reduce output bitrate. This results in reduced audio quality with SBC codec.

Implement increase_encoder_bitrate for SBC codec by adding 1 to bitpool value
each time encoder bitrate needs to be increased to restore SBC audio quality.
While at it, remove bitpool decrement limit to use connection agreed value
instead as we will be able to restore quality later.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/474>

3 years agobluetooth: allow increasing output bitrate
Igor V. Kovalenko [Wed, 20 Jan 2021 09:51:14 +0000 (12:51 +0300)]
bluetooth: allow increasing output bitrate

Bluetooth thread may ask encoder to reduce bitrate if writing is not keeping up
with inputs or writing to bluetooth socket takes too much time.

Assuming conditions leading to reduced bitrate are intermittent, allow periodic
attempts to increase encoder bitrate, by default at most twice per second.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/481>

3 years agobluetooth: Add missing can_be_supported check to is_codec_available
Marijn Suijten [Tue, 19 Jan 2021 23:07:48 +0000 (00:07 +0100)]
bluetooth: Add missing can_be_supported check to is_codec_available

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/479>

3 years agobluetooth: Check support for encoding and decoding separately
Marijn Suijten [Tue, 19 Jan 2021 22:20:07 +0000 (23:20 +0100)]
bluetooth: Check support for encoding and decoding separately

As suggested in [1]:

This way it is possible for a codec to have both the encoding and
decoding part optional, instead of getting both or nothing (where PA
theoretically supports both).

In addition this cleans up code that was previously checking the
existence of a function pointer, or nothing at all (switch_codec).

[1]: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440#note_768146

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/479>

3 years agobluetooth: Fix unregistering of the message handler
Sanchayan Maity [Thu, 21 Jan 2021 13:11:25 +0000 (18:41 +0530)]
bluetooth: Fix unregistering of the message handler

In cases, where codec initialisation may fail, we still try
unregistering the message handler. Do not try unregistering
the handler if it was not registered in the first place.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/483>

3 years agogitignore: Add install/ for local prefixed installs
Arun Raghavan [Tue, 20 Oct 2020 20:22:46 +0000 (16:22 -0400)]
gitignore: Add install/ for local prefixed installs

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/475>

3 years agobluetooth/bluez5-util: Do not reply to ClearConfiguration
Marijn Suijten [Wed, 13 Jan 2021 13:23:54 +0000 (14:23 +0100)]
bluetooth/bluez5-util: Do not reply to ClearConfiguration

Similar to the situation/comment in `endpoint_release` BlueZ does not
request any reply to `ClearConfiguration()` either; sending one results
in the same "0 matched rules" warning from dbus-daemon:

    dbus-daemon[1309]: [system] Rejected send message, 0 matched rules; type="method_return", sender=":1.71" (uid=1000 pid=87548 comm="../build/src/daemon/pulseaudio -vvvv -n -F ../buil") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.3" (uid=0 pid=1308 comm="/usr/lib/bluetooth/bluetoothd -d ")

Solve this by only creating a return message when an (othwise empty)
reply is solicited for, just like in `endpoint_release`.

Unfortunately we also have to make sure to not send any error back if no
reply is requested, but fortunately an argument parsing error here is
extremely unlikely.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/472>

3 years agobluetooth: Move codec specific bits to their own respective files
Sanchayan Maity [Tue, 5 Jan 2021 10:27:06 +0000 (15:57 +0530)]
bluetooth: Move codec specific bits to their own respective files

We move the codec specific bits to their own respective files and now
make the codec specific initialisation use a GstBin, which the generic
GStreamer module now uses in the pipeline.

It is job of the codec specific function to add elements in the GstBin
and link the added elements in the bin. It should also set up the ghost
pads as a GstBin has no pads of it's own and without which the bin
cannot be linked to the appsrc/appsink.

Also, we now only initialise either the encoding or the decoding
pipeline and not both. The codec init API already gets passed the
for_encoding flag. We pass and use the same to codec specific init
functions.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Register an endpoint according to encode or decode support
Sanchayan Maity [Thu, 7 Jan 2021 12:22:22 +0000 (17:52 +0530)]
bluetooth: Register an endpoint according to encode or decode support

As we now support codecs other than SBC, we might have codec which does
not have an encode or a decode capability. Specifically, in the case of
LDAC there isn't a known decoder implementation available. For such a
case, we should not register the corresponding endpoint.

In case of LDAC, as decoding cannot be supported, we should not register
a sink endpoint or vice versa in the other scenario.

To do this, we check if encode_buffer or decode_buffer entry for a codec
has been set in pa_a2dp_codec and accordingly prevent or allow it's
registration.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Make GStreamer threads realtime
Igor V. Kovalenko [Mon, 4 Jan 2021 16:40:08 +0000 (19:40 +0300)]
bluetooth: Make GStreamer threads realtime

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Prevent registration of an unavailable codec at runtime
Sanchayan Maity [Fri, 1 Jan 2021 14:08:48 +0000 (19:38 +0530)]
bluetooth: Prevent registration of an unavailable codec at runtime

When it comes to codecs provided via GStreamer, we register all codecs
if GStreamer option is enabled for bluez5 via meson. However, the
GStreamer plugin required for the codec might not be present on the
system. This results in the codec being available for registration with
the bluez stack or selection by the user, but, trying to use the said
codec then fails.

To prevent the above, we now use the can_be_supported codec API to check
if the codec is usable and if not, we do not register the said codec and
also prevent users from switching to it.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Introduce a can_be_supported API for A2DP codecs
Sanchayan Maity [Fri, 1 Jan 2021 14:02:37 +0000 (19:32 +0530)]
bluetooth: Introduce a can_be_supported API for A2DP codecs

This API internally checks if a requested codec can be supported on the
system. This is especially required for codecs supported via GStreamer
where the availability of a plugin decides if the said codec can be
supported.

This will be used to prevent registration of a codec which the remote
endpoint device might be able to support, but, PulseAudio can't as the
codec is not available on the system due to the absence of a plugin.
We can also prevent listing or switching to an unavailable codec.

Note that the codec negotiation happens with the bluez stack even before
a device is connected. Because of this, we need to make sure that gst_init
is called before checking for the availability of a plugin. Since
module-bluez5-device gets loaded only after a connection to the device
has been established, doing the gst_init in that or one of the bluetooth
modules is not feasible.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add support for getting current active codec
Sanchayan Maity [Fri, 1 Jan 2021 06:18:11 +0000 (11:48 +0530)]
bluetooth: Add support for getting current active codec

For example, using the following on the command line will return the
current codec for a bluetooth device

pacmd send-message /card/bluez_card.4C_BC_98_80_01_9B/bluez get-codec

where 4C_BC_98_80_01_9B is the bluetooth device.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add currently active codec name to card/sink/source proplist
Sanchayan Maity [Thu, 31 Dec 2020 08:29:40 +0000 (13:59 +0530)]
bluetooth: Add currently active codec name to card/sink/source proplist

This exposes the currently active codec on the source or sink via the
proplist and can be seen in output of pacmd list-sinks/list-sources.
Also set it on the card. In case of a bi-directional codec, the codec
for the sink and source could be different. For example, for aptX-LL,
the codec name on card, sink and source would be aptx-ll, aptx and sbc
respectively.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add support for getting list of negotiated codecs
Sanchayan Maity [Wed, 23 Dec 2020 18:03:48 +0000 (21:03 +0300)]
bluetooth: Add support for getting list of negotiated codecs

For example, using the following on the command line will return the
list of possible codecs for a bluetooth device

pacmd send-message /card/bluez_card.4C_BC_98_80_01_9B/bluez list-codecs

where 4C_BC_98_80_01_9B is the bluetooth device.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add aptX support via GStreamer
Sanchayan Maity [Mon, 21 Dec 2020 07:07:31 +0000 (12:37 +0530)]
bluetooth: Add aptX support via GStreamer

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add LDAC support via GStreamer
Sanchayan Maity [Mon, 21 Dec 2020 06:58:23 +0000 (12:28 +0530)]
bluetooth: Add LDAC support via GStreamer

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Add a generic GStreamer codec module
Sanchayan Maity [Tue, 27 Oct 2020 11:28:21 +0000 (16:58 +0530)]
bluetooth: Add a generic GStreamer codec module

This adds a generic gstreamer codec module based on which other
bluetooth codecs viz. aptX, aptX-HD, LDAC and AAC can be supported.

The GStreamer codec plugins used here themselves depend on the native
codec implementation.

aptX/aptX-HD -> libopenaptx
LDAC         -> libldac
AAC          -> Fraunhofer FDK AAC

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: Support A2DP codec switching via messaging API
Sanchayan Maity [Fri, 18 Dec 2020 11:35:44 +0000 (17:05 +0530)]
bluetooth: Support A2DP codec switching via messaging API

This uses the messaging API to initiate a codec switch.

While a particular codec might be applicable only for a particular
profile, for eg. aptX can only be applicable for A2DP sink or source
and not for let's say HSP, the codec switching logic has not been
tied to the logic for switching profiles.

Codec can be switched by running the following on the command line.

pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec{"ldac_hq"}
pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec {"ldac_mq"}
pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec {"ldac_sq"}
pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec {"aptx_hd"}
pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec {"aptx"}
pacmd send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec {"sbc"}

Codec name passed above is matched against pa_a2dp_codec->name. Note that
the match is case sensitive. XX_XX_XX_XX_XX_XX needs to be substituted with
the actual bluetooth device id.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluez5-util: Add support for using RegisterApplication D-Bus API
Sanchayan Maity [Tue, 15 Dec 2020 11:21:11 +0000 (16:51 +0530)]
bluez5-util: Add support for using RegisterApplication D-Bus API

A2DP codec switching needs new version of bluez as older version does not
provide needed org.freedesktop.DBus.ObjectManager and RegisterApplication
DBus APIs. As a preparation for the next step of adding codecs and then
codec switching, add support for using the new API.

Getting list of supported codecs by remote device is supported only by new
version of bluez daemon. If the RegisterApplication API fails, we
fallback to the older RegisterEndpoint API and only register the SBC
codec.

For more information, see
https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/media-api.txt

This changeset has been taken from Pali Rohár's A2DP codec patch
series but separated out to only include the D-Bus specific changes.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agobluetooth: a2dp-codec-util: Use lower index for higher priority
Sanchayan Maity [Tue, 15 Dec 2020 11:14:24 +0000 (16:44 +0530)]
bluetooth: a2dp-codec-util: Use lower index for higher priority

Instead of letting a codec with higher index have higher priority,
just use a lower index for high priority. This allows the for loop
iterating over the codecs to be written in a straightforward manner
and not have to iterate from the end. FWIW Pipewire does the same.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/440>

3 years agomap-file: regenerate
Igor V. Kovalenko [Mon, 18 Jan 2021 16:32:52 +0000 (19:32 +0300)]
map-file: regenerate

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/461>

3 years agobuildsys: meson: implement update-map-file target
Igor V. Kovalenko [Sat, 9 Jan 2021 14:57:23 +0000 (17:57 +0300)]
buildsys: meson: implement update-map-file target

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/461>

3 years agobuildsys: autotools: move map-file to src/pulse
Igor V. Kovalenko [Mon, 18 Jan 2021 15:38:19 +0000 (18:38 +0300)]
buildsys: autotools: move map-file to src/pulse

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/461>

3 years agoswitch-on-port-available: checking the off profile when switching profile
Hui Wang [Thu, 20 Aug 2020 08:21:08 +0000 (16:21 +0800)]
switch-on-port-available: checking the off profile when switching profile

If the current active profile is off, it has no sinks and sources, and
if users plug a headset to the audio port, the profile including this
audio port becomes available and should be selected as active profile.

But with the current design, the profile_good_for_output() will return
false because the sources in off profile and target profile doesn't
match.

For example:
(Before users plug headset)
Profiles:
         HiFi (Speaker): Default (sinks: 1, sources: 1, priority: 8100, available: no)
         HiFi (Headphones): Default (sinks: 1, sources: 1, priority: 8200, available: no)
         off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: off

(After users plug headset)
Profiles:
         HiFi (Speaker): Default (sinks: 1, sources: 1, priority: 8100, available: yes)
         HiFi (Headphones): Default (sinks: 1, sources: 1, priority: 8200, available: yes)
         off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: off

Signed-off-by: Hui Wang <hui.wang@canonical.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/354>

3 years agobuild-sys: meson: only warn about lack of udev on Linux
Greg V [Wed, 6 Jan 2021 11:43:14 +0000 (14:43 +0300)]
build-sys: meson: only warn about lack of udev on Linux

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>

3 years agoatomic-test: unbreak on FreeBSD (cpuset_t)
Greg V [Sun, 29 Nov 2020 18:31:27 +0000 (21:31 +0300)]
atomic-test: unbreak on FreeBSD (cpuset_t)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>

3 years agomodule-devd-detect: new module for soundcard hotplug on FreeBSD
Greg V [Fri, 3 Apr 2020 12:37:24 +0000 (15:37 +0300)]
module-devd-detect: new module for soundcard hotplug on FreeBSD

Used in addition to module-detect, since devd only provides hotplug events.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>

3 years agooss: parse device names correctly on FreeBSD
Greg V [Fri, 3 Apr 2020 11:23:34 +0000 (14:23 +0300)]
oss: parse device names correctly on FreeBSD

This fixes devices being named just "/dev/dspN" instead of actual
soundcard names.

Also synchronizes some things like the unsigned type with the
detect module.

Loosely based on patch by lightside <lightside@gmx.com>.

ref: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245156

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>

3 years agooss: support hot-unplug on FreeBSD
Greg V [Thu, 2 Apr 2020 16:18:29 +0000 (19:18 +0300)]
oss: support hot-unplug on FreeBSD

Patch by Hans Petter Selasky <hselasky@FreeBSD.org>

ref: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194727#c27

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>

3 years agooss: support 24-bit sample formats
Greg V [Thu, 2 Apr 2020 16:15:29 +0000 (19:15 +0300)]
oss: support 24-bit sample formats

This works perfectly fine and is required for bitperfect mode on
some soundcards, according to Romain Tartière <romain@FreeBSD.org>

ref: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198567#c6

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277>