Commit graph

626 commits

Author SHA1 Message Date
Shawn Walker
b727dd540b build-sys: don't use the nodelete linker flag on executables
The nodelete flag indicates that we don't want our libraries to be
unloaded. It's only relevant on libraries, so let's not use it for
executables. Trying to use it on executables breaks things on some
platforms.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90878
2015-09-25 17:29:02 +05:30
Tanu Kaskinen
11d22f97cf build-sys: add sb-omni-surround-5.1.conf to Makefile.am
This is needed to get the file included in the release tarballs.
2015-09-12 16:42:43 +03:00
Zavadovsky Yan
5271f28145 build-sys: fix order of libraries installation
Libraries from modlibexec_LTLIBRARIES list require
not only libpulsecommon but also libpulse and
libpulsecore from lib_LTLIBRARIES list.

This patch fix race in 'make -j X install' (with X is 2 and more)
when building/installing inside chroot placed on RAM-disk(tmpfs).

Signed-off-by: Zavadovsky Yan <zavadovsky.yan@gmail.com>
2015-09-10 16:09:55 +03:00
Arun Raghavan
6a12d96233 build-sys: Make echo-cancel use speex cflags/libs conditionally 2015-07-28 09:32:25 +05:30
Tanu Kaskinen
53b6b9df19 build-sys: add winerrno.h to libpulsecommon_SOURCES 2015-05-30 13:19:52 +03:00
Hui Wang
98e01c8a9c tests: adding lfe-filter-test
so far, this test only includes rewind test, it works as below:
let lfe-filter process 2 blocks mono lfe channel audio samples, the
sample format is PA_SAMPLE_S16LE, save the processed data to the temp
buffer, then rewind the lfe-filter back 1 block and 1.5 blocks
respectively, reprocess the audio samples from the rewind position,
then comparing the output data with previously saved data.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
2015-03-30 10:52:30 +02:00
David Henningsson
979f19a434 lfe-filter: Enable LFE filter in the resampler
When enable-lfe-remixing is set, an LFE channel is present in the
resampler's destination channel map but not in the source channel map,
we insert a low-pass filter instead of just averaging the channels.
Other channels will get a high-pass filter.

In this patch, the crossover frequency is hardcoded to 120Hz (to be fixed
in later patches).

Note that in current state the LFE filter is
 - not very optimised
 - not rewind friendly (rewinding can cause audible artifacts)

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 10:52:29 +02:00
Andrey Semashev
6ea00eeb07 Added libsoxr detection and optional build of soxr resampler backend. 2015-02-12 20:36:59 +01:00
Arun Raghavan
a4c600e375 build-sys: libwebrtc-util needs libpulsecore 2015-02-02 13:13:36 +02:00
Ondrej Holecek
5effc83479 update FSF addresses to FSF web page
FSF addresses used in PA sources are no longer valid and rpmlint
generates numerous warnings during packaging because of this.
This patch changes all FSF addresses to FSF web page according to
the GPL how-to: https://www.gnu.org/licenses/gpl-howto.en.html

Done automatically by sed-ing through sources.
2015-01-14 22:20:40 +02:00
David Henningsson
580f468900 build-sys: Don't build srbchannel-test on targets without srbchannel
Reported-by: Felipe Sateler <fsateler@debian.org>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2014-12-03 11:48:52 +01:00
David Henningsson
1ffede3c85 bluez 5: Build both headset backends, if available
Enable both ofono and native backends to be built into the same
libbluez5-util. Never build the null backend.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2014-11-14 11:44:33 +01:00
Mauro Guerrera
5445d17c36 build-sys: Fix daemon linking when building with systemd-daemon support
Seems that after commit 467b4b9be systemd usage has been added into
src/daemon/main.c but there is no link for the corresponding
library in the final pulseaudio binary.

This might be missed in some build systemd due to overlinking,
but it's correct to add this in here explicitly

