platform/upstream/pulseaudio.git
4 years agosource: move the streams to the default_source when the source unlink
Hui Wang [Tue, 10 Dec 2019 08:26:34 +0000 (16:26 +0800)]
source: move the streams to the default_source when the source unlink

When a source is unlinked, all streams of this source are moved to
default_source, this action is implemented in the core rather than
modules now.

And after this change, the module-rescue-streams is not needed, but
for backward compatibility, we keep it as a dummy module.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agodevice-port: moving streams since active_port on source changes status
Hui Wang [Sat, 7 Dec 2019 04:05:51 +0000 (12:05 +0800)]
device-port: moving streams since active_port on source changes status

When the active port of a source becomes unavailable, all streams from
that source should be moved to the default source.

When the active port of a source changes state from unavailable, all
streams that have their preferred_source set to this source should be
moved to this source.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosource: move streams to new appeared sources if they prefer these sources
Hui Wang [Sat, 7 Dec 2019 03:36:25 +0000 (11:36 +0800)]
source: move streams to new appeared sources if they prefer these sources

When a new source appears, all streams that have their
preferred_source set to the new source should be moved to the new
source.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agocore: move source-outputs conditionally when update default_source
Hui Wang [Sat, 7 Dec 2019 03:14:23 +0000 (11:14 +0800)]
core: move source-outputs conditionally when update default_source

When the default source changes, the streams from the old default
source should be moved to the new default source, unless the
preferred_source string is set to the old default source and the
active port of the old default source is not unavailable

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosource-output: clear the preferred_source if it is default_source
Hui Wang [Sat, 7 Dec 2019 02:29:14 +0000 (10:29 +0800)]
source-output: clear the preferred_source if it is default_source

When the user moves a stream to the current default source, the
preferred_source should be set to NULL and module-stream-restore
should clear the routing for that stream in the stream database. From
that point on the stream will be always routed to the default source.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosource-output: add a new API pa_source_output_set_preferred_source
Hui Wang [Sat, 7 Dec 2019 02:13:28 +0000 (10:13 +0800)]
source-output: add a new API pa_source_output_set_preferred_source

If the source here is NULL, that means users want to clear the
preferred_source and move the source-output to the default_source,
otherwise set the preferred_source to the source->name and move the
source-output to the source. After that fire the source_output_change
event.

After adding this API, we can use this API to simplify the entry_apply
in the module-stream-restore.c.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosource-output: change bool save_source to char *preferred_source
Hui Wang [Fri, 6 Dec 2019 13:51:10 +0000 (21:51 +0800)]
source-output: change bool save_source to char *preferred_source

The finial objective is to store the preferred source name in the
source-output struct, and use module-stream-restore to save and
restore it.

This patch just replaces the save_source with preferred_source, and
tries to keep the original logic.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agoalsa: Skip resume PCM if hardware doesn't support it
Kai-Heng Feng [Tue, 10 Dec 2019 08:16:18 +0000 (16:16 +0800)]
alsa: Skip resume PCM if hardware doesn't support it

Hardwares without SNDRV_PCM_INFO_RESUME capability, like USB Audio,
don't support snd_pcm_resume() when it's in suspended state.

Let's use snd_pcm_hw_params_can_resume() to check hardware's capability
before snd_pcm_resume() attempt. If it doesn't support resume, just go
to snd_pcm_drop() to leave suspended state directly.

4 years agoSplit the enable-lfe-remixing setting into two
Alexander Patrakov [Tue, 10 Dec 2019 06:50:59 +0000 (06:50 +0000)]
Split the enable-lfe-remixing setting into two

remixing-produce-lfe controls upmixing, and remixing-consume-lfe
controls downmixing. The motivation is that a user might want to
synthesize LFE while playing stereo audio on his/her 5.1 speakers,
but at the same time follow the industry recommendation to omit
the LFE channel when producting a stereo downmix (e.g. for headphones)
from 5.1 content. Or the other way round.

Fixes: #753.

4 years agocard-restore: prevent segfault caused by 'restore_bluetooth_profile=true'
Marc Ranolfi [Sat, 7 Dec 2019 22:06:28 +0000 (19:06 -0300)]
card-restore: prevent segfault caused by 'restore_bluetooth_profile=true'

This fixes an oversight introduced in 1f45082c which ultimately causes a segfault error in 'add_key_value()' from 'modargs.c'.

Closes #773.

