platform/upstream/pulseaudio.git
9 years agoUpdate NEWS for 7.0 release v7.0
Arun Raghavan [Thu, 24 Sep 2015 03:23:06 +0000 (08:53 +0530)]
Update NEWS for 7.0 release

9 years agoi18n: Update Slovak translation
Dušan Kazik [Wed, 23 Sep 2015 07:49:25 +0000 (13:19 +0530)]
i18n: Update Slovak translation

9 years agotests: Fix test-suite failure on Alpha
Michael Cree [Tue, 15 Sep 2015 04:38:41 +0000 (10:08 +0530)]
tests: Fix test-suite failure on Alpha

Pulseaudio fails to build on the Alpha architecture due to a failure
in the volume-test of the test suite.  I had reported this to the
Debian bug tracker [1] but the maintainer has asked that I forward the
patch to this mail list.  The failure in volume-test occurs because it
is compiled with -ffast-math which implies -ffinite-math-only of which
the gcc manual states that it optimizes for floating-point arithmetic
with the assumption that arguments and results are not NaNs or
+/-infinity, and futher notes that it may result in incorrect output.
On the Alpha platform that is somewhat an understatement as the use of
non-finite floating-point arithmetic with -ffinite-math-only results in
a floating-point exception and the termination of the program.

The volume-test converts volumes into decibels (so a zero volume
becomes a negative infinity) and proceeds to add two volumes (in
decibels), thus does arithmetic with non-finite floating point numbers
despite being compiled with -ffast-math!

I attach a patch that protects against the arithmetic with non-finite
numbers for your consideration.  With that patch the test-suite passes
on Alpha.

Cheers
Michael.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798248

9 years agolfe-filter: Deal with empty input chunks
Arun Raghavan [Thu, 17 Sep 2015 04:14:49 +0000 (09:44 +0530)]
lfe-filter: Deal with empty input chunks

It is possible that we get a zero-length memchunk to work with.
Specifically, this happens the resampler (which is called before the
lfe-filter) consumes all the input data, but does not (yet) produce any
output data.

Reproduced using:

  pulseaudio --resample-method=soxr-mq
  pactl load-module module-null-sink sink_name=lfe_test channels=3 channel_map=front-left,front-right,lfe
  paplay --raw /dev/zero --rate=48000 -d lfe_test

Thanks to the original reporter for the backtrace:

Bug: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1496577

9 years agomodules: Fix entry leak in module-card-restore
Peter Meerwald [Mon, 14 Sep 2015 15:23:29 +0000 (17:23 +0200)]
modules: Fix entry leak in module-card-restore

CID 1323585

entry_read() allocates an entry which must be freed

9 years agocore: Add missing return on protocol error
Peter Meerwald [Mon, 14 Sep 2015 15:50:36 +0000 (17:50 +0200)]
core: Add missing return on protocol error

CID 1323582

when a protocol error occors, better bail out :)

9 years agodaemon: No need to check optarg, -p requires argument
Peter Meerwald [Mon, 14 Sep 2015 14:54:59 +0000 (16:54 +0200)]
daemon: No need to check optarg, -p requires argument

CID 1323589

getopt() makes sure that we have an argument for -p
remove the broken check for optarg being set

9 years agoloopback: Fix the obviously-wrong "buffer+=buffer" logic
Alexander E. Patrakov [Sat, 12 Sep 2015 14:27:56 +0000 (19:27 +0500)]
loopback: Fix the obviously-wrong "buffer+=buffer" logic

Originally pointed out by Georg Chini.

Calculating buffer = buffer + (send_counter - recv_counter)
in one branch and buffer = 2 * buffer - (recv_counter - send_counter)
looks very obviously wrong. In other words, before the patch, the
contribution from the previous lines was double-counted.

9 years agobuild-sys: add sb-omni-surround-5.1.conf to Makefile.am v6.99.2
Tanu Kaskinen [Sat, 12 Sep 2015 13:42:43 +0000 (16:42 +0300)]
build-sys: add sb-omni-surround-5.1.conf to Makefile.am

This is needed to get the file included in the release tarballs.

9 years agobuild-sys: bump sonames
Tanu Kaskinen [Sat, 12 Sep 2015 13:23:03 +0000 (16:23 +0300)]
build-sys: bump sonames

There were a couple of bug fixes to libpulse since 6.99.1.

9 years agosink, source: Do not dereference freed memory when freeing the next events
Felipe Sateler [Fri, 11 Sep 2015 23:15:21 +0000 (20:15 -0300)]
sink, source: Do not dereference freed memory when freeing the next events