Signed-off-by: Colin Guthrie <colin@mageia.org>
2014-11-10 18:19:30 +00:00
Colin Guthrie
e542e81004 launch: Add systemd units for launching pulseaudio user instances 2014-11-03 12:32:23 +00:00
Colin Guthrie
467b4b9bee socket-server: Add support for systemd socket activation.
This adds support to module-native-protocol-unix to take over already
listening sockets passed in via socket activation (e.g. from systemd)

Most of the code is isolated to socket-server but some cleanup code also
had to be tweaked to ensure we do not overzealously close open fds.
2014-11-03 12:32:23 +00:00
Colin Guthrie
fb1ca6f0c1 build-sys: Add support for newer systemd without compatibility libs
In newer versions of systemd some libraries were combined for the sake of
general simplicity.

This change checks against the newer name first and avoids separate pkgconfig
checks if it's found. We probably want to keep support for the older library
names for some time. systemd does allow for the shipping of compatibility
pkgconfig files to not break downstream code like ourselves which is why this
likely hasn't been "fixed" until now.

With this change we no longer rely on systemd having been built with those
compatibility pkgconfig files.
2014-11-03 12:32:23 +00:00
Colin Guthrie
f7da58b73f build-sys: Clarify some systemd sub-component variable/define names.
We currently use the term SYSTEMD when referring to libsystemd-login
and JOURNAL when referring to libsystemd-journal.

I will be shortly adding support for libsystemd-daemon and in
preparation I figured it would be a good idea to clarify the names
used currently before adding another!
2014-11-03 12:32:23 +00:00
Tanu Kaskinen
052316e419 alsa-mixer: Merge analog-output-desktop-speaker with analog-output-speaker(-always)
According to David[1], it's unlikely that there are any sound cards
that would have separate "speaker" and "desktop speaker" paths, so
let's remove the unnecessary distinction.

[1] http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/20915/focus=21193
2014-10-28 12:29:43 +02:00
Peter Meerwald
eed6d95f49 tests: Remove mix-special-test
code has been moved to cpu-mix-test

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-09-10 17:56:03 +02:00
Peter Meerwald
4ca3216ee3 tests: Split cpu tests in separate files
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-09-10 16:34:11 +02:00
Peter Meerwald
380591eb18 core: Add pa_cpu_init() / cpu.c
move code dealing with CPU specific code path initialization
from daemon/main.c to pulsecore/cpu.c

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-09-10 16:01:14 +02:00
João Paulo Rechi Vita
dca5d07937 bluetooth: Create NULL backend 2014-08-22 12:24:39 +03:00
poljar (Damir Jelić)
72103e1e33 resampler: Split the resampler implementations into separate files
Rebased by Peter Meerwald.

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: poljar (Damir Jelić) <poljarinho@gmail.com>
2014-08-17 11:18:17 +03:00
Alexander E. Patrakov
afbe9605c6 alsa: Add extra HDMI mappings
Remove extra-hdmi.conf, as the performance reasons behind it are invalid
Add 7.1 profiles
Add extra HDMI devices, for a total of 8
Add DTS-encoded profiles (they need dcaenc from git)

Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
2014-08-01 11:01:02 +02:00
David Henningsson
1afec0e5a3 tests: Add pstream/srbchannel test
Runs four tests:
 1) Small packets, iochannel
 2) Big packets, iochannel
 3) Small packets, srbchannel
 4) Big packets, srbchannel

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2014-06-27 14:30:56 +02:00
David Henningsson
0cd4d3531a srbchannel: Add the shared ringbuffer object
An shm ringbuffer that is used for low overhead server-client communication.
Signalling is done through eventfd semaphores - it's based on pa_fdsem to avoid
syscalls if nothing is waiting on the other side.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2014-06-27 14:16:32 +02:00
Javier Jardón
ba925a0213 build-sys: Use AM_CPPFLAGS instead of AM_CFLAGS for preprocessor arguments
As the automake documentation says:

AM_CPPFLAGS: The contents of this variable are passed to every compilation
    that invokes the C preprocessor; it is a list of arguments to the preprocessor.
    For instance, -I and -D options should be listed here

