]> code.delx.au - pulseaudio/log
pulseaudio
10 years agodoc: Fix building doxygen docs out of tree
Arun Raghavan [Wed, 12 Jun 2013 13:11:08 +0000 (18:41 +0530)]
doc: Fix building doxygen docs out of tree

10 years agonative: Don't enable prebuffering when draining
Tanu Kaskinen [Tue, 7 May 2013 15:00:34 +0000 (18:00 +0300)]
native: Don't enable prebuffering when draining

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=64284
10 years agoalsa-mixer: Add "Line Out" path
David Henningsson [Tue, 4 Jun 2013 13:41:57 +0000 (15:41 +0200)]
alsa-mixer: Add "Line Out" path

If there is a "Line Out" jack present, then add this path. The fallback
analog-output will be a subset of this path and removed.

I only use the "Line Out Jack" or "Line Out Front Jack" for actual jack
detection - without anything connected to the front jack, it makes little
sense to enable the port.
(Another option could perhaps be to use different paths for stereo line out
and surround line outs, but that could be a possible future improvement.)

10 years agoalsa-mixer: Disable headphones when playing to speakers
Arun Raghavan [Mon, 10 Jun 2013 12:47:39 +0000 (18:17 +0530)]
alsa-mixer: Disable headphones when playing to speakers

Assume that the headphone port volume is lower than the speaker volume.
When plugging in headphones, if the path is active, while the jack is
being inserted and before it is actually detected as being plugged in,
it will still receive the signal being played (which is at a higher
volume than it will be when plugged in completely). The volume
difference manifests as a volume spike when the headphones are plugged
in, before the final volume is set.

This patch is required to prevent such a volume spike when plugging in
headphones. The problem is not fixed completely, but the spike is
shortened. To be fixed completely, we need to apply the port volume
before unmuting the new path.

10 years agocore-util: Clamp RLIMIT_RTTIME to what RealtimeKit accepts
Jan Alexander Steffens (heftig) [Sun, 9 Jun 2013 16:47:05 +0000 (18:47 +0200)]
core-util: Clamp RLIMIT_RTTIME to what RealtimeKit accepts

In the default configuration, PulseAudio's rlimit-rttime is set to
1000000 (100%), which is higher than what RealtimeKit requires from
its clients (200000, 20%).

Make an attempt to still get realtime scheduling by clamping the
current RLIMIT_RTTIME to what RealtimeKit accepts. Warn about doing
this.

10 years ago.gitignore: Add lo-latency-test
Tanu Kaskinen [Thu, 6 Jun 2013 10:56:30 +0000 (13:56 +0300)]
.gitignore: Add lo-latency-test

10 years agobuild-sys: Do not AC_SUBST *_CFLAGS and *_LIBS
Javier Jardón [Thu, 6 Jun 2013 09:25:56 +0000 (11:25 +0200)]
build-sys: Do not AC_SUBST *_CFLAGS and *_LIBS

PKG_CHECK_MODULES() already do that for us

10 years agobuild-sys: Use build-aux directory to store autogenerated files
Javier Jardón [Wed, 17 Apr 2013 08:53:41 +0000 (10:53 +0200)]
build-sys: Use build-aux directory to store autogenerated files

10 years agobuild-sys: Use autoreconf in bootstrap.sh
Javier Jardón [Wed, 17 Apr 2013 08:53:40 +0000 (10:53 +0200)]
build-sys: Use autoreconf in bootstrap.sh

10 years agotests: Make loopback latency test more accurate
Arun Raghavan [Mon, 27 May 2013 08:57:42 +0000 (14:27 +0530)]
tests: Make loopback latency test more accurate

This makes sure that we always take the timing at the point when we
write out the pulse, making the overall latency measurement more
accurate.

10 years agotests: Factor out loopback setup code
Arun Raghavan [Thu, 23 May 2013 09:57:40 +0000 (15:27 +0530)]
tests: Factor out loopback setup code

This moves over setup code for the loopback latency test into a private
library so that we can easily write more tests using the same framework.

10 years agotests: Adjust latency test calibration
Arun Raghavan [Wed, 22 May 2013 10:29:24 +0000 (15:59 +0530)]
tests: Adjust latency test calibration

This makes the test more robust by:

1. Decreasing the '1' threshold during calibration - the RMS value for
   the sine wave will be 0.5, so the previous code was making us take
   the ALSA mixer past 0dB.

2. Using the difference rather than absolute value for 0->1 transitions,
   so that we're somewhat independent noise in our calculations.

