Commit graph

9489 commits

Author SHA1 Message Date
Tanu Kaskinen
c892fd2d88 i18n: Replace po/es.po with the Fedora Zanata version
The Zanata version is more recent, and there haven't been other changes
to upstream than the fixes in a15cde4179.
I modified the Zanata version to include those fixes.
2020-03-26 15:16:49 +00:00
Tanu Kaskinen
2b66b73f8d i18n: Replace po/ja.po with the Fedora Zanata version
The Zanata version is more recent, and there don't seem to be many
changes that would be lost in our upstream version since 2012 (based on
the file header, the Zanata version was probably in sync with master
some time in 2012).
2020-03-26 15:16:49 +00:00
Tanu Kaskinen
21ea00d58f i18n: Merge Catalan translation from fedora.zanata.org
Merged with this command, which takes new translations from the Zanata
version, but doesn't take changed translations, except when they clear
the fuzzy flag from a translation:
    msgcat --use-first po/ca.po po/ca.po.zanata -o po/ca.po

I also manually copied new translator names to the header comment. I
didn't update the header key/value section, but here are the interesting
bits from the Zanata version:

"POT-Creation-Date: 2015-10-06 16:57+0200\n"
"PO-Revision-Date: 2019-07-25 10:42+0000\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
2020-03-26 15:16:49 +00:00
Tanu Kaskinen
53db0a2e6a i18n: Import Bulgarian translation from fedora.zanata.org 2020-03-26 15:16:49 +00:00
Tanu Kaskinen
9c8b686389 protocol-native: Fix error code
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/816
2020-03-26 15:07:00 +00:00
Wim Taymans
4dc73f5167 alsa-ucm: use the right profile name
Use the right profile name or else we could pass NULL to
pa_hashmap_get() and crash.
2020-03-25 16:35:53 +01:00
Wim Taymans
f3f16fe6df alsa: handle unavailbale HW volume in UCM
It is possible that UCM doesn't specify hardware volume controls.
Fall back to software controls instead of aborting.
2020-03-20 12:07:36 +01:00
Pali Rohár
d504744396 bluetooth: Ensure that only one A2DP codec is registered to bluez
Support for multiple codecs needs to use a new Bluez API which pulseaudio
does not implement yet.

So register explicitly only SBC codec which is provided by pulseaudio A2DP
codec API.
2020-03-19 14:02:40 +01:00
Tanu Kaskinen
9d36210bec ucm: Don't log errors during normal operation
It's completely normal to not have explicit channel configuration for
stereo devices. In fact, the ALSA developers actively avoid configuring
the channels for stereo devices.

I also dropped the word "duplex" from the messages, because "stereo
duplex" implies bidirectionality, but most devices use one direction
only.
2020-03-17 09:31:38 +02:00
Philip Withnall
60531aef82 daemon: Add --log-target=journal to pulseaudio.service
When running under systemd from its `.service` file, the daemon is
started with `--daemonize=no`. This means that the default logging
target is `stderr` (see the documentation for `--log-target` in
`pulse-daemon.conf(5)`). That works fine, but results in all the
structured logging data from the `pa_log()` calls being thrown away and
not making it into the journal.

In order to preserve structured logging data, and hence make the
messages in the journal a little more useful (for example, allowing the
user to filter by message priority), explicitly pass
`--log-target=journal` in the `.service` file. This should always be
appropriate because the journal should always be used with systemd.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-03-11 10:46:04 +00:00
Arun Raghavan
94e479b261 ci: Go back to using CI templates from master
Consensus is that we prefer this to potentially remaining on older,
commits and manually updating at unknown frequency.
2020-03-07 07:15:50 -05:00
Arun Raghavan
04bf85cb74 ci: Update for changes in CI template
This updates things based on changes in the templates that we use. Also
pins the ref in the template repo so that our build does not break when
the template parameters change.

This does mean that we should likely periodically check the ci-templates
repo, but this seems to be better than the build breaking unexpectedly.
2020-03-07 06:17:58 +00:00
Khem Raj
3450d1fcfe remap/arm: Adjust inline asm constraints
gcc10 can effectively emit single precision registers if right
operand modifier constraint is not in use