Coverity IDs: 1138197, 1138196

9 years agoutil: pa_get_fqdn: always free addrinfo
Felipe Sateler [Fri, 11 Sep 2015 23:15:20 +0000 (20:15 -0300)]
util: pa_get_fqdn: always free addrinfo

Also fix the return error code check of getaddrinfo call

Coverity ID: 1323587

9 years agoi18n: Update Polish translation
Piotr Drąg [Fri, 28 Aug 2015 14:29:58 +0000 (16:29 +0200)]
i18n: Update Polish translation

9 years agoFix return code check of pa_append_to_home_dir
Felipe Sateler [Fri, 11 Sep 2015 00:42:48 +0000 (21:42 -0300)]
Fix return code check of pa_append_to_home_dir

It returns negative on error, zero on success.

Found by coverity

9 years agobuild-sys: fix order of libraries installation
Zavadovsky Yan [Thu, 27 Aug 2015 20:56:23 +0000 (23:56 +0300)]
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>
9 years agomodule: Always remove freed module from modules_pending_unload
David Henningsson [Thu, 3 Sep 2015 07:43:01 +0000 (09:43 +0200)]
module: Always remove freed module from modules_pending_unload

pa_module_free is called from more than one place, not all of
these places correctly removed the module from the
modules_pending_unload array, potentially causing a dangling pointer
in that array.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agocore-util: include xlocale.h when using strtod_l()
Tanu Kaskinen [Wed, 20 May 2015 19:35:28 +0000 (22:35 +0300)]
core-util: include xlocale.h when using strtod_l()