10 years agotests: Make loopback latency test run with rt priority
Arun Raghavan [Wed, 22 May 2013 06:33:47 +0000 (12:03 +0530)]
tests: Make loopback latency test run with rt priority

10 years agotests: Add a latency measurement test
Arun Raghavan [Tue, 21 May 2013 13:09:30 +0000 (18:39 +0530)]
tests: Add a latency measurement test

This test is intended to measure real latency by playing a sample to a
sink and capturing that over a loopback interface. The loopback can
either be physical (cable running from headphone out to line in) or
virtual (monitor source or module loopback).

Also included in this is calibration code to make sure that volumes are
sufficiently adjusted to be able to detect the played back signal (and
that there aren't false positives due to line noise).

One of the objectives of all this is to later factor out the setup code
to allow us to easily write more loopback tests for various
functionality (volumes, resampling, mixing, etc.).

10 years agobluetooth: Fix input port description
Tanu Kaskinen [Fri, 24 May 2013 12:17:13 +0000 (15:17 +0300)]
bluetooth: Fix input port description

10 years agozeroconf: Make Avahi usage in m-z-publish async
Arun Raghavan [Wed, 15 May 2013 04:11:19 +0000 (09:41 +0530)]
zeroconf: Make Avahi usage in m-z-publish async

This pushes all avahi-client code to a threaded mainloop from the PA
mainloop context. We need to do this because avahi-client makes blocking
D-Bus calls, and we don't want to block the mainloop for that long.

The only exception to this now that I don't see a workaround for is
during module unload time. However, this shouldn't be a huge problem
since in most cases, this will only happen at server shutdown time.

The bulk of the change is partitioning the data so that PA core objects
only (well, mostly) get accessed in the PA mainloop and Avahi calls
happen only in the Avahi threaded mainloop.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=58758

10 years agomainloop: Add API to set thread name for threaded mainloop
Arun Raghavan [Wed, 15 May 2013 04:07:45 +0000 (09:37 +0530)]
mainloop: Add API to set thread name for threaded mainloop

10 years agopulsecore: Fix assert in pa_msgobject creation
Arun Raghavan [Wed, 15 May 2013 04:06:17 +0000 (09:36 +0530)]
pulsecore: Fix assert in pa_msgobject creation

Allows for creation of derived types that don't have any other fields.

10 years agoshell-completion: Add list-cards to the pacmd completion.
poljar (Damir Jelić) [Wed, 22 May 2013 12:58:10 +0000 (14:58 +0200)]
shell-completion: Add list-cards to the pacmd completion.

The list-cards command was missing for both of the shell completions.
This fixes it.

10 years agorescue-streams: Fix wording of module description
Peter Meerwald [Wed, 15 May 2013 07:57:56 +0000 (09:57 +0200)]
rescue-streams: Fix wording of module description

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agointended-roles: Fix typo in module description
Peter Meerwald [Wed, 15 May 2013 07:53:30 +0000 (09:53 +0200)]
intended-roles: Fix typo in module description

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agopactl: Use colon to separate priority in profiles output
Peter Meerwald [Wed, 15 May 2013 07:39:26 +0000 (09:39 +0200)]
pactl: Use colon to separate priority in profiles output

for example:
  Profiles:
input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority. 60)
output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority. 6000)

it should be "priority: xxx", not "priority. xxx"

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agothread-mainloop: Fix bug in example code
Mitchell Fang [Wed, 22 May 2013 08:23:27 +0000 (11:23 +0300)]
thread-mainloop: Fix bug in example code

Checking the operation state caused a deadlock, because the state
won't change before my_drain_callback() returns, and it doesn't
return before my_drain_stream_func() calls
pa_threaded_mainloop_accept().

10 years agocli: Fix plural in caption of source-outputs list
Peter Meerwald [Wed, 15 May 2013 15:49:42 +0000 (17:49 +0200)]
cli: Fix plural in caption of source-outputs list

$ pacmd list-source-outputs
>>> 4 source outputs(s) available.

outputs(s) makes no sense

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agobluetooth: Support transport auto-release
Mikel Astiz [Fri, 10 May 2013 08:30:47 +0000 (10:30 +0200)]
bluetooth: Support transport auto-release

With BlueZ 5, if the remote device suspends the audio, the transport
state will change to "idle" and the endpoint is not required to release
the transport, since this could introduce race conditions. Therefore,
ignore the call to pa_bluetooth_transport_release() if the transport is
not acquired any more.