AM_CFLAGS: This is the variable the Makefile.am author can use to pass in
    additional C compiler flags.

http://www.gnu.org/software/automake/manual/html_node/Program-Variables.html
2014-06-26 13:43:23 +03:00
Pierre Ossman
1a26dd3434 build-sys: don't build raop modules on win32 as they need librtp
librtp is very posix-y and cannot currently be built for Windows.
So avoid trying to build any modules that depend on it.
2014-06-06 15:31:09 +03:00
Peter Meerwald
54a10eb915 remap: Add ARM NEON optimized remapping and rearrange code
v7:
* cleanups and reduce code; add 4->4 channels mappings, add rearrange code
v6:
* rename mono_to_stereo_float_neon_a9() to mono_to_stereo_float_arm_generic(); note that
Cortex-A8 and -A9/A15 are different, later chips do not benefit from NEON memory transfers
v5:
* 4-channel remapping
* use vrhadd instruction, fix int16 overflow for to-mono case
v4:
* fix for sample length < 4
v3:
* fix test code: init float and int map_table
* different code path for Cortex-A8 and later (-A9, A15, unknown)
* convert from intrinsics to inline assembly
v2:
* add ARM NEON stereo-to-mono remapping code
* static __attribute__ ((noinline)) is necessary to prevent inlining and
  work around gcc 4.6 ICE, see https://bugs.launchpad.net/bugs/936863
* call test code, the reference implementation is obtained using
  pa_get_init_remap_func()
* remove check for NEON flags
v1:
* ARM NEON mono-to-stereo remapping code

note that orig is the time of the special-case C implementation where available, not
the generic matric remapping implementation

on ARM Cortex-A8 (TI OMAP3 DM3730 @ 1GHz) (Linaro GCC 4.6):

Checking NEON remap (float, mono->stereo)
func: 757474 usec (avg: 7574.74, min = 6165, max = 11963, stddev = 1479.71).
orig: 784882 usec (avg: 7848.82, min = 6835, max = 17639, stddev = 1656.01).
Checking NEON remap (float, mono->4-channel)
func: 1545507 usec (avg: 15455.1, min = 6531, max = 30609, stddev = 2689.6).
orig: 2601413 usec (avg: 26014.1, min = 22796, max = 52979, stddev = 3281.84).
Checking NEON remap (s16, mono->stereo)
func: 343844 usec (avg: 3438.44, min = 1709, max = 8880, stddev = 1180.1).
orig: 474460 usec (avg: 4744.6, min = 4212, max = 7751, stddev = 1069.29).
Checking NEON remap (s16, mono->4-channel)
func: 736574 usec (avg: 7365.74, min = 3784, max = 11902, stddev = 1637.79).
orig: 1062772 usec (avg: 10627.7, min = 7630, max = 17517, stddev = 3011.44).
Checking NEON remap (float, stereo->mono)
func: 571412 usec (avg: 5714.12, min = 4608, max = 15808, stddev = 2131.7).
orig: 4356630 usec (avg: 43566.3, min = 41596, max = 52430, stddev = 2056.79).
Checking NEON remap (float, 4-channel->mono)
func: 1443202 usec (avg: 14432, min = 12298, max = 32349, stddev = 3300).
orig: 9273410 usec (avg: 92734.1, min = 81940, max = 184265, stddev = 23310).
Checking NEON remap (s16, stereo->mono)
func: 185761 usec (avg: 1857.61, min = 1556, max = 4975, stddev = 743.681).
orig: 1204776 usec (avg: 12047.8, min = 10711, max = 16022, stddev = 1596.88).
Checking NEON remap (s16, 4-channel->mono)
func: 482912 usec (avg: 4829.12, min = 4241, max = 9980, stddev = 1270.8).
orig: 1692050 usec (avg: 16920.5, min = 14679, max = 30060, stddev = 2760.7).
Checking NEON remap (float, 4-channel->4-channel)
func: 5324471 usec (avg: 53244.7, min = 49774, max = 87036, stddev = 4255.47).
orig: 73674628 usec (avg: 736746, min = 720338, max = 824128, stddev = 18361.8).
Checking NEON remap (s16, 4-channel->4-channel)
func: 5321320 usec (avg: 53213.2, min = 49591, max = 84443, stddev = 3931.49).
orig: 24122021 usec (avg: 241220, min = 233337, max = 291687, stddev = 9064.31).