Based on some googling, strtod_l() is defined in xlocale.h on BSD.
Glibc seems to define it in stdlib.h, but only if GNU extensions are
enabled (otherwise the function won't be available). So, this patch
should fix the use of strtod_l() on BSDs, but on other systems things
may or may not be still broken.

The original patch author is Jakob Fink <jfink@gmx.at>. He sent this
patch to the freebsd-gnome mailing list:
http://lists.freebsd.org/pipermail/freebsd-gnome/2015-April/032138.html

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90285
9 years agobuild-sys: check strtod_l instead of strtof_l
Tanu Kaskinen [Wed, 20 May 2015 19:35:27 +0000 (22:35 +0300)]
build-sys: check strtod_l instead of strtof_l

We have no strtof_l calls in the code, so it doesn't make sense to
check that function's availability. We have one strtod_l call, so
let's check that instead.

I don't know if this change makes any practical difference. I just
wondered why we had HAVE_STRTOF_L ifdefs in core-util.c for code that
didn't use strtof_l.

9 years agoalsa-mixer: sb-omni-surround-5.1.conf: remove analog-surround-40 mapping
Tanu Kaskinen [Mon, 10 Aug 2015 15:22:38 +0000 (17:22 +0200)]
alsa-mixer: sb-omni-surround-5.1.conf: remove analog-surround-40 mapping

It was reported that the 4.0 mode doesn't work properly:
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23677/focus=23904

9 years agoalsa-mixer: sb-omni-surround-5.1.conf: rename analog-stereo to analog-stereo-output
Tanu Kaskinen [Thu, 6 Aug 2015 10:13:54 +0000 (12:13 +0200)]
alsa-mixer: sb-omni-surround-5.1.conf: rename analog-stereo to analog-stereo-output

The mapping is only useful for output, and this renaming makes the
name symmetric with the input mapping.

9 years agoalsa-mixer: Add support for Creative SoundBlaster Omni Surround 5.1 USB sound card
Nazar Mokrynskyi [Wed, 3 Jun 2015 15:32:09 +0000 (17:32 +0200)]
alsa-mixer: Add support for Creative SoundBlaster Omni Surround 5.1 USB sound card

Mic and Line in inputs were not working at all, since they use the
hw:x,1,0 device, which is not supported in the default configuration.

9 years agoupdate NEWS for 7.0 v6.99.1
Tanu Kaskinen [Thu, 27 Aug 2015 16:16:46 +0000 (19:16 +0300)]
update NEWS for 7.0

9 years agobuild-sys: bump sonames
Tanu Kaskinen [Thu, 27 Aug 2015 16:02:23 +0000 (19:02 +0300)]
build-sys: bump sonames

In this release cycle, libpulse had some internal code changes, but no ABI
changes.

libpulse-simple and libpulse-mainloop-glib had no changes whatsoever.

9 years agoalsa: Clarify potentially confusing device port data field
Arun Raghavan [Tue, 25 Aug 2015 15:42:05 +0000 (21:12 +0530)]
alsa: Clarify potentially confusing device port data field

The meaning of the code is unchanged here, but it is clearer that the
PA_DEVICE_PORT_DATA field is a struct ucm_port pointer.

9 years agoalsa-mixer: Drop redundant conditional frees
Arun Raghavan [Tue, 25 Aug 2015 13:57:24 +0000 (19:27 +0530)]
alsa-mixer: Drop redundant conditional frees

The dynarrays are allocated unconditionally, so the free need not be
conditional.

9 years agoucm: Add support for "JackHWMute"
Tanu Kaskinen [Mon, 4 May 2015 18:03:45 +0000 (21:03 +0300)]
ucm: Add support for "JackHWMute"

JackHWMute is used to list devices that get forcibly muted by
a particular jack. We mark ports unavailable based on that
information.

9 years agoucm: Create only one jack object per kcontrol
Tanu Kaskinen [Mon, 4 May 2015 18:03:44 +0000 (21:03 +0300)]
ucm: Create only one jack object per kcontrol

Previously the UCM code created one jack object per device name (which
is not the same thing as creating one jack object per device, because
the UCM device namespace is scoped on per-verb basis, so devices in
different verbs may have the same name). I think it's conceptually
cleaner to create one jack object per alsa kcontrol. I plan to do
similar refactoring on the traditional mixer code later.

9 years agoalsa: Move UCM port availability updating to the mixer code
Tanu Kaskinen [Mon, 4 May 2015 18:03:43 +0000 (21:03 +0300)]
alsa: Move UCM port availability updating to the mixer code

Previously module-alsa-card assigned to pa_alsa_jack.plugged_in
directly, and then did the port availability updating manually. The
idea of pa_alsa_jack_set_plugged_in() is to move the availability
updating to the mixer infrastructure, where it really belongs.

Similarly, pa_alsa_jack.has_control was previously modified directly
from several places. The has_control field affects the port
availability, and pa_alsa_jack_set_has_control() takes care of
updating the availability.

For now, pa_alsa_jack_set_plugged_in() and
pa_alsa_jack_set_has_control() only update the port availability
when using UCM. My plan is to adapt the traditional mixer code later.

9 years agoalsa: Add associations between jacks, UCM devices and UCM ports
Tanu Kaskinen [Mon, 4 May 2015 18:03:42 +0000 (21:03 +0300)]
alsa: Add associations between jacks, UCM devices and UCM ports

These associations will be used by subsequent UCM jack detection
refactoring work.

9 years agoucm: Don't create separate input and output jacks
Tanu Kaskinen [Mon, 4 May 2015 18:03:41 +0000 (21:03 +0300)]
ucm: Don't create separate input and output jacks

The UCM spec doesn't support separate input and output jacks, so it's
redundant to have separate input and output jacks in
pa_alsa_ucm_device.

9 years agoalsa: Add pa_alsa_jack_new() and pa_alsa_jack_free()
Tanu Kaskinen [Mon, 4 May 2015 18:03:40 +0000 (21:03 +0300)]
alsa: Add pa_alsa_jack_new() and pa_alsa_jack_free()

This reduces code duplication in alsa-mixer.c and alsa-ucm.c. No
functional changes.

9 years agoalsa-mixer: Add "Front Line Out" and "Rear Line Out"
David Henningsson [Fri, 21 Aug 2015 06:46:21 +0000 (08:46 +0200)]
alsa-mixer: Add "Front Line Out" and "Rear Line Out"

"Front Line Out" was found in the wild on one of the machines we enable.
I figured I could just as well add "Rear Line Out" too, because that's
just as likely to show up.

As a reminder, "Front Line Out" means "a line out jack physically located
on the front side", where as "Line Out Front" means "a line out jack
playing back front left and front right channels in a channel map".

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agobuild-sys: make error message visible
Tanu Kaskinen [Mon, 10 Aug 2015 15:44:53 +0000 (17:44 +0200)]
build-sys: make error message visible

This helps figuring out why bootstrap.sh is failing...

Directing the error message to /dev/null was very strange. I don't
know what the original motivation might have been. My guess is that
it was added unintentionally.

9 years agoalsa-mixer: Add descriptions for analog-stereo-input and analog-stereo-output mappings
Tanu Kaskinen [Thu, 6 Aug 2015 10:19:12 +0000 (12:19 +0200)]
alsa-mixer: Add descriptions for analog-stereo-input and analog-stereo-output mappings

These mapping names are used in sb-omni-surround-5.1.conf, which needs
to use separate mappings for input and output, since they are
associated with different alsa devices.

9 years agopulse: Document client libraries logging behavior
Ahmed S. Darwish [Fri, 14 Aug 2015 14:35:18 +0000 (16:35 +0200)]
pulse: Document client libraries logging behavior

Document how to modify the client libraries logging behvaior
using any of the PA-specific environment variables.

Using the PULSE_LOG_* environment variables makes debugging
and tracing PA applications quite easy, thus the need for an
official documentation text.

Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
9 years agoRemoved exclamation marks from user-visible messages.
Deepak Srivastava [Mon, 15 Jun 2015 12:04:07 +0000 (17:34 +0530)]
Removed exclamation marks from user-visible messages.

<EP-E358F00C1D9A449EAE69225B9D2530F8>
According to rationale-"http://techbase.kde.org/Projects/Usability/HIG/Exclamation_points" as suggested in reported bug.
Component: misc

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=78563
Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
9 years agopatcl: Error msg from pactl not quite accurate for 'mute' commands
Deepak Srivastava [Thu, 11 Jun 2015 06:43:20 +0000 (12:13 +0530)]
patcl: Error msg from pactl not quite accurate for 'mute' commands

<EP-E358F00C1D9A449EAE69225B9D2530F8>
Updated the error string for mute commands in pactl. If someone forget to specify
the parameter on the commandline the resulting error message isn't quite right.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90117
Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
9 years agopacmd: Placeholders describing command line options should not have spaces
Manish Sogi [Thu, 11 Jun 2015 06:16:54 +0000 (11:46 +0530)]
pacmd: Placeholders describing command line options should not have spaces

<EP-F69A421D31544C56BDE97C590307C014>
Buglink: https://bugs.freedesktop.org/show_bug.cgi?id=78565
Signed-off-by: Manish Sogi <manish.sogi@samsung.com>
9 years agomodules: Fix struct namespace collision on Solaris
Shawn Walker [Wed, 29 Jul 2015 02:39:41 +0000 (08:09 +0530)]
modules: Fix struct namespace collision on Solaris

9 years agobuild-sys: Fix up setting the bash completion dir
Arun Raghavan [Tue, 28 Jul 2015 04:39:20 +0000 (10:09 +0530)]
build-sys: Fix up setting the bash completion dir

This makes setting up the bash completion dir consistent with the other
cases that we need to deal with, and also handles distcheck correctly.

9 years agobuild-sys: Make echo-cancel use speex cflags/libs conditionally
Arun Raghavan [Tue, 28 Jul 2015 04:02:25 +0000 (09:32 +0530)]
build-sys: Make echo-cancel use speex cflags/libs conditionally

9 years agobuild-sys: Fix distcheck for systemd user unit dir
Arun Raghavan [Tue, 28 Jul 2015 04:01:48 +0000 (09:31 +0530)]
build-sys: Fix distcheck for systemd user unit dir

9 years agocombine-sink: Fix unsafe message handling
Tanu Kaskinen [Sat, 27 Jun 2015 15:36:35 +0000 (18:36 +0300)]
combine-sink: Fix unsafe message handling

This fixes a crash. sink_input_pop_cb() drains the message queue that receives
memchunks from the combine sink thread to avoid requesting more audio too soon.
The same message queue received also SET_REQUESTED_LATENCY messages, which
generate rewind requests. Rewind requests shouldn't be issued in the pop()
callback, doing so results in an assertion error. Therefore, it was not safe to
drain the message queue in the pop() callback, but usually the queue is empty,
so this bug was not immediately detected.

This patch splits the message queue into two queues: audio_inq and control_inq.
audio_inq receives only messages containing memchunks, and control_inq receives
only the SET_REQUESTED_LATENCY messages. The pop() callback only drains the
audio queue, which avoids the rewind requests in the pop() callback.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90489
9 years agopadsp: Avoid possible deadlock. Unlocked i->mainloop before returning from default...
Deepak Srivastava [Thu, 2 Jul 2015 05:15:09 +0000 (10:45 +0530)]
padsp: Avoid possible deadlock. Unlocked i->mainloop before returning from default case.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=91184
Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agoxen: Resource leak in local function alloc_gref() - alloc_fd and dev_fd
Manish Sogi [Thu, 2 Jul 2015 04:24:19 +0000 (09:54 +0530)]
xen: Resource leak in local function alloc_gref() - alloc_fd and dev_fd

The file descriptors need to be closed in failure cases otherwise resource
leak is there.

Buglink: https://bugs.freedesktop.org/show_bug.cgi?id=91174#c0
Signed-off-by: Manish Sogi <manish.sogi@samsung.com>
9 years agomodule: Warn about modules loaded after unload
David Henningsson [Thu, 11 Jun 2015 12:00:08 +0000 (14:00 +0200)]
module: Warn about modules loaded after unload

We have crashes related to modules loaded after unload. This added
warning can provide some information about what that module is,
which in turn can help us solve the crashes, hopefully.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90108
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agoequalizer: Handle underlying sink going away better when autoloaded
Arun Raghavan [Tue, 9 Jun 2015 07:01:12 +0000 (12:31 +0530)]
equalizer: Handle underlying sink going away better when autoloaded

Detailed description in fix for module-echo-cancel.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90416

9 years agoecho-cancel: Handle underlying sink going away better when autoloaded
Arun Raghavan [Tue, 9 Jun 2015 06:40:01 +0000 (12:10 +0530)]
echo-cancel: Handle underlying sink going away better when autoloaded

When we the underlying sink/source goes away, there is an intermediate
state where the asyncmsgqs that we were using for the sink-input and
source-output go away. This is usually okay if the sink-input and
source-output are moved to another device, but can be problematic if we
don't support moving (which is the case when the filter is autoloaded).

This becomes a problem because of the following chain of events:

  * The underlying sink goes away

  * Moving the filter sink-input fails (because it is autloaded)
    * At this point the sink-input has no underlying sink, and thus
      no underlying asyncmsgq
    * This also applies to all sink-inputs connected to the echo-cancel
      module

  * The sink-input is killed, triggering a module unload

  * On unlink, module-rescue-streams tries to move sink-inputs to
    another sink, starting with a START_MOVE message

  * There is no asyncmsgq for the message, so we crash
    * We can't just perform a NULL check for the asyncmsgq, since there
      are state changes we need to effect during the move

To fix this, we pretend to allow the move to the new sink, and then
unlink ourselves *after* the move is complete. This ensures that we
never find ourselves in a position where we need the underlying
sink/asyncmsgq to be present when it is not.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90416

9 years agoalways-sink: Ignore filter sinks
Arun Raghavan [Tue, 9 Jun 2015 06:37:44 +0000 (12:07 +0530)]
always-sink: Ignore filter sinks

We don't want to count filter sinks towards the list of actual sinks,
since those also need a real underlying sink to exist.

9 years agosink,source: Add a helper function to check whether this is a filter
Arun Raghavan [Tue, 9 Jun 2015 06:36:48 +0000 (12:06 +0530)]
sink,source: Add a helper function to check whether this is a filter

9 years agostream: Support extended API with PULSE_LATENCY_MSEC if possible
Arun Raghavan [Thu, 11 Jun 2015 05:31:30 +0000 (11:01 +0530)]
stream: Support extended API with PULSE_LATENCY_MSEC if possible

This only works in the single-format case (i.e. we know the format
up-front and we're not negotiating).

9 years agostream: Check sample spec validity before abiding PULSE_LATENCY_MSEC
David Henningsson [Wed, 10 Jun 2015 15:29:54 +0000 (17:29 +0200)]
stream: Check sample spec validity before abiding PULSE_LATENCY_MSEC

In case the sample spec is not known, as can be the case when
pa_stream_new_extended is used, we cannot satisfy the PULSE_LATENCY_MSEC
request.

As a workaround disable being able to use PULSE_LATENCY_MSEC in this case.

Reported-by: Fritsch <fritsch@xbmc.org>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agoecho-cancel: Add config.h in adrian-aec.c
David Henningsson [Fri, 12 Jun 2015 06:51:21 +0000 (08:51 +0200)]
echo-cancel: Add config.h in adrian-aec.c

This fixes a compiler warning on some platform.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90881
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agoman: fix reference to --daemonize option
Felipe Sateler [Thu, 11 Jun 2015 00:30:08 +0000 (21:30 -0300)]
man: fix reference to --daemonize option

Even if --daemon is also accepted, --daemonize is the correct name of
the option.

9 years agorescue-streams: Fix a couple of typos
Arun Raghavan [Wed, 10 Jun 2015 11:22:38 +0000 (16:52 +0530)]
rescue-streams: Fix a couple of typos

9 years agorescue-streams: Document a cryptic looking condition
Arun Raghavan [Wed, 10 Jun 2015 11:22:17 +0000 (16:52 +0530)]
rescue-streams: Document a cryptic looking condition

9 years agolfe-filter-test: Use S16NE format
David Henningsson [Tue, 26 May 2015 06:47:46 +0000 (08:47 +0200)]
lfe-filter-test: Use S16NE format

...otherwise this code will fail on big-endian architectures.

Cc: Hui Wang <hui.wang@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agobuild-sys: add winerrno.h to libpulsecommon_SOURCES
Tanu Kaskinen [Sat, 30 May 2015 10:19:52 +0000 (13:19 +0300)]
build-sys: add winerrno.h to libpulsecommon_SOURCES

9 years agocore: make sure we use the correct win32 socket errno:s
Pierre Ossman [Fri, 29 May 2015 14:39:45 +0000 (16:39 +0200)]
core: make sure we use the correct win32 socket errno:s

Modern versions of MinGW and Visual Studio provide socket errno
defines that make no sense (no API sets them). Make sure we
continue to use the old WSAE ones that are actually returned by
Windows' socket API.

Signed-off-by: Pierre Ossman <ossman@cendio.se>
9 years agocore: Work around -Wlogical-not-parentheses warnings
Peter Meerwald [Tue, 26 May 2015 21:35:10 +0000 (23:35 +0200)]
core: Work around -Wlogical-not-parentheses warnings

pulsecore/sink.c: In function 'pa_sink_put':
pulsecore/sink.c:648:53: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     pa_assert(!(s->flags & PA_SINK_DYNAMIC_LATENCY) == (s->thread_info.fixed_latency != 0));
                                                     ^

pulsecore/source.c: In function 'pa_source_put':
pulsecore/source.c:599:55: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     pa_assert(!(s->flags & PA_SOURCE_DYNAMIC_LATENCY) == (s->thread_info.fixed_latency != 0));
                                                       ^
rewrite expression to suppress warning:
!(x & MASK) == (y != 0)
<->
!(x & MASK) == !(y == 0)

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agopadsp: Fix wrong condition discovered by -Wlogical-not-parentheses warning
Peter Meerwald [Tue, 26 May 2015 21:09:50 +0000 (23:09 +0200)]
padsp: Fix wrong condition discovered by -Wlogical-not-parentheses warning

warnings emited by gcc 5.1:

utils/padsp.c: In function 'dsp_trigger':
utils/padsp.c:1902:39: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     while (!pa_operation_get_state(o) != PA_OPERATION_DONE) {
                                       ^
utils/padsp.c: In function 'dsp_cork':
utils/padsp.c:1937:39: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     while (!pa_operation_get_state(o) != PA_OPERATION_DONE) {
                                       ^
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agoi18n: add Occitan translation
Cédric Valmary [Wed, 27 May 2015 10:40:59 +0000 (13:40 +0300)]
i18n: add Occitan translation

9 years agobuild-sys: Install bash completion to where bash-completion.pc says
Ville Skyttä [Sun, 25 Jan 2015 11:38:43 +0000 (13:38 +0200)]
build-sys: Install bash completion to where bash-completion.pc says

Fall back to the previous /etc/bash_completion.d dir on failures
(either old bash completion or not installed).

changes over Ville Skyttä's patch:
define PKG_CHECK_VAR macro which became available only in pkg-config 0.28

see https://bugs.freedesktop.org/show_bug.cgi?id=88782 and
https://bugs.freedesktop.org/show_bug.cgi?id=89540

Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agobiquad: Fix warning, gamma shadows global declaration
Peter Meerwald [Wed, 20 May 2015 15:02:13 +0000 (17:02 +0200)]
biquad: Fix warning, gamma shadows global declaration

pulsecore/filter/biquad.c: In function 'biquad_lowpass':
pulsecore/filter/biquad.c:52:10: warning: declaration of 'gamma' shadows a global declaration [-Wshadow]
pulsecore/filter/biquad.c: In function 'biquad_highpass':
pulsecore/filter/biquad.c:86:10: warning: declaration of 'gamma' shadows a global declaration [-Wshadow]

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agobiquad: Make use of M_SQRT2 constant
Peter Meerwald [Wed, 20 May 2015 14:55:31 +0000 (16:55 +0200)]
biquad: Make use of M_SQRT2 constant

should be in math.h, use it

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agocore: Don't export pa_rtpoll_quit(), only used internally
Peter Meerwald [Wed, 20 May 2015 14:12:43 +0000 (16:12 +0200)]
core: Don't export pa_rtpoll_quit(), only used internally

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

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agopulse: Document pa_mainloop_quit()'s retval parameter
Peter Meerwald [Wed, 20 May 2015 13:52:46 +0000 (15:52 +0200)]
pulse: Document pa_mainloop_quit()'s retval parameter

the argument's name in the header changed to retval to match the implementation

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agodaemon: Exit with code 0 on SIGINT and SIGTERM
Peter Meerwald [Wed, 20 May 2015 23:31:01 +0000 (01:31 +0200)]
daemon: Exit with code 0 on SIGINT and SIGTERM

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

an exit code of 1 makes systemd believe that the service failed;
better return 0 to denote that PA sucessfully stopped on the user's
request

sidenote: systemd's SuccessExitStatus= could be used to turn code 1 into a
code denoting success

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Cc: jan.steffens@gmail.com
9 years agotests: add tolerant variation for comparing the rewind result
Hui Wang [Mon, 25 May 2015 12:05:30 +0000 (20:05 +0800)]
tests: add tolerant variation for comparing the rewind result

On 32bits OS, this test case fails. The reason is when rewinding to
the middle of a block, some of float parameters in the saved_state
are stored in the memory from FPU registers, and those parameters will
be used for next time to process data with lfe. Here if FPU register
is over 32bits, the storing from FPU register to memory will introduce
some variation, and this small variation will introduce small
variation to the rewinding result.

So adding the tolerant variation for comparing the rewind result, make
this test case can work on both 64bits OS and 32bits OS.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
9 years agotests: Remove a redundant mempool_new from resampler-test
Hui Wang [Mon, 25 May 2015 04:49:53 +0000 (12:49 +0800)]
tests: Remove a redundant mempool_new from resampler-test

Signed-off-by: Hui Wang <hui.wang@canonical.com>
9 years agoi18n: update Slovak translation
Dušan Kazik [Fri, 22 May 2015 11:10:01 +0000 (14:10 +0300)]
i18n: update Slovak translation

9 years agoRevert "Warn on loading module-dbus-protocol"
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:59 +0000 (13:50 +0200)]
Revert "Warn on loading module-dbus-protocol"

This reverts commit e2a433b222e2d4b6e85062b979e8ed3dae113aca.

Events are now handled using hooks instead of asynchronous subscription
system.

9 years agodbus: Use hooks for module proplist changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:58 +0000 (13:50 +0200)]
dbus: Use hooks for module proplist changes

9 years agodbus: Use hooks for module new and removed events
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:57 +0000 (13:50 +0200)]
dbus: Use hooks for module new and removed events

9 years agodbus: Use hook for sample cache proplist changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:56 +0000 (13:50 +0200)]
dbus: Use hook for sample cache proplist changes

