Commit graph

7979 commits

Author SHA1 Message Date
Peter Meerwald
1edb696c46 man: Fix typos in pulse-cli-syntax.5
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2015-05-05 18:55:08 +02:00
David Henningsson
5598923b8e alsa-mixer: Make line out path unavailable when "Front Headphone" is plugged in
This case was apparently overlooked.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-05-05 16:48:11 +02:00
Felipe Sateler
b620fb444c Add a .travis.yml for Travis CI
Installs all the build dependencies, and runs make check and
check-daemon.

V1: Based on Arun Raghavan's travis file. Added trusty repositories to get
newer libs.

V2: Explicitly list all dependencies instead of relying on the Ubuntu
package Build-Dependencies. Send notifications to pulseaudio-discuss

V3: Install libsystemd-daemon-dev, libsystemd-id128-dev,
libsystemd-journal-dev, and libsystemd-login-dev. Send notifications to
pulseaudio-commits. Drop libjson0-dev, libjson-c-dev is the package to
depend on.
2015-05-05 16:41:13 +05:30
Tanu Kaskinen
2737985f27 oss: Use the correct fd when interacting with the mixer
Adapted from a FreeBSD patch:
http://svnweb.freebsd.org/ports/head/audio/pulseaudio/files/patch-src_modules_oss_module-oss.c?revision=372768&view=markup
2015-04-30 13:21:02 +03:00
Tanu Kaskinen
bae15c420a core-util: Make pa_parse_volume() more strict
Previously pa_parse_volume() clamped the value to fit in the valid
range, but I think it's better to reject values outside the valid
range.

This also changes the percentage parsing to allow non-integer values.
2015-04-29 18:14:27 +03:00
Yuri Chornoivan
f73de5608d i18n: Update Ukrainian translation 2015-04-21 10:56:27 +03:00
David Henningsson
17e939dc15 core-util, pactl: Make one localised and one non-localised version of pa_yes_no
We currently use pa_yes_no to write module arguments, so they can not be
localised. Instead add a new pa_yes_no_localised function and use it in pactl
(and thus, revert all other places to use the non-localised version).

BugLink: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1445358
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-20 17:36:53 +02:00
Wim Taymans
b5ee6280d6 Add korean translation 2015-04-13 17:08:42 +03:00
Arun Raghavan
3f0ab4522a udev: Deal with unavailable bus property
Fixes a compiler warning:

../../src/modules/udev-util.c: In function 'pa_udev_get_info':
../../src/modules/udev-util.c:228:443: warning: 'bus' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (!pa_streq(bus, "firewire") && (v = udev_device_get_property_value(card, "ID_MODEL_FROM_DATABASE")) && *v)
2015-04-13 08:35:53 +05:30
Andrey Zholos
492fa1ff32 detect: Fix OSS device detection with long names
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=89921
2015-04-13 08:32:16 +05:30
David Henningsson
6db74fc3c7 alsa-mixer: Add paths/ports for multichannel profile
This makes the GUIs (e g gnome/unity-control-center) look more consistent
with other inputs/outputs that also have ports.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 16:08:24 +02:00
David Henningsson
02dc6d84ed alsa-mixer: Use separate profiles for Multichannel Input/Output
This works around bug 80850: a mapping can only have one channel map,
and in case of a 6-out 10-in device, the mapping will be adjusted to
have both 10 and 6 channels, which does not work.

Reported-by: Benjamin Tegge <benjaminosm@googlemail.com>
Suggested-by: Raymond Yau <superquad.vortex2@gmail.com>
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=80850
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 16:08:24 +02:00
Takashi Sakamoto
3ac73598c6 udev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices
For recently supported FireWire sound devices, udev's database assign
the name of IEEE 1394 Phy/Link chipset to ID_XXX_FROM_DATABASE. This is
not friently names to users.

This commit applies a workaround to skip ID_XXX_FROM_DATABASE for any
FireWire devices.

[Fixed up by David Henningsson <david.henningsson@canonical.com>]