Checking NEON remap (float, stereo rearrange)
func: 1116547 usec (avg: 11165.5, min = 9124, max = 27496, stddev = 3345.63).
orig: 1385011 usec (avg: 13850.1, min = 12237, max = 18005, stddev = 1793.05).
Checking NEON remap (s16, stereo rearrange)
func: 517027 usec (avg: 5170.27, min = 4577, max = 9735, stddev = 1215.23).
orig: 1208435 usec (avg: 12084.4, min = 10406, max = 25299, stddev = 2512.02).
Checking NEON remap (float, 4-channel rearrange)
func: 1564667 usec (avg: 15646.7, min = 13855, max = 20172, stddev = 1766.48).
orig: 2970000 usec (avg: 29700, min = 26215, max = 45654, stddev = 2351.07).
Checking NEON remap (s16, 4-channel rearrange)
func: 1088808 usec (avg: 10888.1, min = 9064, max = 23407, stddev = 2465.82).
orig: 1908416 usec (avg: 19084.2, min = 16968, max = 22705, stddev = 1637.46).

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-05-25 18:13:27 +02:00
Tanu Kaskinen
b9147fad0f direction: Add a couple of direction helper functions 2014-03-27 10:02:57 +02:00
Tanu Kaskinen
f46799579f Remove all references to the removed KDE files 2014-03-03 18:06:20 +02:00
Rex Dieter
2b85ae0489 daemon: consolidate startup scripts
simplify pulseaudio autostart into one, avoid needless extra
work for kde, and avoid possible startup races.
2014-03-03 18:06:20 +02:00
Dominique Leuenberger
a360b29a0a build-sys: Move ORC_SOURCE definitions outside of "if HAVE_ORC"
Not having ORC_SOURCE defined results in different tarballs depending on
whether the dev issuing 'make dist' has orc support enabled or disabled.

Specifying ORC_SOURCE unconditionally addresses that, without causing
negative effects on users not having orc in the end.
2014-01-24 22:56:27 +02:00
Tanu Kaskinen
0779caf3e8 build-sys: Add tests/runtime-test-util.h to the tarball
The file is used by three test binaries, but none of them mentioned
it in Makefile.am, which caused the file to be left out of the
tarball.
2014-01-23 20:34:58 +02:00
Tanu Kaskinen
56a1d3613d build-sys: Fix building with --as-needed
pulsecore/core-format.c was recently added to libpulsecommon, and
core-format.c depends on functions in libpulse, which libpulsecommon
doesn't link to. That broke building with --as-needed. This patch adds
pulse/format.c to libpulsecommon, so that core-format.c doesn't need
to depend on libpulse any more. format.c pulls in also the dependency
to json-c.

Reported-By: Jan Steffens <jan.steffens@gmail.com>
2014-01-11 16:47:56 +02:00
Tanu Kaskinen
6cdb569b83 stream-util: Add pa_stream_get_volume_channel_map()
The new function isn't used yet, but it soon will.
2014-01-08 21:26:40 +02:00
Tanu Kaskinen
d2c9b46aca Move pa_format_info_to_sample_spec_fake() to core-format
I will need to use the function from outside libpulse.

I added the channel map argument, because the function will be called
from another function that is expected to initialize the channel map.
I don't know if it's in practice necessary, but it shouldn't do any
harm either.
2014-01-08 21:26:38 +02:00
poljar (Damir Jelić)
d20ee7e7f2 log: Add support for the systemd journal
The journal is a component of systemd, that captures Syslog messages,
Kernel log messages, initial RAM disk and early boot messages as well
as messages written to STDOUT/STDERR of all services, indexes them and
makes this available to the user.

