Commit graph

7551 commits

Author SHA1 Message Date
Sangchul Lee
eec27ec686 core-util: Use size_t for out parameter of pa_split_*in_place()
pa_split_in_place() and pa_split_spaces_in_place() are modifed
to use size_t type instead of integer type.

alsa-ucm.c is revised according to this change.

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2019-03-19 11:42:19 +09:00
Tanu Kaskinen
904dd38003 alsa-mixer: improve a comment in udev rules
The word "identical" was being used in a weird way that could make the
comment a bit difficult to undertand.
2019-03-02 19:46:22 +02:00
Takashi Sakamoto
0d67e36655 alsa-mixer: distinguish Focusrite Saffire Pro 10 i/o from Liquid Saffire 56
In a former commit 37358e42c4 ("alsa: Suppress udev detection of sound
card for some units on IEEE 1394 bus"), PulseAudio has udev rules to
suppress handling some units on IEEE 1394 bus for a below issue:

Bug 199365 - repeating bus resets on Firewire bus with Focusrite Saffaire 26/io
https://bugzilla.kernel.org/show_bug.cgi?id=199365

However, I found that the rules match another model; Focusrite Liquid
Saffire 56. For detail, refer to below patch for Linux sound subsystem:

[alsa-devel] [PATCH] ALSA: bebob: use more identical mod_alias for
Saffire Pro 10 I/O against Liquid Saffire 56
https://mailman.alsa-project.org/pipermail/alsa-devel/2019-February/146003.html

For PulseAudio, the udev rule should be improved, because Liquid Saffire 56
(an application of TCAT TCD2200 ASIC, a.k.a Dice Jr.) can be handled by
pulseaudio without the issue.

This commit changes udev rule with model name instead of model_id from
configuration ROM. Below is data on udevd for Liquid Saffire 56, for
your information:

$ udevadm info -q all -p /sys/bus/firewire/devices/fw1.0/sound/card2/
P: /devices/pci0000:00/0000:00:01.2/0000:03:00.2/0000:04:07.0/0000:0a:00.0/0000:0b:00.0/fw1/fw1.0/sound/card2
E: DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:03:00.2/0000:04:07.0/0000:0a:00.0/0000:0b:00.0/fw1/fw1.0/sound/card2
E: ID_BUS=firewire
E: ID_FOR_SEAT=sound-pci-0000_0b_00_0
E: ID_ID=firewire-0x00130e04018001e9
E: ID_MODEL=LIQUID_SAFFIRE_56
E: ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express]
E: ID_MODEL_ID=0x000006
E: ID_PATH=pci-0000:0b:00.0
E: ID_PATH_TAG=pci-0000_0b_00_0
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_INTERFACE_FROM_DATABASE=OHCI
E: ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394)
E: ID_SERIAL=0x00130e04018001e9
E: ID_SERIAL_SHORT=0x00130e04018001e9
E: ID_VENDOR=Focusrite
E: ID_VENDOR_FROM_DATABASE=Texas Instruments
E: ID_VENDOR_ID=0x00130e
E: SOUND_INITIALIZED=1
E: SUBSYSTEM=sound
E: SYSTEMD_WANTS=sound.target
E: TAGS=💺systemd:
E: USEC_INITIALIZED=9802422583

Fixes: 37358e42c4 ("alsa: Suppress udev detection of sound card for some units on IEEE 1394 bus")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2019-03-02 19:19:34 +02:00
Arun Raghavan
db788229c6 source: Fix a bad condition that made source events not be emitted
This broke during a refactor of sink/source state-change.
2019-02-19 09:30:34 +05:30
scootergrisen
86074557a2 Replace "!" to "." so string is identical with other string. 2019-02-16 11:31:24 +00:00
scootergrisen
4f8200a283 Change "!" to "." to match other identical string. 2019-02-16 11:23:06 +00:00
scootergrisen
a4264de3a8 channel/s to channel(s) 2019-02-16 11:11:58 +00:00
scootergrisen
dee7674c7f Remove space in "Digital Passthrough (IEC958)" 2019-02-16 11:03:45 +00:00
scootergrisen
8b6006c0c6 "e g " to "e.g." 2019-02-16 10:49:53 +00:00
scootergrisen
b1c82bbd31 Remove "module" from "module user requested module" 2019-02-16 10:19:36 +00:00
scootergrisen
108f4ab09b Add missing space 2019-02-16 10:08:49 +00:00
Georg Chini
a53b371a4f virtual-source: Fix crash in combination with module-loopback
Similar to module-tunnel-sink-new, module-virtual-source did not create
a rtpoll for the uplink sink. This lead to a crash when the uplink sink
was used by module loopback, because module-loopback relies on the sink
to provide a rtpoll. Additionally, the sink was not unlinked when the
module was unloaded.