10 years agobluetooth: Update to new BlueZ 5 transport acquire/release API
Mikel Astiz [Fri, 10 May 2013 08:30:46 +0000 (10:30 +0200)]
bluetooth: Update to new BlueZ 5 transport acquire/release API

The new D-Bus API doesn't support access rights, which weren't used by
PulseAudio anyway, but it does solve a race condition: now optional
acquires can be implemented by bluetooth-util atomically using the D-Bus
TryAcquire() method.

10 years agobluetooth: Support media transport's State property
Mikel Astiz [Fri, 10 May 2013 08:30:45 +0000 (10:30 +0200)]
bluetooth: Support media transport's State property

BlueZ 5 exposes a 'State' property in the media transport interface.
With regard to PA, this replaces the profile-specific interfaces, since
they were being used to know if the audio was streaming or not.

10 years agobluetooth: Parse media transport's properties
Mikel Astiz [Fri, 10 May 2013 08:30:44 +0000 (10:30 +0200)]
bluetooth: Parse media transport's properties

Add the code to parse the properties of the media transport object when
a PropertiesChanged signal is received.

Note that the transport might have an owner other than BlueZ, and thus
the property changes would be emitted from arbitrary senders. For
performance reasons, the installed match considers the interface name
where the property has changed.

It could be possible to install and remove the D-Bus matches dynamically
when a new owner is registered/unregistered, but filtering based on the
interface name seems good enough already.

10 years agobluetooth: Support Properties.PropertiesChanged signal
Mikel Astiz [Fri, 10 May 2013 08:30:43 +0000 (10:30 +0200)]
bluetooth: Support Properties.PropertiesChanged signal

Install matches for signal Properties.PropertiesChanged and process the
properties corresponding to the tracked devices.

10 years agobluetooth: Support ObjectManager interface add/remove
Mikel Astiz [Fri, 10 May 2013 08:30:42 +0000 (10:30 +0200)]
bluetooth: Support ObjectManager interface add/remove

Install matches for signals ObjectManager.InterfacesAdded and
ObjectManager.InterfacesRemoved, and process the devices that are
registered and unregistered dynamically.

10 years agocore: Add an "internal" suspend cause
Arun Raghavan [Mon, 23 Jul 2012 08:50:05 +0000 (14:20 +0530)]
core: Add an "internal" suspend cause

This lets us suspend devices from within the core for short periods
without having to overload one of the existing suspend causes.

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

10 years agopactl: Flush stdout buffer when printing subscribe events.
Nikolay Amiantov [Sun, 5 May 2013 11:22:53 +0000 (15:22 +0400)]
pactl: Flush stdout buffer when printing subscribe events.

"pactl subscribe" is running continuously, and without flushing its output is
not usable for "process-on-arrival" per-line tasks, such as grepping. This
patch should fix this. For example, now:
pactl subscribe | grep 'server'
should print only server events as they arrive.

10 years agobluetooth: BlueZ 5 interface rename to org.bluez.MediaTransport1
Mikel Astiz [Mon, 29 Apr 2013 16:28:04 +0000 (18:28 +0200)]
bluetooth: BlueZ 5 interface rename to org.bluez.MediaTransport1

Use the new interface name if BlueZ 5 has been detected.

10 years agobluetooth: BlueZ 5 interface rename to org.bluez.Media1
Mikel Astiz [Mon, 29 Apr 2013 16:28:03 +0000 (18:28 +0200)]
bluetooth: BlueZ 5 interface rename to org.bluez.Media1

Use the new interface name if BlueZ 5 has been detected.

10 years agobluetooth: BlueZ 5 interface rename to org.bluez.MediaEndpoint1
Mikel Astiz [Mon, 29 Apr 2013 16:28:02 +0000 (18:28 +0200)]
bluetooth: BlueZ 5 interface rename to org.bluez.MediaEndpoint1

Use the new interface name if BlueZ 5 has been detected.

10 years agobluetooth: Fix error checking style
Tanu Kaskinen [Wed, 1 May 2013 10:39:36 +0000 (13:39 +0300)]
bluetooth: Fix error checking style

10 years agobluetooth: Parse the tree returned by ObjectManager
Mikel Astiz [Mon, 29 Apr 2013 16:27:59 +0000 (18:27 +0200)]
bluetooth: Parse the tree returned by ObjectManager

Parse the result of ObjectManager.GetManagedObjects(), which includes
all objects registered, their interfaces and the corresponding
properties per interface.