4 years agoalsa-ucm: validate access to PA_DEVICE_PORT_DATA()
Jaroslav Kysela [Wed, 4 Dec 2019 18:33:01 +0000 (19:33 +0100)]
alsa-ucm: validate access to PA_DEVICE_PORT_DATA()

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: add comments to ucm_get_mixer_id()
Jaroslav Kysela [Wed, 4 Dec 2019 15:29:51 +0000 (16:29 +0100)]
alsa-ucm: add comments to ucm_get_mixer_id()

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: fix parsing for JackControl
Jaroslav Kysela [Tue, 3 Dec 2019 14:13:48 +0000 (15:13 +0100)]
alsa-ucm: fix parsing for JackControl

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: split correctly JackHWMute device names
Jaroslav Kysela [Tue, 3 Dec 2019 13:52:08 +0000 (14:52 +0100)]
alsa-ucm: split correctly JackHWMute device names

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: add support for master volume
Jaroslav Kysela [Wed, 27 Nov 2019 10:34:49 +0000 (11:34 +0100)]
alsa-ucm: add support for master volume

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: use the correct mixer identifiers as first
Jaroslav Kysela [Tue, 26 Nov 2019 09:54:15 +0000 (10:54 +0100)]
alsa-ucm: use the correct mixer identifiers as first

The mixer identifiers should be used for snd_mixer_selem API.
Use them as first, then try to fallback to the raw control
identifiers.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: Fix volume control based on review
Jaska Uimonen [Tue, 1 Oct 2019 15:34:17 +0000 (18:34 +0300)]
alsa-ucm: Fix volume control based on review

- sync mixer logic added
- mixer path creation, empty set in mapping creation, paths added in path creation
- path creation moved inside new port creation as it might be called twice otherwise
- some comments added

4 years agoalsa-ucm: Support Playback/CaptureVolume
Arun Raghavan [Tue, 3 May 2016 12:52:10 +0000 (18:22 +0530)]
alsa-ucm: Support Playback/CaptureVolume

This allows us to support the PlaybackVolume and CaptureVolume commands
in UCM, specifying a mixer control to use for hardware volume control.
This only works with ports corresponding to single devices at the
moment, and doesn't support stacking controls for combination ports.

The configuration is intended to provide a control (like Headphone
Playback Volume), but we try to resolve to a simple mixer control
(Headphone) to reuse existing volume paths.

On the UCM side, this also requires that when disabling the device for
the port, the volume should be reset to some default.

When enabling/disabling combination devices, things are a bit iffy since
we have no way to reset the volume before switching to a combination
device. It would be nice to have a combination-transition-sequence
command in UCM to handle this and other similar cases.

PlaybackSwitch and CaptureSwitch are yet to be implemented.

4 years agoalsa-mixer: improve alsa_id_decode() function
Jaroslav Kysela [Tue, 26 Nov 2019 09:35:14 +0000 (10:35 +0100)]
alsa-mixer: improve alsa_id_decode() function

Accept those identifiers:

        Speaker,1
        'Speaker',1
        "Speaker",1

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-mixer: handle the index for ALSA mixer element identifiers
Jaroslav Kysela [Sat, 23 Nov 2019 19:59:24 +0000 (20:59 +0100)]
alsa-mixer: handle the index for ALSA mixer element identifiers

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: add mixer IDs to ucm_items
Jaroslav Kysela [Sat, 23 Nov 2019 14:50:29 +0000 (15:50 +0100)]
alsa-ucm: add mixer IDs to ucm_items

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-ucm: use ucm2 name for the direct card index open
Jaroslav Kysela [Sat, 23 Nov 2019 14:17:30 +0000 (15:17 +0100)]
alsa-ucm: use ucm2 name for the direct card index open

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 years agoalsa-mixer: add support for LucidSound LS31, and create usb-gaming-headset profile
Dave Chiluk [Fri, 9 Aug 2019 04:10:01 +0000 (23:10 -0500)]
alsa-mixer: add support for LucidSound LS31, and create usb-gaming-headset profile

4 years agoalsa-mixer: Add support for SteelSeries Arctis 5 2019 headset
Krzysztof Stasiowski [Tue, 18 Jun 2019 11:50:35 +0000 (11:50 +0000)]
alsa-mixer: Add support for SteelSeries Arctis 5 2019 headset

Signed-off-by: Dave Chiluk <chiluk@ubuntu.com>
4 years agoalsa-mixer: add support for SteelSeries Arctis Pro 2019 headset
Josh [Sat, 25 May 2019 09:35:01 +0000 (02:35 -0700)]
alsa-mixer: add support for SteelSeries Arctis Pro 2019 headset