9 years agodbus: Use hooks for sample cache new and removed events
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:55 +0000 (13:50 +0200)]
dbus: Use hooks for sample cache new and removed events

9 years agocore, core-scache: Fire hooks for new, changed and removed events
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:54 +0000 (13:50 +0200)]
core, core-scache: Fire hooks for new, changed and removed events

(Refactored by David Henningsson)

9 years agomodule: Fire hooks for new, proplist changed and removed
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:52 +0000 (13:50 +0200)]
module: Fire hooks for new, proplist changed and removed

(Unlink callback moved by David Henningsson)

9 years agocore: Add core hooks for module changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:51 +0000 (13:50 +0200)]
core: Add core hooks for module changes

(Name adjusted by David Henningsson)

9 years agoprotocol-native: Fix source latency calculation in ADJUST_LATENCY mode
Arun Raghavan [Mon, 13 Apr 2015 09:23:45 +0000 (14:53 +0530)]
protocol-native: Fix source latency calculation in ADJUST_LATENCY mode

This fixes buffer attr calculation so that we set the source latency to
the requested latency. This makes sense because the intermediate
delay_memblockq is just a mechanism to send data to the client. It
should not actually add to the total latency over what the source
already provides.

With this, the meaning of fragsize and maxlength become more
meaningful/accurate with regards to ADJUST_LATENCY mode -- fragsize
becomes the latency the source is configured for (which is then
approximately the total latency until the buffer reaches the client).
Maxlength, as before, continues to be the maximum amount of data we
might hold for the client before overrunning.