This results in assembler rejecting the code

/tmp/ccEG4QpI.s:646: Error: VFP/Neon double precision register expected -- `vtbl.8 d3,{d0,d1},s8'
/tmp/ccEG4QpI.s:678: Error: invalid instruction shape -- `vmul.f32 d0,d0,s8'

Therefore add %P qualifier to request double registers sinece 'w' could
mean variable could be stored in s0..s14 and GCC defaults to printing out s0..s14.
Note those registers map to d0..d7 also.

Output generated is exactly same with gcc9, and it also now compiles
with gcc10

Its not documented well in gcc docs and there is a ticket for that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84343

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-05 13:11:27 -08:00
Jaroslav Kysela
4da4670fdb alsa ucm: do not assign JackHWMute when JackControl is missing for the UCM device
Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/14

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-03-01 15:55:37 +01:00
Alexander E. Patrakov
d18678d4e8 man: Deprecate the enable-remixing option
The new remixing-use-all-sink-channels=no option covers all valid
use cases.
2020-02-27 08:00:37 +00:00
Sebastien
2c5b594f1c Update configure.ac to fix the enable_gstreamer summary 2020-02-20 14:19:28 +00:00
Jaroslav Kysela
cabd387e26 alsa-ucm: correct the channel default logic (stereo)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2020-02-15 13:07:43 +00:00
Arun Raghavan
ef8a302d6b build: Bump soversion for libpulse
No interface changes, but minor implementation change via a fix for when
contexts are freed.
2020-02-14 05:07:56 -05:00
Tanu Kaskinen
5d70f1226b alsa: Document that mixer elements can be identified by a combination of name and index 2020-02-14 11:01:04 +02:00
Tanu Kaskinen
acc8052ed8 sink, source: Fix inaccurate log message
The stream moving is done also when the active port changes to
unavailable, not only when the device is unlinked like the old log
message suggests.
2020-02-05 10:04:23 +02:00
Georg Chini
bdc6b6ff78 sink, source: Fix stream rescue from sinks or sources without port
Currently pa_{sink,source}_move_streams_to_default_{sink,source}() check the
availability of the old sink or source. The sink or source is only marked as
unavailable if the active port of a sink or source is not available.
Therefore sinks or sources without port are always considered available,
even if they are in the process of being unlinked and streams are not
rescued.