Signed-off-by: Dave Chiluk <chiluk@ubuntu.com>
4 years agostream-restore: skip entries setting action from gnome-control-center
Hui Wang [Thu, 17 Jan 2019 03:21:45 +0000 (11:21 +0800)]
stream-restore: skip entries setting action from gnome-control-center

When users select an output device from gnome-control-center UI, the
sink of this output device will be set to the configured_default_sink
and the default_sink, these actions are expected, but after these
actions, the gnome-control-center will call extension_cb() to modify
the entries in the database, let all stream entries to bind the sink
users select, this is not correct since the sink is default_sink now.

This is a temp fix for this issue, after gnome-control-center fixes
this problem, this patch should be reverted.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosink: move the streams to the default_sink when the sink is unlinked
Hui Wang [Wed, 16 Jan 2019 07:40:53 +0000 (15:40 +0800)]
sink: move the streams to the default_sink when the sink is unlinked

When a sink is unlinked, all streams of this sink are moved to
default_sink, this action is implemented in the core rather than
modules now.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agodevice-port: moving streams due to changing the status of active_port
Hui Wang [Wed, 16 Jan 2019 04:58:16 +0000 (12:58 +0800)]
device-port: moving streams due to changing the status of active_port

When the active port of a sink becomes unavailable, all streams from
that sink should be moved to the default sink.

When the active port of a sink changes state from unavailable, all
streams that have their preferred_sink set to this sink should be moved
to this sink.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosink: move streams to new appeared sinks if they prefer these sinks
Hui Wang [Wed, 16 Jan 2019 04:10:38 +0000 (12:10 +0800)]
sink: move streams to new appeared sinks if they prefer these sinks

When a new sink appears, all streams that have their preferred_sink
set to the new sink should be moved to the new sink.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agocore: move sink-inputs conditionally when update default_sink
Hui Wang [Wed, 16 Jan 2019 02:35:45 +0000 (10:35 +0800)]
core: move sink-inputs conditionally when update default_sink

When the default sink changes, the streams from the old default sink
should be moved to the new default sink, unless the preferred_sink
string is set to the old default sink and the active port of the old
default sink is not unavailable

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosink-input: clear the preferred_sink if it is default_sink
Hui Wang [Wed, 16 Jan 2019 01:07:26 +0000 (09:07 +0800)]
sink-input: clear the preferred_sink if it is default_sink

When the user moves a stream to the current default sink, the
preferred_sink should be set to NULL and module-stream-restore
should clear the routing for that stream in the stream database. From
that point on the stream will be always routed to the default sink.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosink-input: add a new API pa_sink_input_set_preferred_sink
Hui Wang [Tue, 15 Jan 2019 11:28:23 +0000 (19:28 +0800)]
sink-input: add a new API pa_sink_input_set_preferred_sink

If the sink here is NULL, that means users want to clear the
preferred_sink and move the sink-input to the default_sink, otherwise
set the preferred_sink to the sink->name and move the sink-input to
the sink. After that fire the sink_input_change event.

After adding this API, we can use this API to simplify the entry_apply
in the module-stream-restore.c.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agosink-input: change bool save_sink to char *preferred_sink
Hui Wang [Tue, 15 Jan 2019 04:12:52 +0000 (12:12 +0800)]
sink-input: change bool save_sink to char *preferred_sink

The finial objective is to store the preferred sink name in the
sink-input struct, and use module-stream-restore to save and restore
it.

This patch just replaces the save_sink with preferred_sink, and tries
to keep the original logic.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
4 years agoswitch-on-connect: Fix warning on discarded const qualifier
Arun Raghavan [Fri, 22 Nov 2019 15:46:33 +0000 (21:16 +0530)]
switch-on-connect: Fix warning on discarded const qualifier

pa_modargs_get_value() returns a const string -- instead of discarding
the const qualifier, let's just duplicate the string and free it
explicitly in the failure case.

4 years agoswitch-on-connect: Add blacklisting
Ryszard Knop [Sun, 17 Nov 2019 14:24:03 +0000 (15:24 +0100)]
switch-on-connect: Add blacklisting

Add a new module argument, blacklist, which is a regular expression.
If the sink/source name matches the provided blacklist regex, don't
automatically switch to it. By default, no devices are blacklisted.