Reported-by: Andras Muranyi <muranyia@gmail.com>
Reference: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1381475
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 16:08:24 +02:00
Tanu Kaskinen
ef864eeab0 core-util: Filter out not-a-numbers in pa_atod()
We don't and probably never will have any pa_atod() callers that would
require "NaN" to be accepted, so let's filter those out in pa_atod(),
instead of requiring the callers to handle not-a-numbers appropriately
(which they generally forget to do).
2015-04-10 12:58:10 +03:00
Tanu Kaskinen
9860bc30ac pactl: Fix relative volume parsing
The recent change to reject leading '+' in pa_atod() broke the
relative volume parsing in pactl. This fixes that.
2015-04-10 11:19:18 +03:00
David Henningsson
37a7834737 module-switch-*: use pa_module_hook_connect
Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:26:49 +02:00
David Henningsson
10d9d8af5f module-filter-*: use pa_module_hook_connect
Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:26:47 +02:00
David Henningsson
6eae0d4bf4 module-alsa-card: use pa_module_hook_connect
Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:26:45 +02:00
David Henningsson
a5ea142487 module-suspend-on-idle: use pa_module_hook_connect
Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:26:43 +02:00
David Henningsson
619def0c73 module-*-restore: use pa_module_hook_connect
Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:26:40 +02:00
David Henningsson
127e8a1519 module: Add hook dynarray
This small helper will simplify code in many modules.
The hooks added through pa_module_hook_connect will be freed just
before pa__done is called (so trying to add hooks during pa__done
will result in assertion failure).

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-10 09:25:55 +02:00
Arun Raghavan
f0c9321b53 sink-input: Clarify the meaning of rewrite and flush a bit in rewinds 2015-04-06 18:16:55 +05:30
Juho Hämäläinen
42eac216cf dbus: Use hooks for default sink and source changes
[Fixes by David Henningsson <david.henningsson@canonical.com>]
2015-04-02 16:19:20 +02:00
Juho Hämäläinen
3bb69ebfc2 dbus: Use hooks for put and unlink
Use hooks for all events that have core hooks defined. Some events
handled in iface-core don't have hooks so leave those for later.
2015-04-02 16:12:15 +02:00
Juho Hämäläinen
297fdb5c25 namereg: Fire hooks for default sink and source changes 2015-04-02 16:09:47 +02:00
Juho Hämäläinen
88d6724493 core: Add hooks for default sink and source changes 2015-04-02 16:09:34 +02:00
Juho Hämäläinen
86fcc3f445 dbus: Use state changed hook for sink-input and source-output rate changes 2015-04-02 16:09:16 +02:00
Juho Hämäläinen
7f83817edd dbus: Use hooks for sink-input and source-output events 2015-04-02 16:08:51 +02:00
Juho Hämäläinen
5087af78d5 dbus: Use hooks for sink and source events 2015-04-02 16:08:26 +02:00
Juho Hämäläinen
36c3f01cb2 dbus: Use hooks for client proplist changes 2015-04-02 16:08:00 +02:00
Juho Hämäläinen
c324255e3e dbus: Use hooks for card profile events 2015-04-02 16:06:50 +02:00
Milo Casagrande
db05985ea6 Update Italian translation. 2015-04-01 20:04:10 +03:00
René J. V. Bertin
5f24529316 coreaudio: Change error type to OSStatus
CoreAudio routines that return an error status do so with the
OSStatus type, which is not a UInt32: typical OS X errors are
negative numbers.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-01 09:43:05 +02:00
Tanu Kaskinen
1f659cc836 sink, source: Fix a volume change leak
When a sink or source is freed, there may be pending volume changes that
didn't get applied before the IO thread got torn down. Those pending
changes need to be freed.

The memory leak was reported here:
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23162/focus=23169

Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
2015-03-31 20:36:20 +03:00
Tanu Kaskinen
30b6c111a6 .gitignore: Add lfe-filter-test 2015-03-31 12:42:37 +03:00
David Henningsson
2cfc5df87f resampler: Rename "lfe_filter_required" to "lfe_remixed"
Just refactoring to make the variable name better.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 15:12:53 +02:00
David Henningsson
c65a606ae7 resampler: Allow disabling the LFE filter by setting crossover to 0
When crossover_freq is set to 0, this restores the old behaviour
of letting the LFE channel be the average of the source channels,
without additional processing. This can be useful e g in case the
user already has a hardware crossover.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 11:10:56 +02:00
Hui Wang
a9059be749 daemon-conf: enable the lfe remixing by default
Since we have a workable lfe filter, it is time to enable the lfe
remixing by default.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
2015-03-30 10:52:30 +02: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
7fb531d936 resampler: Make some basic functions for rewinding
The resampler framework just forwards the request to the lfe filter.
There are no resampler impl that can rewind yet, so just reset the
resampler impl instead of properly rewinding yet.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 10:52:30 +02:00
David Henningsson
defc2b702b lfe-filter: Add rewind support
Store current filter state at every normal block process.
When a rewind happens, rewind back to the nearest saved state,
then calculate forward to the actual sample position.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 10:52:30 +02:00
David Henningsson
d0e8b0fe07 memblock: Change pa_memblock_new_malloced to an inline function
To avoid the macro trap: I call pa_memblock_new_malloced with
"pa_xmemdup" as data parameter, and that would expand to *two*
calls to pa_xmemdup in case that remains a macro, which is clearly
not intended.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 10:52:30 +02:00
Hui Wang
c36e191ce5 lfe-filter: change the crossover frequency as a parameter
Add a user defined parameter lfe-crossover-freq for the lfe-filter,
to pass this parameter to the lfe-filter, we need to change the
pa_resampler_new() API as well.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
2015-03-30 10:52:30 +02:00
David Henningsson
3538e6636e lfe-filter: Cleanup and refactor
- Remove imported dead code
 - Fix compiler warnings
 - Fix non-GCC compiler compilation (use more portable macros)
 - Change lr4 struct to include a biquad struct

Thanks to Alexander Patrakov for suggesting many of these changes.

Signed-off-by: David Henningsson <david.henningsson@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
David Henningsson
f3ebf6b667 lfe-filter: Import code from the Chrome OS audio server
The chrome OS audio server has some already existing code, which
has been made available under a BSD-style license, which should be
safe to import by us.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-30 10:52:29 +02:00
Sagar Nageshmurthy
ff329cdabb Fix: Prevent calling pa_rtpoll_free() for a NULL rtpoll
Flushing the asyncmsgq can cause arbitrarily callbacks to run, potentially
causing recursion into pa_thread_mq_done again. Because of this; rtpoll which
is cleared in the second iteration is tried to free once again by the first
iteration leading to PA crash.
2015-03-27 14:34:15 +01:00
David Henningsson
498689926f thread-mq: Make pa_thread_mq_done more robust
While investigating bug 89672 it was found that pa_thread_mq_done
was called recursively. Regardless of whether the recursion should
be stopped by other means, it seems to make sense to make
pa_thread_mq_done more robust so that it can be called twice
(and even recursively) without harm.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=89672
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-03-27 14:34:12 +01:00
Tanu Kaskinen
85f5d93306 ucm: Add support for "JackControl"
JackControl is used to indicate the kcontrol name for jack detection.
2015-03-23 19:26:03 +02:00
Sukesh Adiga
80791ceb5a cpu-arm: Fix memory leak in pa_cpu_get_arm_flags() 2015-03-19 15:36:01 +01:00