This patch fixes both issues. The rtpoll created is never run by the sink,
so the patch is no real fix but just a workaround to make module-loopback
happy.
2019-02-15 19:33:24 +00:00
João Paulo Rechi Vita
334ae350b4 card: Only fire the profile available changed hook for linked cards
pa_card_profile_set_available needs to check if the card is linked
before firing PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED, so callbacks
connected to it receive a fully initialized card object.

This fixes a crash introduced by commit 30a551bbc
"switch-on-port-available: Check if we need to change the active
profile".
2019-01-23 15:18:22 +00:00
Arun Raghavan
a5f25af043 protocol-native: Fix format ownership while creating record streams 2019-01-18 16:34:33 +00:00
Tanu Kaskinen
ff17374ffa bluez5-device: use correct RTP payload type
If one device tries to use PulseAudio to send audio over A2DP to another
device with bluez-alsa, that doesn't work because PulseAudio uses an
incorrect RTP payload type and bluez-alsa checks that the RTP payload
type is correct. According to the A2DP spec, the payload type should be
set to a number between 96 and 127.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/591
2019-01-17 14:43:39 +02:00
Arun Raghavan
9e0aa31f0a pactl: Fix some corner cases when setting sink formats
Mostly deals with failure more gracefully, and NULL-initialises the
format array for safety.
2019-01-16 09:39:24 +05:30
Arun Raghavan
24c389c8aa tests: Shorten how long daemon tests take to run
We split out some of the check-daemon tests that take a long time to
run, and also reduce how long we wait for the daemon to start up. This
should make the CI process quicker.
2019-01-16 09:39:24 +05:30
Diego Viola
2e755f012e memblockq: fix typo: yepp -> yep 2019-01-13 17:02:59 +00:00
Arun Raghavan
a887cee1ce system.pa: Drop mention of module-hal-detect
We dropped HAL support years ago.
2018-12-27 17:34:19 +05:30
Arnaud Rebillout
dec21f363a meson: Add some platform specific configuration data
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
de44c8885d meson: Fix HAVE_AF_UNIX, add check for mkfifo function
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
12f0e9232f meson: Process and install files: default.pa, system.pa, daemon.conf, client.conf
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
104b21f227 meson: Add optional libsamplerate support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
b839d3fb59 meson: Add optional SoX Resampler support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
6eba2f823d meson: Add optional Async NS support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
35bd2e70f9 meson: Add optional GSettings support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
639c54546d meson: Add optional Gtk+ support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
4325393499 meson: Add optional libpulse-mainloop-glib
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
065a79ff8c meson: Add optional GLib support
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
b28c4e9aea meson: Make Adrian echo canceller optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
4b17723928 meson: adrian-aec requires libm
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
90eec5ab36 meson: Make hal-compat optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
1286b798cc meson: Make openssl optional, fix build when openssl is disabled
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
ab5e5fe5c6 meson: Make bluez optional
I can't promise that the logic is *exactly* the same as the logic
currently in use with the autotools, but it seems correct to me.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
14722a907b module-stream-restore: Silence compiler warnings when dbus is disabled
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
f4a8d43882 meson: Make dbus optional, fix build with dbus disabled
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
b4fe15e092 meson: Adjust fixme comment for daemon
Man pages are handled in man/meson.build, that's where FIXMEs and TODOs
are now.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
6b0bad4246 meson: Install start-pulseaudio-x11 if x11 is found
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
ce16b373b2 meson: Build pax11publish only if X11 is found
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
6ff3420405 meson: Tighter coupling of XOrg dependencies
If `x11-xcb` is found, then let's force other X11 dependencies to be
there as well. That makes things a bit easier, and that's also what is
done in the autotools build system.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:07 +05:30
Arnaud Rebillout
ea92c28218 meson: Create bindir and libdir variables
This is to avoid using the construct 'join_paths(prefix, get_option(...))'
everywhere in the meson files. It's better to settle the paths question
once and for all at the beginning.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:07 +05:30
Arnaud Rebillout
13202eb9ed meson: Add pulsedspdir option
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:07 +05:30
Hans de Goede
adef9a4421 alsa-ucm: Fix UCM devices which names share a prefix being seen as the same
Before this commit ucm_port_contains() was using a strncmp to compare
UCM-device-names without first checking that the part of the port_name
being compared and the device-name have the same length, this was causing
it to return true for both "InternalMic-IN1" and "InternalMic-IN12" when
port_name contained "InternalMic-IN1".

