Commit graph

9005 commits

Author SHA1 Message Date
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
5a6e45f5b4 meson: Add a sanity check regarding echo cancellers
Taken straight out of the configure.ac file.

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
7b748483a1 meson: Make webrtc optional
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
912a62c561 meson: Make udev optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
fe6d0d382f meson: Make speex 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
911b12c150 meson: Make lirc optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
d9b0c66e30 meson: Make fftw optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
68a86dded4 meson: Make jack optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
2fea4c7c01 meson: Use assert() to validate the prefix
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:56 +05:30
Arnaud Rebillout
edd9c60984 meson: Fix bluez5 version requirement
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
d984da3fea meson: Make avahi optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
9a0060d208 meson: Make systemd optional
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
9c4e72112a meson: Also set HAVE_ALSA when alsa is enabled
Just following the configure file.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
54900beb59 meson: Make alsa optional
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
c57b68efde meson: Make x11 optional, bump meson requirement
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:54 +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
b709c8a14b meson: Add a comment to mark the beginning of the configuration data section
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
1e86d616f5 meson: Add a sanity check to the prefix option
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
Arnaud Rebillout
1b7fab22a4 dockerfile: Install Meson from upstream tarball
This is because the meson build requires meson 0.47, which is not
available in the current Ubuntu LTS (18.04).

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-17 09:36:31 +05:30
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
jorisc90
fe6a9a8f59 alsa-mixer: Update to support Arctis Pro Wireless headset
The Arctis 7 configuration can be used as is - the ALSA PCM and mixer
interfaces are the same.
2018-11-16 13:33:57 +02:00
Sangchul Lee
547998db44 alsa-sink/source, sink, source: Consider sample format for avoid-resampling/passthrough
Sample format(e.g. 16 bit, 24 bit) was not considered even if the
avoid-resampling option is set or the passthrough mode is used.
This patch checks both sample format and rate of a stream to
determine whether to avoid resampling in case of the option is set.
In other word, it is possble to use the stream's original sample
format and rate without resampling as long as these are supported
by the device.

pa_sink_input_update_rate() and pa_source_output_update_rate() are
renamed to pa_sink_input_update_resampler() and pa_source_output
_update_resampler() respectively.

functions are added as below.
 pa_sink_set_sample_format(), pa_sink_set_sample_rate(),
 pa_source_set_sample_format(), pa_source_set_sample_rate()

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2018-11-16 08:30:05 +02:00
Alexander E. Patrakov
73156649e7 resampler: Fix confusion between rear and side channels for 5.1 layouts
mpv and vlc play "normal" 5.1 AC3 and DTS files as if they had a
"5.1 (Side)" layout. Which is fine and consistent with ITU
recommendations if the user has a proper 7.1 system. But if the user
actually has a 5.1 system, PulseAudio will try to remap, poorly, between
the "5.1 (Side)" and "5.1" layouts, sending either an average between
front and rear channels, or an attenuated version of that average,
depending on the remixing-use-all-sink-channels setting.

This is not desired, the "Side" channels should be sent to "Rear", it is
only an unfortunate nomenclature confusion.

This patch does not fix 5.1 <-> 7.1 remixing.

Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
2018-11-15 09:48:14 +02:00
Tanu Kaskinen
3e80e0f777 alsa-mixer: swap lineout and headphone priorities
Headphones should have higher priority than lineout. Many people have
speakers always connected to lineout, and when plugging in headphones,
the audio should move to the headphones, which requires headphones
to have higher priority than lineout.

Previously this was handled by marking lineout unavailable when plugging
in headphones, but we don't do that any more.
2018-10-28 13:15:53 +02:00
Tanu Kaskinen
78dfb8043b alsa-mixer: don't make lineout unavailable when headphones are plugged in
This reverts commit 66f97c35bd. The commit
message was:

    alsa-mixer: Disable line-out if headphone jack is plugged

    Line-out gets muted when headphones are plugged in on HDA cards, encode
    this in the line-out path so pulse can match that state.

I don't think the mentioned auto-muting happens any more by default,
and some users want to use lineout while having headphones plugged in.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/583
2018-10-28 13:10:36 +02:00
Tanu Kaskinen
874fe7b15d .gitignore: add passthrough-test 2018-10-23 19:18:26 +03:00
Tanu Kaskinen
fa2a753477 daemon-conf: fix printing avoid-resampling in pa_daemon_conf_dump()
The bool was inverted for some reason - maybe because the next line
prints enable-remixing that needs to be inverted from disable_remixing,
and somehow this logic was accidentally copied to the avoid-resampling
handling.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/568
2018-10-23 18:35:09 +03:00
Arun Raghavan
ee1160f2ef gitignore: Ignore cscope files 2018-10-21 17:00:31 +01:00