10 years agobluetooth: Detect BlueZ 5
Mikel Astiz [Mon, 29 Apr 2013 16:27:58 +0000 (18:27 +0200)]
bluetooth: Detect BlueZ 5

Check the existence of ObjectManager to detect the version of the
running daemon. If the interface exists, it should be BlueZ 5.

10 years agomodule: Assign the index before calling init()
Tanu Kaskinen [Mon, 29 Apr 2013 13:46:13 +0000 (16:46 +0300)]
module: Assign the index before calling init()

Any code that runs inside the init() callback sees an invalid module
index. Sometimes init() does things that cause hooks to be fired. This
means that any code that uses hooks may see an invalid module index.
Fix this by assigning the module index before init() is called.

There are no known issues in the upstream code base where an invalid
module index would be used, but an out-of-tree module
(module-murphy-ivi) had a problem with this.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=63923
10 years agobluetooth: Remove the 'bluez.name' property
João Paulo Rechi Vita [Sat, 27 Apr 2013 00:24:52 +0000 (21:24 -0300)]
bluetooth: Remove the 'bluez.name' property

The 'Name' property of the Device interface became optional in BlueZ 5
and may not be present anymore (that happens when testing against the
PTS 4.7.0), so it's better not to expose it to clients so they don't
rely on its existence.

10 years agobluetooth: Use 'Alias' value as the device description
João Paulo Rechi Vita [Sat, 27 Apr 2013 00:26:36 +0000 (21:26 -0300)]
bluetooth: Use 'Alias' value as the device description

The 'Alias' property should be preffered over the 'Name' property,
according to the BlueZ API documentation.

10 years agobluetooth: Add 'bluez.alias' property
João Paulo Rechi Vita [Fri, 26 Apr 2013 15:30:24 +0000 (12:30 -0300)]
bluetooth: Add 'bluez.alias' property