Add a new function to check whenever a regex pattern is valid, plus
extra NULL asserts in pa_match.

4 years agoi18n: Update the Croatian translation
muzena [Sun, 10 Nov 2019 13:24:26 +0000 (14:24 +0100)]
i18n: Update the Croatian translation

4 years agoX11: Add xauthority parameter
Wim Taymans [Thu, 12 Sep 2019 07:49:40 +0000 (09:49 +0200)]
X11: Add xauthority parameter

Add an xauthority parameter and use it in the startup script.

Apparently on some systems the X authentication cookie is not stored in
~/.Xauthority but in some dynamic location pointed to by the XAUTHORITY
environment variable. The environment variable therefore needs to be set
in the PulseAudio daemon environment in order to have access to the X
server from the PulseAudio daemon, but the variable is not necessarily
set when starting PulseAudio. For example, systemd starts PulseAudio
outside the X session. The start-pulseaudio-x11 script is run in the
X session, so it has the environment variable available, and can pass it
to the X modules, which then can set the variable in the daemon
environment.

RedHat bug: https://bugzilla.redhat.com/show_bug.cgi?id=1723065
Debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593746

Based on patch by Alexander Kurtz <kurtz.alex@googlemail.com>

4 years agoman: remove outdated information about real-time scheduling
Tanu Kaskinen [Thu, 14 Nov 2019 17:56:39 +0000 (19:56 +0200)]
man: remove outdated information about real-time scheduling

The pulse-rt group doesn't exist any more, and rtkit exists to make it
safe to acquire real-time scheduling for regular users.

4 years agostart-pulseaudio-x11: Make 'plasma' version check shell portable
Vasilis Tsiligiannis [Mon, 18 Nov 2019 14:15:47 +0000 (16:15 +0200)]
start-pulseaudio-x11: Make 'plasma' version check shell portable

Currently, the version check snippet uses a 'bash' extension which
arithemtically evaluates variables prior to expansion. This approach
does not nesseceraly work on other shells which may complain with
'5: Illegal numer' error. Expand the arithmetic expression before
evaluation to avoid such an error.

Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
4 years agomeson: convert to install_headers
David Heidelberg [Tue, 12 Nov 2019 13:40:37 +0000 (14:40 +0100)]
meson: convert to install_headers

Instead of install_data use correct install_headers

Signed-off-by: David Heidelberg <david@ixit.cz>
4 years agomeson: convert post-install.sh to python
David Heidelberg [Sat, 13 Apr 2019 17:08:28 +0000 (19:08 +0200)]
meson: convert post-install.sh to python

Inspired by: https://gitlab.gnome.org/GNOME/gnome-characters/commit/36a2e4f8a7c42447f40a797005ddeae0255151d0#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa_0_14

Signed-off-by: David Heidelberg <david@ixit.cz>
4 years agortp: Add some logging to know what backend is being used
Arun Raghavan [Fri, 5 Jul 2019 00:51:07 +0000 (06:21 +0530)]
rtp: Add some logging to know what backend is being used

Should make debugging any issues that come up easier.

4 years agortp: Properly timestamp buffers in the GStreamer sender pipeline
Sebastian Dröge [Mon, 14 Mar 2016 17:17:03 +0000 (19:17 +0200)]
rtp: Properly timestamp buffers in the GStreamer sender pipeline

Otherwise default timestamping will happen, which might not be correct,
especially not after the stream was suspended for a while.

4 years agortp: Use udpsink instead of fdsink for the GStreamer RTP implementation
Sebastian Dröge [Mon, 14 Mar 2016 15:38:59 +0000 (17:38 +0200)]
rtp: Use udpsink instead of fdsink for the GStreamer RTP implementation

4 years agortp: Use yes/no in configure instead of 1/0
Sebastian Dröge [Wed, 2 Mar 2016 18:28:00 +0000 (20:28 +0200)]
rtp: Use yes/no in configure instead of 1/0

4 years agortp: Add a GStreamer-based RTP implementation
Arun Raghavan [Thu, 12 May 2016 13:56:55 +0000 (19:26 +0530)]
rtp: Add a GStreamer-based RTP implementation

This adds a GStreamer-based RTP implementation to replace our own. The
original implementation is retained for cases where it is not possible
to include GStreamer as a dependency.

The idea with this is to be able to start supporting more advanced RTP
features such as RTCP, non-PCM audio, and potentially synchronised
playback.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortpoll: Separate out before/after/work callback userdata
Arun Raghavan [Thu, 12 May 2016 12:35:14 +0000 (18:05 +0530)]
rtpoll: Separate out before/after/work callback userdata