9 years agolfe-filter: Use length modifier `z` for type `size_t`
Paul Menzel [Sun, 3 May 2015 10:52:22 +0000 (12:52 +0200)]
lfe-filter: Use length modifier `z` for type `size_t`

Fix the following warnings.

          CC       pulsecore/filter/libpulsecore_6.0_la-lfe-filter.lo
        pulsecore/filter/lfe-filter.c: In function 'pa_lfe_filter_rewind':
        pulsecore/filter/lfe-filter.c:179:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' [-Wformat=]
                 pa_log_debug("Rewinding LFE filter %lu samples to position %lli. No saved state found", samples, (long long) f->index);
                 ^
        pulsecore/filter/lfe-filter.c:183:5: warning: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' [-Wformat=]
             pa_log_debug("Rewinding LFE filter %lu samples to position %lli. Found saved state at position %lli",
             ^
          CC       pulsecore/filter/libpulsecore_6.0_la-biquad.lo  CC       pulsecore/filter/libpulsecore_6.0_la-lfe-filter.lo
        pulsecore/filter/lfe-filter.c: In function 'pa_lfe_filter_rewind':
        pulsecore/filter/lfe-filter.c:179:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' [-Wformat=]
                 pa_log_debug("Rewinding LFE filter %lu samples to position %lli. No saved state found", samples, (long long) f->index);
                 ^
        pulsecore/filter/lfe-filter.c:183:5: warning: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' [-Wformat=]
             pa_log_debug("Rewinding LFE filter %lu samples to position %lli. Found saved state at position %lli",
             ^

9 years agoman: Document .ifexists CLI meta command
Peter Meerwald [Mon, 4 May 2015 21:48:20 +0000 (23:48 +0200)]
man: Document .ifexists CLI meta command

v2 (thanks Tanu)
* describe purpose and file search

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Cc: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
9 years agoman: Fix typos in pulse-cli-syntax.5
Peter Meerwald [Mon, 4 May 2015 21:05:43 +0000 (23:05 +0200)]
man: Fix typos in pulse-cli-syntax.5

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
9 years agoalsa-mixer: Make line out path unavailable when "Front Headphone" is plugged in
David Henningsson [Tue, 5 May 2015 07:43:32 +0000 (09:43 +0200)]
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>
9 years agoAdd a .travis.yml for Travis CI
Felipe Sateler [Thu, 30 Apr 2015 00:22:56 +0000 (21:22 -0300)]
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.

9 years agooss: Use the correct fd when interacting with the mixer
Tanu Kaskinen [Thu, 30 Apr 2015 10:21:02 +0000 (13:21 +0300)]
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

9 years agocore-util: Make pa_parse_volume() more strict
Tanu Kaskinen [Mon, 27 Apr 2015 11:34:03 +0000 (14:34 +0300)]
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.

9 years agoi18n: Update Ukrainian translation
Yuri Chornoivan [Mon, 20 Apr 2015 12:55:14 +0000 (15:55 +0300)]
i18n: Update Ukrainian translation

9 years agocore-util, pactl: Make one localised and one non-localised version of pa_yes_no
David Henningsson [Mon, 20 Apr 2015 15:36:53 +0000 (17:36 +0200)]
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>
9 years agoAdd korean translation
Wim Taymans [Tue, 7 Apr 2015 14:06:51 +0000 (16:06 +0200)]
Add korean translation

9 years agoudev: Deal with unavailable bus property
Arun Raghavan [Mon, 13 Apr 2015 03:04:54 +0000 (08:34 +0530)]
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)

9 years agodetect: Fix OSS device detection with long names
Andrey Zholos [Mon, 13 Apr 2015 03:00:46 +0000 (08:30 +0530)]
detect: Fix OSS device detection with long names

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=89921

9 years agoalsa-mixer: Add paths/ports for multichannel profile
David Henningsson [Tue, 31 Mar 2015 12:38:04 +0000 (14:38 +0200)]
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>
9 years agoalsa-mixer: Use separate profiles for Multichannel Input/Output
David Henningsson [Tue, 31 Mar 2015 12:38:03 +0000 (14:38 +0200)]
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>
9 years agoudev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices
Takashi Sakamoto [Tue, 31 Mar 2015 12:38:02 +0000 (14:38 +0200)]
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>
9 years agocore-util: Filter out not-a-numbers in pa_atod()
Tanu Kaskinen [Fri, 10 Apr 2015 09:44:02 +0000 (12:44 +0300)]
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).

9 years agopactl: Fix relative volume parsing
Tanu Kaskinen [Wed, 1 Apr 2015 16:40:28 +0000 (19:40 +0300)]
pactl: Fix relative volume parsing

The recent change to reject leading '+' in pa_atod() broke the
relative volume parsing in pactl. This fixes that.

9 years agomodule-switch-*: use pa_module_hook_connect
David Henningsson [Fri, 27 Mar 2015 10:20:16 +0000 (11:20 +0100)]
module-switch-*: use pa_module_hook_connect

Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agomodule-filter-*: use pa_module_hook_connect
David Henningsson [Fri, 27 Mar 2015 10:20:15 +0000 (11:20 +0100)]
module-filter-*: use pa_module_hook_connect

Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
9 years agomodule-alsa-card: use pa_module_hook_connect
David Henningsson [Fri, 27 Mar 2015 10:20:14 +0000 (11:20 +0100)]
module-alsa-card: use pa_module_hook_connect

Refactoring, no functional change.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>