10 years ago.gitignore: Ignore src/*.gcno files created when building with --enable-gcov
Peter Meerwald [Wed, 17 Apr 2013 07:49:03 +0000 (09:49 +0200)]
.gitignore: Ignore src/*.gcno files created when building with --enable-gcov

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agoswitch-on-port-available: Silence gcc warning.
poljar (Damir Jelić) [Fri, 19 Apr 2013 14:35:14 +0000 (16:35 +0200)]
switch-on-port-available: Silence gcc warning.

This silences this gcc warning:
module-switch-on-port-available.c:111:12: warning:
    'good' may be used uninitialized in this function

10 years agomodule: initialize module index to invalid value.
Ismo Puustinen [Fri, 12 Apr 2013 14:38:12 +0000 (17:38 +0300)]
module: initialize module index to invalid value.

m->init() was called while m->index was uninitialized, which was bad
style.

10 years agofdsem: Remember pa_write() type in pa_fdsem_post()
Peter Meerwald [Tue, 9 Apr 2013 14:10:16 +0000 (16:10 +0200)]
fdsem: Remember pa_write() type in pa_fdsem_post()

pa_write() knows two types of operation:
calling send() and calling write()

there is a flag (a pointer to an int) passed to pa_write()
which can remember which write type was successful

if the pointer is NULL or the int is 0, send() is tried first,
with a fallback to write() if send() resulted in ENOTSOCK

pa_fdsem_post() calls pa_write() with a NULL pointer;
unfortunately (at least with HAVE_SYS_EVENTFD_H #define'd) send()
always fails here and write() is called -- causing an extra syscall
quite frequently

strace:
send(17, "\1\0\0\0\0\0\0\0", 8, MSG_NOSIGNAL) = -1 ENOTSOCK (Socket operation on non-socket)
write(17, "\1\0\0\0\0\0\0\0", 8) = 8

the patch adds a write_type field to pa_fdsem to the successful
pa_write() type can be remembered and unnecessary send() calls are
avoided

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agopasuspender: Resume before exiting in case of SIGINT or fork() failure.
Tanu Kaskinen [Wed, 13 Jun 2012 09:45:16 +0000 (12:45 +0300)]
pasuspender: Resume before exiting in case of SIGINT or fork() failure.

Pressing Ctrl-C in a terminal while pasuspender is running
causes the sinks and sources to stay suspended after
pasuspender has exited, which is very annoying. This patch
fixes that problem, and also a similar problem with fork()
failures.

10 years agoalsa: Don't use pa_strna() for port names
Tanu Kaskinen [Fri, 29 Mar 2013 15:17:14 +0000 (17:17 +0200)]
alsa: Don't use pa_strna() for port names

The name variable is never NULL, so there's no point in using
pa_strna().

10 years agocore-util: Don't accept random words in pa_parse_boolean()
Tanu Kaskinen [Wed, 13 Jun 2012 08:15:03 +0000 (11:15 +0300)]
core-util: Don't accept random words in pa_parse_boolean()

The old code accepted any word that started with "y", "Y",
"n", "N", "t", "T", "f" or "F". Fix this by having
a whitelist of full strings instead of checking just the
first letter.

10 years agobuild: make ARM NEON check in configure.ac more strict
Peter Meerwald [Thu, 28 Mar 2013 13:46:48 +0000 (14:46 +0100)]
build: make ARM NEON check in configure.ac more strict

the check for NEON so far only checked if -mfpu=neon is understood by the compiler,
however, this is not enough:

(i) #include <arm_neon.h> should be checked
(ii) -mfpu=neon must be passed before CFLAGS because eventually the per-library CFLAGS
for NEON code in src/Makefile.am are passed to the compiler before the global CFLAGS

in case the build environment passes CFLAGS to configure and we try to set conflicting
CFLAGS option, the former take precedence; CFLAGS cannot be overridden

this does not fix
http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-December/015570.html
but at least makes the build fail in configure (and not while compiling stuff)
and gives better diagnostics

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
10 years agodevice-port: Introduce pa_device_port_new_data
poljar (Damir Jelić) [Thu, 28 Mar 2013 11:05:11 +0000 (12:05 +0100)]
device-port: Introduce pa_device_port_new_data

Port creation is now slightly different. It is now similar to how
other objects are created (e.g. sinks/sources/cards).

This should become more useful in the future when we move more stuff to
the ports.

Functionally nothing has changed.

10 years ago.gitignore: Update m4/ ignore list
Tanu Kaskinen [Thu, 28 Mar 2013 08:49:27 +0000 (10:49 +0200)]
.gitignore: Update m4/ ignore list

10 years agobuild-sys: Use upstream gettext instead glib one
Javier Jardón [Wed, 27 Mar 2013 14:00:36 +0000 (14:00 +0000)]
build-sys: Use upstream gettext instead glib one

10 years agobluetooth: Improve code and log readability
João Paulo Rechi Vita [Wed, 27 Mar 2013 13:45:33 +0000 (10:45 -0300)]
bluetooth: Improve code and log readability

This commit makes the code cleaner, avoiding unnecessary line breaks. It
also changes the debug message elements order, to make it look more
natural ("path, interface, member" instead of "interface, path,
member").

10 years agobluetooth: Remove unnecessary braces
João Paulo Rechi Vita [Wed, 27 Mar 2013 13:45:32 +0000 (10:45 -0300)]
bluetooth: Remove unnecessary braces

10 years agodevice-port: Make it impossible to have dual-direction ports
Tanu Kaskinen [Fri, 29 Jun 2012 15:04:59 +0000 (18:04 +0300)]
device-port: Make it impossible to have dual-direction ports

10 years agoalsa-mixer: Remove the "name" option from the "General" section of path configuration...
Tanu Kaskinen [Fri, 29 Jun 2012 15:04:58 +0000 (18:04 +0300)]
alsa-mixer: Remove the "name" option from the "General" section of path configuration files

This means that the path names will always correspond to the
path configuration file names, so they will automatically be
unique (in the scope of one card).

10 years agoalsa-mixer: Introduce "description-key" option for paths
Tanu Kaskinen [Fri, 29 Jun 2012 15:04:57 +0000 (18:04 +0300)]
alsa-mixer: Introduce "description-key" option for paths

Previously the path description was looked up based on the
path name only. Since there can be multiple paths that use
the same description, it had to be possible to have multiple
paths with the same name.

Having the same name with multiple paths makes identifying
the paths more complex than necessary, so the plan is to
make it impossible to have paths with the same name. This
patch prepares for that by retaining the possibility to
still have the same description with multiple paths. Instead
of the path name, the path description is looked up by using
the "path description key" if it is set (path name is still
used as a fallback lookup key).

10 years agoswitch-on-port-available: Fix error reporting style
Tanu Kaskinen [Wed, 27 Mar 2013 14:06:04 +0000 (16:06 +0200)]
switch-on-port-available: Fix error reporting style

10 years agoswitch-on-port-available: Remove a redundant function argument
Tanu Kaskinen [Wed, 27 Mar 2013 14:05:26 +0000 (16:05 +0200)]
switch-on-port-available: Remove a redundant function argument

10 years agoswitch-on-port-available: Prepare for dual-direction ports going away
Tanu Kaskinen [Fri, 29 Jun 2012 15:04:56 +0000 (18:04 +0300)]
switch-on-port-available: Prepare for dual-direction ports going away

As an extra, I broke try_to_switch_profile() into smaller
functions, because the two levels of loops with continue
statements inside both were a bit hard to follow.

10 years agobuild-sys: Bump soname
Arun Raghavan [Mon, 3 Jun 2013 18:43:42 +0000 (00:13 +0530)]
build-sys: Bump soname

10 years agoAdd a NEWS file
Arun Raghavan [Mon, 3 Jun 2013 18:38:14 +0000 (00:08 +0530)]
Add a NEWS file

Short version based on Tanu's longer notes posted on list (and now on
the wiki, linked from this file.

10 years agoosx: Fix latency querying
Vadim Troshchinskiy [Wed, 29 May 2013 10:58:36 +0000 (13:58 +0300)]
osx: Fix latency querying

get_latency_us() used an uninitialized variable, and an incorrect
scope for some of the AudioObjectGetPropertyData() calls. As a result,
audio would randomly not work at all.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=65122
10 years agobuild-sys: Bump soname
Arun Raghavan [Thu, 23 May 2013 03:04:17 +0000 (08:34 +0530)]
build-sys: Bump soname

We dropped pa_format_info_free2 as an exposed symbol, but this was never
exposed via headers, so not counting this as ABI change.

10 years agortp: Reset timestamp with correct size if not found
David Henningsson [Wed, 22 May 2013 11:26:24 +0000 (13:26 +0200)]
rtp: Reset timestamp with correct size if not found

This fixes a compiler warning when building under Ubuntu.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
10 years agomodule-device-manager: Fix description restore
David Henningsson [Wed, 22 May 2013 11:21:24 +0000 (13:21 +0200)]
module-device-manager: Fix description restore

e->description is a pointer, not a fixed char array. Hence it
makes no sense to use strncmp.

This fixes a compiler warning when compiling under Ubuntu.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
10 years agocore-util: Add pa_safe_streq
David Henningsson [Wed, 22 May 2013 12:08:19 +0000 (14:08 +0200)]
core-util: Add pa_safe_streq

Like pa_streq, but does not blow up on NULL pointers.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
10 years agosink-input,source-output: Deal with FIX* flags and extended API
Arun Raghavan [Mon, 13 May 2013 16:03:22 +0000 (21:33 +0530)]
sink-input,source-output: Deal with FIX* flags and extended API

The sample spec fixup when FIX* flags are set was not being propagated
to the pa_format_info, causing the two to be out of sync when FIX* was
used.

10 years agobluetooth: Fix missing port->profile association
Mikel Astiz [Mon, 20 May 2013 09:48:33 +0000 (11:48 +0200)]
bluetooth: Fix missing port->profile association

Commit 17b3cb954b179392e80b0a46d8f2ba4693aec386 merged Bluetooth ports
into two ports (one for input, one for output) but the association
between ports and profiles was lost.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=64713
10 years agobluetooth: Create ports before card profiles
Mikel Astiz [Mon, 20 May 2013 09:48:32 +0000 (11:48 +0200)]
bluetooth: Create ports before card profiles

Both operations are currently independent and their order can therefore
be swapped.

10 years agosink-input/source-output: Don't set save_volume if volume is not writable
David Henningsson [Wed, 15 May 2013 12:20:08 +0000 (14:20 +0200)]
sink-input/source-output: Don't set save_volume if volume is not writable

This fixes a later assertion failure in module-stream-restore.

Buglink: https://bugs.launchpad.net/bugs/896602
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
10 years agomap-file: Remove pa_format_info_free2
Tanu Kaskinen [Mon, 20 May 2013 07:56:42 +0000 (10:56 +0300)]
map-file: Remove pa_format_info_free2

The function doesn't exist anymore.

10 years agoalsa-mixer: Add "Line Out Jack" to analog-output.conf
David Henningsson [Thu, 16 May 2013 08:56:21 +0000 (10:56 +0200)]
alsa-mixer: Add "Line Out Jack" to analog-output.conf

A stationary computer usually has headphone jack(s) and line out jacks.
In some cases analog-output.conf will be a subset of
analog-output-headphones.conf, causing line outs to be unusable (because
headphones are unplugged).

This late in the cycle, this was the safest way I could think of to try
to fix this for a particular computer. In later versions of PulseAudio
we could consider making a dedicated line out path instead, and have
proper jack detection there.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoalsa: Fix crash when profile_set == NULL
David Henningsson [Tue, 14 May 2013 09:01:13 +0000 (11:01 +0200)]
alsa: Fix crash when profile_set == NULL

Better check if the pointer is NULL before dereferencing it, instead of
after!

BugLink: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1159853
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agopo: Fix error in hungarian translation
David Henningsson [Tue, 14 May 2013 03:49:11 +0000 (05:49 +0200)]
po: Fix error in hungarian translation

The stray %s caused PulseAudio to crash.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoecho-cancel: Fix send/recv_counter in calc_diff()
Peter Meerwald [Mon, 22 Apr 2013 13:36:12 +0000 (15:36 +0200)]
echo-cancel: Fix send/recv_counter in calc_diff()

send_counter/recv_counter relate to the bytes (play stream) passed
through the queue, hence the same sample spec must be used

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
Acked-by: Stefan Huber <shuber@sthu.org>
11 years agoalsa-mixer: Don't use the mono path in the analog-stereo mapping.
Tanu Kaskinen [Wed, 12 Sep 2012 13:03:59 +0000 (16:03 +0300)]
alsa-mixer: Don't use the mono path in the analog-stereo mapping.

As far as I can see, having a mono path in a stereo mapping doesn't
make any sense. It also causes breakage: if the Master Mono mixer
element has two volume channels, the analog-output path gets removed
due to being a subset of analog-output-mono, and that in turn causes
the Master element getting muted. Users generally don't like that.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=54673
11 years agodoc: Reword description of meta commands in pulse-cli-syntax.5
Peter Meerwald [Wed, 17 Apr 2013 13:07:32 +0000 (15:07 +0200)]
doc: Reword description of meta commands in pulse-cli-syntax.5

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agodoc: Fix description how boolean values can be specified
Peter Meerwald [Wed, 17 Apr 2013 13:07:31 +0000 (15:07 +0200)]
doc: Fix description how boolean values can be specified

"any word starting with the letters" parts; this does not hold
any longer with commit 0e29e7365907ffbe90df768a4dea277dba40d495
core-util: Don't accept random words in pa_parse_boolean()

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agodoc: Mention just one CLI language in default.pa.5
Peter Meerwald [Wed, 17 Apr 2013 13:07:30 +0000 (15:07 +0200)]
doc: Mention just one CLI language in default.pa.5

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agopstream: Fix case in log message
Peter Meerwald [Wed, 17 Apr 2013 13:16:36 +0000 (15:16 +0200)]
pstream: Fix case in log message

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agobuild-sys: json-c changed everything :(
Arun Raghavan [Sat, 27 Apr 2013 03:27:05 +0000 (08:57 +0530)]
build-sys: json-c changed everything :(

json-c 0.11 ships a pkg-config file with a different name, and changes
the name of its library as well.

11 years agoalsa-mixer: Switch to Headphone when Headphone mic jack is plugged in
David Henningsson [Tue, 16 Apr 2013 04:40:40 +0000 (06:40 +0200)]
alsa-mixer: Switch to Headphone when Headphone mic jack is plugged in

When a "Headphone Mic" jack becomes available, we do not know if
a headphone or a mic has been plugged in. Therefore, setting both
paths to "unknown" is, in theory, the correct thing to do.
However, in practice, people are more likely to plug in a headphone
rather than a mic. Therefore, allow autoswitch to the headphone port
when the jack is plugged in.

A more advanced implementation would consider what was plugged in last
time depending on what port was selected on the input side at that
time, and set availability accordingly. However, such an implementation
will have to wait (probably at least until we have our fancy routing
system implementation).

Buglink: https://bugs.launchpad.net/bugs/1169143
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoalsa-mixer: Allow input fallback port for devices with no gain control
David Henningsson [Wed, 24 Apr 2013 08:59:42 +0000 (10:59 +0200)]
alsa-mixer: Allow input fallback port for devices with no gain control

I recently came across a device without any ALSA-level mixer controls,
everything was physical knobs on the hardware.

This patch enables that device to get a port too ("Analog Input").

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoalsa: Fix ELD access warning on shutdown
David Henningsson [Tue, 16 Apr 2013 12:56:35 +0000 (14:56 +0200)]
alsa: Fix ELD access warning on shutdown

The hdmi_eld_changed callback is called by alsa-lib at shutdown.
In that case, just exit instead of trying to access something with
already closed handles.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agodefault.pa: Load switch-on-port-available before udev-detect
David Henningsson [Tue, 16 Apr 2013 11:09:38 +0000 (13:09 +0200)]
default.pa: Load switch-on-port-available before udev-detect

We need to pick the right port as early as possible, before the
first volume is picked up. Hence this module needs to be loaded
before the sound card modules are loaded.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agomodule-switch-on-port-available: Handle hotplugged cards
David Henningsson [Tue, 16 Apr 2013 14:20:36 +0000 (16:20 +0200)]
module-switch-on-port-available: Handle hotplugged cards

If a card is hot-plugged (which all cards will be when we load
this module before module-*-detect), make sure we don't start up
a sink with an unavailable port selected.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoalsa: Initialize ports before sinks/sources
David Henningsson [Tue, 16 Apr 2013 13:17:37 +0000 (15:17 +0200)]
alsa: Initialize ports before sinks/sources

This way port availability has been filled in when we create the
sink, which will later enable us to pick the right port directly.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoi18n: Update Polish translation
Piotr Drąg [Tue, 16 Apr 2013 18:03:57 +0000 (20:03 +0200)]
i18n: Update Polish translation

11 years agopulsecore: Make run-from-build not readlink() on every call
Arun Raghavan [Sat, 20 Apr 2013 04:42:34 +0000 (10:12 +0530)]
pulsecore: Make run-from-build not readlink() on every call

Since this is no longer only defined in debug builds, let's make sure
that there is no impact if this is indavertently called repeatedly at
startup.

11 years agodaemon: Fix dlsearchpath while running from build tree
Arun Raghavan [Sat, 20 Apr 2013 04:20:38 +0000 (09:50 +0530)]
daemon: Fix dlsearchpath while running from build tree

It appears that, libltdl will find the .la file in the builddir and
figure out where the real .so is.

This also requires .ifexists to be fixed up to correspondingly search in
<dlsearchpath>/.libs.

11 years agorygel: Set DLNA profile on our MediaItems
Arun Raghavan [Fri, 19 Apr 2013 09:34:45 +0000 (15:04 +0530)]
rygel: Set DLNA profile on our MediaItems

We know we always serve up LPCM, and exposing this via D-Bus lets Rygel
set the appropriate metadata while presenting the raw (i.e.
non-transcoded) stream to clients.

11 years agodoc: Explain PULSE_SERVER string in pulseaudio.1
Peter Meerwald [Fri, 12 Apr 2013 08:53:00 +0000 (10:53 +0200)]
doc: Explain PULSE_SERVER string in pulseaudio.1

first attempt to document the "server string"
See https://bugs.freedesktop.org/show_bug.cgi?id=62444

quite a bit is missing: [hostname], defaults

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
11 years agodoc: Document PULSE_COOKIE in pulseaudio.1
Peter Meerwald [Fri, 12 Apr 2013 09:27:54 +0000 (11:27 +0200)]
doc: Document PULSE_COOKIE in pulseaudio.1

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
11 years agoalsa-source: Fix log message
João Paulo Rechi Vita [Tue, 16 Apr 2013 22:26:27 +0000 (19:26 -0300)]
alsa-source: Fix log message

The log message when updating the source sample rate wrongly mentions
"Sink" instead of "Source". This was probably a copy and paste error.

11 years agodoc: Some more nitpicking in pulse/def.h doxygen documentation
Peter Meerwald [Wed, 10 Apr 2013 16:59:22 +0000 (18:59 +0200)]
doc: Some more nitpicking in pulse/def.h doxygen documentation

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agodoc: Mostly fixing up i.e. versus i.e.\ in doxygen documentation
Peter Meerwald [Wed, 10 Apr 2013 16:59:21 +0000 (18:59 +0200)]
doc: Mostly fixing up i.e. versus i.e.\ in doxygen documentation

same for e.g. versus e.g.\ and e.g. versus E.g.

this is ueber-nitpicking: will anybody ever notice?

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
11 years agoalsa-mixer: Change profile-sets directory to PA_SRCDIR
David Henningsson [Tue, 16 Apr 2013 12:44:05 +0000 (14:44 +0200)]
alsa-mixer: Change profile-sets directory to PA_SRCDIR

A recent patch changed the path files from PA_BUILDDIR to PA_SRCDIR.
Do the same to the profile-set files for consistency (and to fix
out of tree builds).

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agoFix various typos in messages and comments
Yuri Chornoivan [Sat, 13 Apr 2013 18:32:57 +0000 (21:32 +0300)]
Fix various typos in messages and comments