It is possible that we might want to have a separate userdata to be used
for these callbacks, so let's split them out.

This is particularly needed when using an pa_rtpoll_item around pa_fdsem
since that uses its own before/after callback but will essentially have
whatever is using the fdsem set up the work callback appropriately (and
thus at least the work callback's userdata needs to be separated from
the before/after callback -- we might as well then just separate all
three).

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortp: Hide RTP implementation details from module-rtp-*
Arun Raghavan [Thu, 12 May 2016 12:29:55 +0000 (17:59 +0530)]
rtp: Hide RTP implementation details from module-rtp-*

This moves RTP implementation-specific information out of
module-rtp-send/recv. This is basically done by making the
pa_rtp_context structure opaque from the perspective of these modules.
We can then potentially replace the underlying RTP implementation with
something else transparently.

One RTP detail that does "leak" is the RTP timestamp. We provide this to
module-rtp-recv so that it can perform rate adjustments to match the
sender rate.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortp: Move MTU handling to the RTP implementation
Arun Raghavan [Thu, 12 May 2016 12:27:04 +0000 (17:57 +0530)]
rtp: Move MTU handling to the RTP implementation

module-rtp-send itself doesn't really need to handle this, the
implementation can keep track (and make sure sending happens in MTU
sized chunks).

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortp: Drop support for non-L16 media
Arun Raghavan [Thu, 12 May 2016 12:26:56 +0000 (17:56 +0530)]
rtp: Drop support for non-L16 media

There doesn't seem much value in supporting streaming U8/mulaw/alaw on
the network, and it's unlikely these get any testing. Makes more sense
to drop these formats and just convert to L16 if we're dealing with
source media in that format.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortp: Don't use cookie for SSRC
Arun Raghavan [Thu, 12 May 2016 12:26:51 +0000 (17:56 +0530)]
rtp: Don't use cookie for SSRC

Publishing the cookie on multicast seems to be a bad idea.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agortp: Make init return a value for success/failure
Arun Raghavan [Thu, 12 May 2016 12:26:43 +0000 (17:56 +0530)]
rtp: Make init return a value for success/failure

This will be used in the future when writing other RTP implementations
that can fail on init.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
4 years agomeson: allow to disable installing completions
Timo Gurr [Thu, 7 Nov 2019 12:50:56 +0000 (12:50 +0000)]
meson: allow to disable installing completions

4 years agoFix memory leak in context_free
Daniil Kovalev [Sat, 2 Nov 2019 18:43:51 +0000 (21:43 +0300)]
Fix memory leak in context_free

In commit f727cd9a `int error` member in `struct pa_context` was changed
to `pa_context_error *error`. The memory that is allocated with
`pa_xnew0` in src/pulse/context.c:142 is never freed, and it causes
a leak of 4 bytes. The leak can be easily detected with leak-sanitizer.

4 years agostart-pulseaudio-x11: fix KDE version check
Rickie Schroeder [Wed, 16 Oct 2019 19:33:19 +0000 (19:33 +0000)]
start-pulseaudio-x11: fix KDE version check

Current check wasn't working in case when $DESKTOP_SESSION wasn't set
which happens when session is started without display manager like sddm.
Parsing "plasmashell -v" output should be more reliable and less hacky.

This also changes legacy backticks `...` to modern $(...) as recommended
by shellcheck:
https://github.com/koalaman/shellcheck/wiki/SC2006

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/751

4 years agortp: Fix reverted test for INHIBIT_AUTO_SUSPEND_ONLY_WITH_NON_MONITOR_SOURCES
ckdo [Sun, 20 Oct 2019 06:19:54 +0000 (08:19 +0200)]
rtp: Fix reverted test for INHIBIT_AUTO_SUSPEND_ONLY_WITH_NON_MONITOR_SOURCES

RTP Monitor sources were never suspended when
inhibit_auto_suspend=only_with_non_monitor_sources

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/735

4 years agoalsa-mixer: recognize the "Speaker Jack" control
Tanu Kaskinen [Sat, 2 Sep 2017 12:35:01 +0000 (15:35 +0300)]
alsa-mixer: recognize the "Speaker Jack" control