We hit this with the bytcr_rt5651 UCM profile which has "InternalMic-IN1",
"InternalMic-IN2" and "InternalMic-IN12" devices, for devices with their
internal mic connected to IN1, or IN2, or using stereo internal mics
connected to both. This problem resulted in various problems including
the RECMIXL? BST2 switch getting turned on when selecting only
"InternalMic-IN1", as well as confusing the gnome-control-center sound
panel, which could not figure out which device is selected in this case.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2018-12-24 12:45:48 +01:00
João Paulo Rechi Vita
40e72e02eb module-alsa-card: Update the active profile's availability last
The previous commit introduces logic in module-switch-on-port-available
that may change a card's active profile when its availability changes to
PA_AVAILABLE_NO. To choose the new active profile, it needs a consistent
view of the new availability of all profiles, so this commit changes the
order which the ALSA driver updates all profiles' availability to ensure
the active profile is last.

This is not generic enough to cover cases were we may want to take an
action on availability changes of profiles other than the active one
that also need a consistent view of all profiles' availability. But we
don't have any callbacks implementing such action at the moment.
2018-12-14 10:22:59 +02:00
João Paulo Rechi Vita
30a551bbc4 switch-on-port-available: Check if we need to change the active profile
When a port becomes unavailble its profile may also become unavailable.
If that profile is the card's active profile, we need to switch the
card's active profile to a different one.

If we don't do that a card may get stuck on a profile without available
ports, but its sink and source will still exist, preventing
module-rescue-streams to move the streams to a different card with
available ports.

The relation between port availability and profile availability is
defined by the driver, and for the ALSA driver a profile is considered
available if there is at least one (available || unknown) port for each
direction implemented by the profile. Because of that we can only check
the profile's availability and priority when looking for the best
profile and don't need to look at port's priorities.

https://phabricator.endlessm.com/T24904
2018-12-14 10:10:26 +02:00
Hongxu Jia
3d9deb1e56 build-sys: introduce a special build flag to explicitly disables running from build tree
It is helpful to improve reproducibility build [1] since
PA_SRCDIR/PA_BUILDDIR contains build path,
--disable-running-from-build-tree could drop these macros at
precompilation.

[1] https://reproducible-builds.org/

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2018-12-11 16:15:32 +02:00
João Paulo Rechi Vita
bae8c16bfa switch-on-connect: Do not ignore HDMI sinks
HDMI ports are normally present on cards connected to an internal bus,
and module-switch-on-connect should switch to them when a HDMI monitor
is plugged.

This is specially relevant on setups where the HDMI port of a machine is
connected to a different audio card then the analog outputs, which is
the case for machines with AMD graphics cards.
2018-11-22 11:26:42 +02:00
Zakhary Husak
3454c19f3c alsa-mixer: Add support for 2018 Arctis 7 2018-11-21 08:57:41 +02:00
Tanu Kaskinen
f2199f879a raop: fix typo: modules -> modulus 2018-11-20 10:26:11 +02:00
Tanu Kaskinen
2ee5dffffb raop: add error handling to rsa_encrypt()
When reviewing another change in rsa_encrypt(), Felipe Sateler pointed
out some deficiencies in error handling. This patch adds error handling
for all openssl calls in rsa_encrypt().

This patch doesn't propagate the error all the way up to the
pa_rtsp_client owner, because there's no mechanism for doing that. I
could implement such mechanism myself, but I think it's better I don't
make such complex changes to the RAOP code, because I don't have any
RAOP hardware to test the changes. The result is that module-raop-sink
will just sit around without doing anything. I think this is still
better than having no error handling at all.
2018-11-20 10:17:17 +02:00