This patch removes the availability check because it is unnecessary. The
functions are only called if the sink or source becomes unavailable or if
the default sink or source changes, therefore the default_sink_changed or
default_source_changed argument can be used as an indicator if the old
sink or source is still present. In the case that the old default sink or
source becomes unavailable, the function will be called twice, once when
the default sink or source changes and once when the old sink or source
is unlinked.
2020-02-03 11:19:47 +01:00
Jarno Suni
2afadb7119 shell-completion: Do not use 'awk -e' in bash completion
mawk does not support  option -e. If mawk is the default awk,
like it is in Ubuntu by default, the completion does not work.
2020-01-30 12:36:38 +02:00
Jarno Suni
a6beb3f4bf shell-completions/bash: Add pactl set-default-sink and set-default-source
pactl has these commands, too. Use the same order as the
man page, except the undocumented 'help'. Note that the commands are
sorted alphabetically when completed anyway, though
that can be disabled since Bash 4.4
(https://unix.stackexchange.com/q/215937/111181)

The zsh completions already support set-default-sink and
set-default-source.
2020-01-30 09:02:45 +02:00
Georg Chini
b72f295597 daemon.conf: Add boolean rescue_streams parameter
Since merge requests

https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/209 and
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/216

the rescuing of streams could no longer be disabled. This patch adds a boolean
parameter rescue-streams to daemon.conf which allows to disable rescuing.

The parameter defaults to true (rescuing enabled).
2020-01-23 05:10:24 +00:00
Nick Moriarty
97d0eda256 Permit root-owned home directory
On certain types of filesystem (especially NFS appliances which support
multiple operating systems), the user's home directory may report as
being owned by root rather than the user, yet still permit the user to
create and modify files normally (which will be owned by them).

Our users have home directories hosted on a NetApp storage appliance
which uses mixed-mode ACLs but where the home directory is set up with
NTFS ACLs at the top level.  This means they have the expected effective
permissions, but the ownership reports as root.  This could also be the
case if the filesystem were using NFS4 ACLs or similar.
2020-01-20 10:34:16 +00:00
Georg Chini
fe436f9099 sink-input, source-output: Fix stream rescue if a move fails
Merge Requests [1] and [2] introduced a regression. Streams were no longer moved
to the default sink or source if a started move failed. This patch fixes the problem.

[1] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/209
[2] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/215

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/794
2020-01-16 16:50:03 +02:00
Yi-Jyun Pan
cc21b75ab8 l10n: zh_TW: update translation 2020-01-16 11:22:23 +00:00
Georg Chini
051f7508b4 virtual sources: Propagate asyncmsgq change after source-output move
Currently, when the master of a virtual source is moved, the change of the
asyncmsgq is not propagated to other attached virtual sources. This leads
to a crash when the original master source is no longer available.

This patch fixes the issue by modifying the moving callback to propagate the
change to attached virtual sources.

Virtual sinks show a similar bug but that will be fixed in a different patch
series.
2020-01-13 20:40:04 +01:00
Tanu Kaskinen
f5d3606fe7 virtual-surround-sink: Use correct sample spec with memblockq
The memblockq stores data in the virtual sink format, not in the master
sink format. The wrong sample spec caused a crash when the virtual sink
rendered data whose length was not divisible by the sink input frame
size.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/786
2020-01-05 09:31:07 +02:00
Tanu Kaskinen
a71136be52 virtual-source: Don't process the rewind during requesting it
The request_rewind() callback of the uplink sink called
pa_sink_process_rewind(), which is not allowed. Things are supposed to
happen so that first a rewind is requested, and then during the next
rtpoll loop the sink will process the request. Calling
pa_sink_process_rewind() during the request phase caused a crash.

Having a request_rewind() callback is completely unnecessary, because
it's only useful for forwarding the request to a downstream sink. In
this case there is no downstream sink.

I also set max_rewind to 0, because the sink doesn't support rewinding.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/775
2020-01-04 11:54:36 +02:00
Ben Buchwald
bcc2162fb4 module-jackdbus-detect: Separate sink/source channels arguments
If a channels argument is passed module-jackdbus-detect, it is passed to both
module-jack-sink and module-jack-source when those are started. This is a
problem if you want a different number of input channels from output channels.
In particular, if you want more of one than you physically have of the other,
it will fail. This commit adds separate source_channels and sink_channels
arguments to be able to specify the channels arguments to module-jack-source
and module-jack-sink separately. The combined channels argument is kept for
backwards compatibility and will be used as a default for source_channels and
sink_channels if either of them is omitted.
2020-01-02 16:44:15 +00:00
Ben Buchwald
64211b8f59 module-jackdbus-detect: Allow omitting channels argument
module-jackdbus-detect documents the channels argument as optional and "if
omitted, the sink wil use the number of physical output port and the source
will use the number of physical input ports registered in the JACK server."
However, although it would correctly omit the channels argument to
module-jack-sink and module-jack-source if its channel argument was omitted,
its argument validation was broken to consider omitting channels an error.
This commit properly validates the channels argument so omitting it is
accepted.
2020-01-02 16:44:15 +00:00
Pali Rohár
de66644776 bluetooth: Print SO_TIMESTAMP warning for SCO source only once 2020-01-02 13:32:45 +02:00
Pali Rohár
3f13af508d bluetooth: Implement reading SO_TIMESTAMP for A2DP source 2020-01-02 13:32:40 +02:00
Tanu Kaskinen
cdcb01889c switch-on-connect: Blacklist HDMI devices by default
As the comment says, switching to HDMI automatically often causes
problems. Commit bae8c16bfa
("switch-on-connect: Do not ignore HDMI sinks") enabled switching to
HDMI earlier. It was known already then that HDMI monitors don't
necessarily have speakers on them, but I accepted the patch on the
basis that module-switch-on-connect acts only if the card profile is
switched to HDMI, so if switching to HDMI is wrong, then already the
profile switch should cause problems. I didn't think of the case where
the default sink is on some other card, in which case switching the
profile on the HDMI card doesn't cause problems by itself.

I don't want to revert bae8c16bfa, because João needs to be able to
configure their systems to automatically switch to HDMI. Instead, this
patch utilizes the new blacklisting feature in module-switch-on-connect
to blacklist HDMI sinks by default. Switching to HDMI can be enabled by
setting the blacklist modarg to an empty string or something that
doesn't match HDMI sinks.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/749
2019-12-27 11:24:36 +02:00
Tanu Kaskinen
4dba56c1af core-util: Handle zero-length volume string
Without checking for zero we end up accessing memory outside the str
buffer: str[len - 1].

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/768
2019-12-27 07:33:52 +02:00
Jaroslav Kysela
cd4a69374c alsa-ucm: allow to set profile priority from UCM value
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-12-23 11:10:44 +00:00
Jaroslav Kysela
d7dbd0cbe3 alsa-mixer: improve check for the empty path set for sink/source
The unused mixer instances are created without this code.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-12-23 11:10:44 +00:00
Jaroslav Kysela
8837c90b7f alsa-mixer: do the quick card number lookup to save mixer instances
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-12-23 11:10:44 +00:00
Jaroslav Kysela
3ceff8bb3f alsa-ucm: add support for HDMI ELD
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-12-23 11:10:44 +00:00
Jaroslav Kysela
3bd7c70c51 alsa: rewrite mixer open/close, cache mixer accesses in probe
The ALSA mixer can be opened multiple times (especially for UCM
in the probe). This adds a simple mixer cache to prevent
multiple open calls.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2019-12-23 11:10:44 +00:00
Laurent Bigonville
6438e5c46d alsa-mixer: Set the intended-role of Steelseries Arctis 5/7 headset as phone
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/640
2019-12-23 10:33:30 +01:00
Laurent Bigonville
c6a0665618 alsa-mixer: Add the ability to pass the intended-role to the mapping
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/640
2019-12-23 10:31:41 +01:00
ckdo
4854524058 raop: Add autoreconnect feature
This patch adds the autoreconnect feature to the raop module.
This is mainly to be used in a server context, but can be used
also in a desktop usage context.

With autoreconnect feature, the raop module behaves like this:

- At initialisation or in case of the RTSP TCP connection lost, it
  tries to reconnect every 5 seconds
- In case of any fatal error, it tries to reconnect every 5 seconds
- In UDP mode, if no timing packets received anymore for a long time,
  RTSP connection is closed, then it tries to reconnect..
- After reconnection, once RTSP session has been established again,
  playing is resumed automatically.
- When the connection is not established yet (or loss), the sink
  behaves like a null sink. In the source code I called it "autonull",
  even if autonull is set to autoreconnect param value, it could be
  split into two different params.
2019-12-22 09:43:14 +00:00
ckdo
46dd3be8ce raop: Code clarification : Only free the I/O thread when everything is initialized 2019-12-22 09:43:14 +00:00
ckdo
7e6bb05390 raop: Code clarification : Detect raop_client recording state in a proper way 2019-12-22 09:43:14 +00:00
ckdo
3e66643f50 raop: Fix callback call in raop client after auth : only call once everything is freed 2019-12-22 09:43:14 +00:00
ckdo
0c6678146a raop: Fix rewinding handling : process just after request received 2019-12-22 09:43:14 +00:00
Tanu Kaskinen
37babc6d1a stream: clarify the meaning of NULL device
The old wording could be understood so that the default sink/source
would always be used, but sometimes a policy module does a different
decision (for example module-stream-restore).

Related: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/767
2019-12-21 09:58:57 +02:00
Peter Meerwald
d6b69444be macro: Move PA_LIKELY()/PA_UNLIKELY(), PA_CLAMP()/PA_CLAMP_UNLIKELY() to pulse/gccmacro.h
PA_CLAMP_VOLUME() in pulse/volume.h makes use of PA_CLAMP_UNLIKELY()

see https://bugs.freedesktop.org/show_bug.cgi?id=89515

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2019-12-21 08:36:28 +02:00