This control has been seen in the wild:
https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-August/028595.html
(The pastebin link in that mail might not work anymore, but the paste
just shows that there's a Speaker Jack control).

4 years agoqpaeq: use python3 instead of python 2
Felipe Sateler [Fri, 25 Oct 2019 11:39:03 +0000 (08:39 -0300)]
qpaeq: use python3 instead of python 2

The script was already compatible, so lets just switch interpreter

4 years agoqpaeq: Drop unused imports
Felipe Sateler [Fri, 25 Oct 2019 11:34:59 +0000 (08:34 -0300)]
qpaeq: Drop unused imports

Neither sip nor PyQt5 are used. From PyQt5 we only use the named imports just below

4 years agoatomic: Explicitly cast void* to unsigned long
Peter Levine [Thu, 26 Sep 2019 07:24:40 +0000 (07:24 +0000)]
atomic: Explicitly cast void* to unsigned long

4 years agomeson: link libintl if it's not provided by libc
Rasmus Thomsen [Sun, 15 Sep 2019 12:22:49 +0000 (14:22 +0200)]
meson: link libintl if it's not provided by libc

This fixes the build on musl with external gettext

4 years agonull-sink: allow clients to configure the supported formats
Tanu Kaskinen [Thu, 19 Sep 2019 07:50:58 +0000 (10:50 +0300)]
null-sink: allow clients to configure the supported formats

The set_formats() callback is already implemented, so the only thing
missing was the SET_FORMATS flag.

4 years agoraop: Fix non working tcp mode
ckdo [Wed, 18 Sep 2019 01:53:42 +0000 (03:53 +0200)]
raop: Fix non working tcp mode

4 years agodaemon-conf: disable flat-volumes by default
Tanu Kaskinen [Mon, 23 Sep 2019 04:48:48 +0000 (07:48 +0300)]
daemon-conf: disable flat-volumes by default

Almost all distributions patch the configuration to disable
flat-volumes, because users tend to find the concept confusing (and it
also causes nasty surprises when some application pushes the volume to
100%). Let's remove the need for patching and disable the feature by
default.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/691

4 years agoalsa-mixer-path-test: Hide unused functions when building with Meson
Tanu Kaskinen [Fri, 20 Sep 2019 14:09:40 +0000 (17:09 +0300)]
alsa-mixer-path-test: Hide unused functions when building with Meson

Silences these warnings:

[509/574] Compiling C object 'src/tests/a4ccf2d@@alsa-mixer-path-test@exe/alsa-mixer-path-test.c.o'.
../src/tests/alsa-mixer-path-test.c:24:20: warning: ‘load_makefile’ defined but not used [-Wunused-function]
 static pa_strlist *load_makefile() {
                    ^~~~~~~~~~~~~
../src/tests/alsa-mixer-path-test.c:17:20: warning: ‘get_default_paths_dir’ defined but not used [-Wunused-function]
 static const char *get_default_paths_dir(void) {
                    ^~~~~~~~~~~~~~~~~~~~~

4 years agoUpdate NEWS
Tanu Kaskinen [Fri, 20 Sep 2019 13:49:44 +0000 (16:49 +0300)]
Update NEWS

The release notes, on which the NEWS file is based on, weren't complete
at the time of release. Now the notes should be complete.

4 years agomeson: Define TUNNEL_SINK for module-tunnel-sink
Jan Alexander Steffens (heftig) [Sun, 15 Sep 2019 11:47:19 +0000 (13:47 +0200)]
meson: Define TUNNEL_SINK for module-tunnel-sink

This was missing, so it was building another tunnel-source instead.

Fixes https://bugs.archlinux.org/task/63755

4 years agoautotools: Put module-tunnel-source X11_CFLAGS into CFLAGS instead of LDFLAGS
Jan Alexander Steffens (heftig) [Sun, 15 Sep 2019 11:39:45 +0000 (13:39 +0200)]
autotools: Put module-tunnel-source X11_CFLAGS into CFLAGS instead of LDFLAGS

Seems this happened because the order of automake variables for modules
is not consistent.

4 years agol10n: Update Italian translation
Milo Casagrande [Thu, 19 Sep 2019 07:58:16 +0000 (09:58 +0200)]
l10n: Update Italian translation

Signed-off-by: Milo Casagrande <milo@milo.name>
4 years agobuild-sys: Add missing files to release tarballs upstream/13.0 v13.0
Tanu Kaskinen [Fri, 13 Sep 2019 13:18:43 +0000 (16:18 +0300)]
build-sys: Add missing files to release tarballs

4 years agoupdate NEWS
Tanu Kaskinen [Fri, 13 Sep 2019 12:48:51 +0000 (15:48 +0300)]
update NEWS

4 years agoman: Add description of pactl special names.
Danny O'Brien [Mon, 2 Sep 2019 07:06:49 +0000 (00:06 -0700)]
man: Add description of pactl special names.

4 years agobuild-sys: Fix documentation of version info
Arun Raghavan [Mon, 2 Sep 2019 04:29:29 +0000 (09:59 +0530)]
build-sys: Fix documentation of version info

The comment has been incorrect for a while now. Thanks to Jan Steffens
for pointing this out.

4 years agol10n: Update lt.po
Moo [Sun, 1 Sep 2019 13:16:20 +0000 (13:16 +0000)]
l10n: Update lt.po

4 years agobuild-sys: Bump version info for libpulse v12.99.3
Arun Raghavan [Sun, 1 Sep 2019 07:35:10 +0000 (13:05 +0530)]
build-sys: Bump version info for libpulse

Minor implementation change since last release (we now load X11
properties only for SSH connections).

4 years agopo: Update Brazilian Portuguese translation
Rafael Fontenelle [Fri, 30 Aug 2019 13:12:24 +0000 (13:12 +0000)]
po: Update Brazilian Portuguese translation

4 years agodaemon: Drop KDE-specific loading of module-device-manager
Nicolas Fella [Fri, 30 Aug 2019 11:07:52 +0000 (11:07 +0000)]
daemon: Drop KDE-specific loading of module-device-manager

Newer versions of Plasma no longer use this module, and the consensus
seems to be that module-switch-on-connect works better for most cases.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/509

4 years agoclient-conf: Avoid loading X11 properties unless SSH_CONNECTION is set
Carlos Garnacho [Sat, 22 Jun 2019 12:33:59 +0000 (14:33 +0200)]
client-conf: Avoid loading X11 properties unless SSH_CONNECTION is set

Reading properties from the X11 root window is meant to provide 1:1 results
with reading the configuration directly in the local case. This configuration
is essentially different only in remote cases.

Add an extra check for the SSH_CONNECTION envvar, so we don't even need
opening a X11 display connection for IPC in the most usual case.

4 years agogitlab: white space change to Bug.md
Russell Treleaven [Mon, 19 Aug 2019 10:54:06 +0000 (10:54 +0000)]
gitlab: white space change to Bug.md

Add a second whitespace at the end of the line to force a newline in the
output.

4 years agodbus: fix ActiveProfile setting
David Emett [Sat, 27 Jul 2019 21:24:42 +0000 (22:24 +0100)]
dbus: fix ActiveProfile setting

Just like with handle_set_active_port, we need to look up the profile
corresponding to the provided path rather than doing a name comparison.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/709

4 years agobluetooth: Only perform write-related calculations when we have a sink
Pali Rohár [Tue, 27 Aug 2019 03:11:27 +0000 (08:41 +0530)]
bluetooth: Only perform write-related calculations when we have a sink

This avoids a potential divide-by-zero when we try to decide how much to
write to the sink in the source thread when there is no sink.

Fixes https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/717

4 years agobuild-sys: meson: Process subdirectories before generating configuration
Arun Raghavan [Thu, 22 Aug 2019 13:23:13 +0000 (18:53 +0530)]
build-sys: meson: Process subdirectories before generating configuration

Subdirectories add to the top-level cdata (specifically, the SIMD
detection happens in the pulsecore meson.build), so we were missing
HAVE_MMX/SSE2/NEON defines without this fix.

4 years agobuild-sys: meson: Fixes for some ARM compiler checks
Arun Raghavan [Thu, 22 Aug 2019 12:28:20 +0000 (17:58 +0530)]
build-sys: meson: Fixes for some ARM compiler checks

4 years agopo: update Ukrainian translation
Yuri Chornoivan [Mon, 19 Aug 2019 08:35:06 +0000 (08:35 +0000)]
po: update Ukrainian translation

4 years agoUpdate Bug.md to encourage users to attach pa-info output to bug reports
Russell Treleaven [Sun, 18 Aug 2019 20:48:23 +0000 (20:48 +0000)]
Update Bug.md to encourage users to attach pa-info output to bug reports

4 years agobuild-sys: meson: Give ourselves a little more timeout headroom
Arun Raghavan [Sat, 17 Aug 2019 10:42:37 +0000 (16:12 +0530)]
build-sys: meson: Give ourselves a little more timeout headroom

We're seeing CI failures due to once-test sometimes taking long. Let's
give ourselves a little more space per test (2 min -> 5 min) to avoid
this.

4 years agoraop: Fix infinite loop in raop-sink with UDP mode
RODRIGUEZ Christophe [Sat, 17 Aug 2019 10:43:20 +0000 (10:43 +0000)]
raop: Fix infinite loop in raop-sink with UDP mode

There are potentially unresolved issues around the EAGAIN logic, but
this should prevent an infinite loop and log flood in the mean time.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/695

4 years agobuild-sys: meson: Add a bunch of missing checks
Arun Raghavan [Thu, 15 Aug 2019 10:19:30 +0000 (15:49 +0530)]
build-sys: meson: Add a bunch of missing checks

4 years agobuild-sys: meson: Add mkfifo checks for module-pipe-*
Arun Raghavan [Thu, 15 Aug 2019 10:00:41 +0000 (15:30 +0530)]
build-sys: meson: Add mkfifo checks for module-pipe-*

4 years agobuild-sys: meson: Add some missing declaration checks
Arun Raghavan [Thu, 15 Aug 2019 10:00:26 +0000 (15:30 +0530)]
build-sys: meson: Add some missing declaration checks

4 years agobuild-sys: meson: Add a check for fast 64-bit operations
Arun Raghavan [Thu, 15 Aug 2019 10:00:00 +0000 (15:30 +0530)]
build-sys: meson: Add a check for fast 64-bit operations

4 years agobuild-sys: meson: Add ARMv6 instruction check
Arun Raghavan [Thu, 15 Aug 2019 07:38:14 +0000 (13:08 +0530)]
build-sys: meson: Add ARMv6 instruction check

4 years agobuild-sys: meson: Add atomic ops related checks
Arun Raghavan [Thu, 15 Aug 2019 07:37:54 +0000 (13:07 +0530)]
build-sys: meson: Add atomic ops related checks

4 years agomeson: add stdint.h to checked headers
Lucas Stach [Tue, 13 Aug 2019 15:27:37 +0000 (17:27 +0200)]
meson: add stdint.h to checked headers

Without this check we won't ever define HAVE_STDINT_H, which isn't used
in pulse directly, but is needed by e.g. the speex headers to work
correctly.

4 years agomeson: allow to build bluez support without libbluetooth
Lucas Stach [Tue, 13 Aug 2019 15:08:13 +0000 (17:08 +0200)]
meson: allow to build bluez support without libbluetooth

pulseaudio does not link against libbluetooth, as it's only talking to the
bluez daemon over dbus. So the build dependency on libbluetooth is overly
restrictive, as some embedded systems choose to ship without libbluetooth
but still have bluez daemon support.

This syncs the meson to the autotools configuration behavior by changing
the bluez option to a default on boolean.

4 years agomeson: fix build files list when building with NEON
Lucas Stach [Tue, 13 Aug 2019 14:01:01 +0000 (16:01 +0200)]
meson: fix build files list when building with NEON

Sync the meson NEON build files list with the autotools build
sources list. Fixes "ERROR: File svolume_neon.c does not exist."

4 years agobuild-sys: meson: Fix 2 cases of joining paths w/o join_paths
Jan Alexander Steffens (heftig) [Tue, 13 Aug 2019 19:47:23 +0000 (21:47 +0200)]
build-sys: meson: Fix 2 cases of joining paths w/o join_paths

Fixes https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/712

4 years agobootstrap.sh: don't set sysconfdir and localstatedir configure options
Tanu Kaskinen [Tue, 13 Aug 2019 13:49:31 +0000 (16:49 +0300)]
bootstrap.sh: don't set sysconfdir and localstatedir configure options

I don't know why these options were being passed to configure
(--sysconfdir has been there from the very beginning, --localstatedir
got added when the system mode was added). Overwriting system files by
default is not good, so let's not set these options.

4 years agobuild-sys: meson: Add some missing checks
Jan Alexander Steffens (heftig) [Thu, 8 Aug 2019 18:23:12 +0000 (20:23 +0200)]
build-sys: meson: Add some missing checks

- Header and function checks from configure.ac
  (some libc, some libpthread, dladdr from libdl)
- Find iconv and check constness

4 years agoadd script to collect information for bug reports
Russell Treleaven [Thu, 8 Aug 2019 16:30:05 +0000 (12:30 -0400)]
add script to collect information for bug reports