It can be used in parallel, or in place of a traditional syslog daemon,
such as rsyslog or syslog-ng.

The journal offers a couple of improvements over traditional logging
facilities (e.g. advanced filtering capabilities).

This patch adds support for logging directly to the journal using its
native API.
2013-12-20 13:06:04 +01:00
João Paulo Rechi Vita
8753b8c147 bluetooth: Revive module-bluetooth-discover
Create a wrapper module called module-bluetooth-discover to avoid
breaking backward-compatibility of default.pa. This wrapper may
eventually be dropped altoghether with BlueZ 4 support.
2013-09-29 16:54:38 +03:00
João Paulo Rechi Vita
384f4751eb bluetooth: Create module-bluez5-device 2013-09-29 16:54:37 +03:00
João Paulo Rechi Vita
2594909338 bluetooth: Implement org.bluez.MediaEndpoint1.SelectConfiguration() 2013-09-29 16:54:37 +03:00
João Paulo Rechi Vita
0103cd1379 bluetooth: Create pa_bluetooth_discovery for BlueZ 5
pa_bluetooth_discovery is the struct that holds information about known
Bluetooth audio devices and other information about the Bluetooth stack.

This commit also creates bluez5-util.[ch], which will hold a lot of
utility functions to help with the BlueZ 5 support.
2013-09-29 16:54:36 +03:00
João Paulo Rechi Vita
c706792df7 bluetooth: Create stub for module-bluez5-discover 2013-09-29 16:54:36 +03:00
João Paulo Rechi Vita
d7d3a1e2b2 build: Make the build of bluetooth modules BlueZ 4 specific 2013-09-29 16:54:36 +03:00
João Paulo Rechi Vita
4f972aa993 bluetooth: Remove module-bluetooth-proximity
module-bluetooth-proximity has not worked for quite a while, since it
uses pre-BlueZ4 APIs. Nobody complained since then, which is a good
indication that it doesn't have much users. Even the original commit
message refers to it more as a toy than as something of great use: "add
new fun module that automatically mutes your audio devices when you
leave with your bluetooth phone, and unmutes when you come back"

Removing it we completely remove the dependency on libbluetooth.
2013-09-29 16:54:36 +03:00
João Paulo Rechi Vita
e414b5828b bluetooth: Rename bluetooth modules to BlueZ 4 2013-09-29 16:54:36 +03:00
David Henningsson
d909860d8d module-tunnel: Fixup broken build
A recent feature addition added a dependency on X11, but this
dependency was not specified in Makefile.am, leading to linker
errors.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2013-09-18 15:09:03 +02:00
Alexander Couzens
8a2ea2834c tunnel-source-new: counterpart to module-tunnel-sink-new
The old tunnel module duplicates functionality that is in libpulse,
due to implementing the native protocol, and the protocol code in
the old tunnel module tends to get broken every now and then, because
people forget to update the tunnel module protocol implementation
when changing the native protocol. module-tunnel-source-new avoids this
problem by using libpulse to communicate with the remote server.
2013-09-13 10:18:15 +03:00
Alexander Couzens
df0a9e12d8 tunnel-sink-new: add a rewrite of module-tunnel using libpulse
The old tunnel module duplicates functionality that is in libpulse,
due to implementing the native protocol, and the protocol code in
the old tunnel module tends to get broken every now and then, because
people forget to update the tunnel module protocol implementation
when changing the native protocol. module-tunnel-sink-new avoids this
problem by using libpulse to communicate with the remote server.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2013-08-21 16:37:38 +03:00
Tanu Kaskinen
e9822bfcb0 build-sys: Add native-instruments-traktor-audio2.conf to Makefile.am
Thanks to Jan Steffens for reporting the issue.
2013-07-03 15:22:05 +03:00