]> code.delx.au - pulseaudio/log
pulseaudio
11 years agopactl: Add unloading modules by name.
poljar [Wed, 30 May 2012 12:27:25 +0000 (14:27 +0200)]
pactl: Add unloading modules by name.

pactl should allow unloading modules by name.

If there are multiple modules with the same name all
of them will be unloaded.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=48289
11 years agoalsa-source: add missing header 'signal.h'
Eero Nurkkala [Thu, 31 May 2012 07:44:23 +0000 (10:44 +0300)]
alsa-source: add missing header 'signal.h'

Compilation with -DDEBUG_TIMING fails due to a missing header:

modules/alsa/alsa-source.c: In function 'check_left_to_record':
modules/alsa/alsa-source.c:426:9: warning: implicit declaration of function 'raise' [-Wimplicit-function-declaration]
modules/alsa/alsa-source.c:426:9: error: 'SIGTRAP' undeclared (first use in this function)

Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
11 years agoalsa-sink: add missing header 'signal.h'
Eero Nurkkala [Thu, 31 May 2012 07:44:22 +0000 (10:44 +0300)]
alsa-sink: add missing header 'signal.h'

Compilation with -DDEBUG_TIMING fails due to a missing header:

modules/alsa/alsa-sink.c: In function 'check_left_to_play':
modules/alsa/alsa-sink.c:453:9: warning: implicit declaration of function 'raise' [-Wimplicit-function-declaration]
modules/alsa/alsa-sink.c:453:9: error: 'SIGTRAP' undeclared (first use in this function)

Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
11 years agopulsecore: Use PA_IDXSET_FOREACH wherever applicable.
Harsh Prateek Bora [Tue, 29 May 2012 12:28:12 +0000 (17:58 +0530)]
pulsecore: Use PA_IDXSET_FOREACH wherever applicable.

Signed-off-by: Harsh Prateek Bora <harsh.bora@linaro.org>
11 years agomodules: Use PA_IDXSET_FOREACH wherever applicable.
Harsh Prateek Bora [Tue, 29 May 2012 12:28:11 +0000 (17:58 +0530)]
modules: Use PA_IDXSET_FOREACH wherever applicable.

Signed-off-by: Harsh Prateek Bora <harsh.bora@linaro.org>
11 years agobluetooth: Release transport when the pa_rtpoll_run loop finishes.
Jarkko Suontausta [Tue, 22 May 2012 12:58:33 +0000 (15:58 +0300)]
bluetooth: Release transport when the pa_rtpoll_run loop finishes.

Based on a patch by Marko Ollonen.

11 years agoudev: Don't use deprecated udev_get_*_path() functions
Marc-Antoine Perennou [Thu, 17 May 2012 20:50:22 +0000 (22:50 +0200)]
udev: Don't use deprecated udev_get_*_path() functions

[These symbols were removed in libudev.so.1.0.0. Replace them with
hardcoded strings. -- heftig]

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
11 years agopipe: check return value of mkfifo()
Peter Meerwald [Thu, 24 May 2012 15:52:56 +0000 (17:52 +0200)]
pipe: check return value of mkfifo()

11 years agopipe: whitespace and log output cleanup
Peter Meerwald [Thu, 24 May 2012 15:52:55 +0000 (17:52 +0200)]
pipe: whitespace and log output cleanup

11 years agodaemon: use pa_streq instead of plain strcmp
Deng Zhengrong [Fri, 25 May 2012 02:17:51 +0000 (10:17 +0800)]
daemon: use pa_streq instead of plain strcmp

Just noticed that in daemon-conf.c, it uses plain strcmp(),
while in PulseAudio, it should be better to use pa_streq().

11 years agocli: Add set-log-target command for pacmd
Deng Zhengrong [Fri, 25 May 2012 02:16:04 +0000 (10:16 +0800)]
cli: Add set-log-target command for pacmd

11 years agoonce: Fix race causing pa_once to sometimes run twice
David Henningsson [Fri, 18 May 2012 20:29:41 +0000 (22:29 +0200)]
once: Fix race causing pa_once to sometimes run twice

There was a race in the existing code that could cause the pa_once code
to be run twice, see:
http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-April/013354.html

Therefore the existing implementation was rewritten to instead look like
the reference implementation here:
http://www.hpl.hp.com/research/linux/atomic_ops/example.php4

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
11 years agonative: Use foreach to iterate trough modules.
poljar [Mon, 21 May 2012 19:42:20 +0000 (21:42 +0200)]
native: Use foreach to iterate trough modules.

The PA_IDXSET_FOREACH is easier to read than the standard for loop.
Also pa_streq() should be used for checking string equality.

12 years agobluetooth: Fix crash on disconnection
Frédéric Danis [Tue, 15 May 2012 13:55:36 +0000 (15:55 +0200)]
bluetooth: Fix crash on disconnection

When a Bluetooth headset is connected only to HFP profile (not connected
to A2DP) and host streams to it, a crash occurs if host disconnects.

When HFP disconnects, audio thread will fail on POLLHUP then generate
a message to set PA profile to Off before ending.
If this message is managed before PA unload bluetooth device module,
all works fine.
But, if this message is managed during module unload, this finish by
re-entrance in release code (stop_thread) and a crash.

This fix prevents to process profile change when module is unloading.

12 years agognome: start PA early in the gnome session
Lennart Poettering [Tue, 15 May 2012 23:06:17 +0000 (01:06 +0200)]
gnome: start PA early in the gnome session

12 years agoauth: move cookie file to ~/.config/pulse/cookie
Lennart Poettering [Tue, 15 May 2012 21:59:33 +0000 (23:59 +0200)]
auth: move cookie file to ~/.config/pulse/cookie

In order to follow XDG basedir, read the cookie file from
~/.config/pulse/cookie if possible, but fall back to the old file.
if it doesn't exist.

12 years agocore-util: when searching for configuration files, honour XDG basedir spec
Lennart Poettering [Tue, 15 May 2012 21:25:00 +0000 (23:25 +0200)]
core-util: when searching for configuration files, honour XDG basedir spec

12 years agoman: update man pages to only refer to the new place for the configuration files
Lennart Poettering [Tue, 15 May 2012 21:24:09 +0000 (23:24 +0200)]
man: update man pages to only refer to the new place for the configuration files

12 years agocore-util: move configuration home directory from ~/,pulse to ~/.config/pulse to...
Lennart Poettering [Tue, 15 May 2012 21:13:28 +0000 (23:13 +0200)]
core-util: move configuration home directory from ~/,pulse to ~/.config/pulse to follow XDG basedir spec

If ~/.pulse/ already exists we stick to it in order not to lose
configuration and so that pulse configuration may still be shared across
the network with different PA versions.

12 years agoutil: hook up pa_get_runtime_dir() with XDG_RUNTIME_DIR
Lennart Poettering [Tue, 15 May 2012 17:06:53 +0000 (19:06 +0200)]
util: hook up pa_get_runtime_dir() with XDG_RUNTIME_DIR

12 years agocontext: get rid of really old runtime dir logic, i.e. break compat with >4y-old PA
Lennart Poettering [Tue, 15 May 2012 14:24:22 +0000 (16:24 +0200)]
context: get rid of really old runtime dir logic, i.e. break compat with >4y-old PA

12 years agortkit: update drop-in files
Lennart Poettering [Tue, 15 May 2012 14:08:40 +0000 (16:08 +0200)]
rtkit: update drop-in files

12 years agobuild-sys: remove HAL support, it's obsolete since years
Lennart Poettering [Tue, 15 May 2012 14:06:42 +0000 (16:06 +0200)]
build-sys: remove HAL support, it's obsolete since years

12 years agobuild-sys: readd stub makefiles to subdirectories to make building with emacs easier
Lennart Poettering [Tue, 15 May 2012 12:17:58 +0000 (14:17 +0200)]
build-sys: readd stub makefiles to subdirectories to make building with emacs easier

12 years agoutil: use the return value of gethosid() as fallback, not the address of the function
Lennart Poettering [Tue, 15 May 2012 12:12:38 +0000 (14:12 +0200)]
util: use the return value of gethosid() as fallback, not the address of the function

Yikes!

12 years agoutil: /etc/machine-id should be tried first, the D-Bus only as fallback for legacy...
Lennart Poettering [Tue, 15 May 2012 12:10:34 +0000 (14:10 +0200)]
util: /etc/machine-id should be tried first, the D-Bus only as fallback for legacy systems

12 years agoproplist: document new meaning of the session ID
Lennart Poettering [Tue, 15 May 2012 12:06:46 +0000 (14:06 +0200)]
proplist: document new meaning of the session ID

12 years agoutil: XDG_SESSION_COOKIE is unsuitable as session ID
Lennart Poettering [Tue, 15 May 2012 12:04:31 +0000 (14:04 +0200)]
util: XDG_SESSION_COOKIE is unsuitable as session ID

XDG_SESSION_COOKIE was supposed to be used for access control to the
session and should not be exposed to other users.

Replace usage of XDG_SESSION_COOKIE by XDG_SESSION_ID which is the right
choice here since it is actually a proper session ID that may be
published.

12 years agosink-input,source-output: Avoid unneccessary rate updates
Arun Raghavan [Mon, 14 May 2012 06:51:45 +0000 (12:21 +0530)]
sink-input,source-output: Avoid unneccessary rate updates

This makes sure we only call sink/source update_rate() if the stream
being woken up has a sample spec that doesn't match the corresponding
device'.

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

12 years agopacmd: Added --help and --version descriptions to the man page.
poljar [Sun, 6 May 2012 14:10:51 +0000 (16:10 +0200)]
pacmd: Added --help and --version descriptions to the man page.

The pacmd man page should show the available options. A simple
description for the --version and --help option was added.

12 years agobuild-sys: Bump soname
Arun Raghavan [Fri, 11 May 2012 13:20:11 +0000 (18:50 +0530)]
build-sys: Bump soname

Double-bump since v1.99.2 got a bump but the commit never landed.

12 years agoCorrect spelling of PulseAudio
Paul Menzel [Tue, 24 Apr 2012 21:31:32 +0000 (23:31 +0200)]
Correct spelling of PulseAudio

• s,Pulseaudio,PulseAudio,
• One last occurence of this “error” is in the French translation.

12 years agobluetooth: Fix crash due to usage of pa_bool_t instead of dbus_bool_t
Arun Raghavan [Fri, 11 May 2012 12:02:20 +0000 (17:32 +0530)]
bluetooth: Fix crash due to usage of pa_bool_t instead of dbus_bool_t

pa_bool_t and dbus_bool_t cannot be used interchangably since their size
might (and do) vary. This caused a crash on some systems which was
reported and root caused by: Aidan Thornton <makosoft@googlemail.com>.

Ref: https://bugs.gentoo.org/show_bug.cgi?id=398097

12 years agoalsa: Add support for sound cards with 4-channel input.
Tanu Kaskinen [Tue, 1 May 2012 17:09:12 +0000 (20:09 +0300)]
alsa: Add support for sound cards with 4-channel input.

Changes in v2:
 - Call the mapping a generic 4-channel input mapping
   instead of a 4-channel mic array mapping. The mapping
   will be used also by sound cards that have two stereo
   input jacks, so in those cases talking about mic arrays
   is wrong.
 - Added a comment about using the "hw" device name.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45813
12 years agoresampler: Add support for resamplers that consume less data than asked.
Tanu Kaskinen [Thu, 10 May 2012 06:19:23 +0000 (09:19 +0300)]
resampler: Add support for resamplers that consume less data than asked.

libsamplerate_resample() assumed that src_process() would
always consume the whole input buffer. That was an invalid
assumption leading to crashes.

This patch adds a leftover memchunk for storing any
non-consumed input. When pa_resampler_run() is called next
time, the leftover is prepended to the new input.

Changes in v3:
 - Make the calculations in pa_resampler_result() and
   pa_resampler_max_block_size() more readable and more
   correct.
 - Rework the leftover storing: instead of using a dedicated
   buffer for it, store it in the beginning of remap_buf.
   This can avoid some memory copying. (The idea was
   suggested by Wang Xingchao.)
 - Use a generic save_leftover() function instead of doing
   the leftover copying in the resampler implementation.
 - Use the leftover logic also with the speex and ffmpeg
   resamplers.
   [ed: dropped the speex bit since the API guarantees that
    it will consume everything -- Arun]

Changes in v2:
 - If add_leftover() is called with zero-length input while
   the leftover length is non-zero, we don't try to acquire
   the input memblock.
 - Instead of taking a reference to the original input in
   libsamplerate_resample(), we copy the leftover data to a
   new memblock. This is done, because otherwise, if the
   input is one of the internal buffers, the data can get
   overwritten before reading it in add_leftover().
 - Store add_leftover_buf size in bytes instead of samples
   (more convenient, but less consistent with other code).

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=47156
12 years agoresampler: Use more descriptive buffer names.
Tanu Kaskinen [Thu, 10 May 2012 06:19:22 +0000 (09:19 +0300)]
resampler: Use more descriptive buffer names.

12 years agoresampler: Use pa_xnew0() to avoid manual zeroing.
Tanu Kaskinen [Thu, 10 May 2012 06:19:21 +0000 (09:19 +0300)]
resampler: Use pa_xnew0() to avoid manual zeroing.

12 years agopacmd: Added --help and --version options.
poljar [Tue, 1 May 2012 21:17:22 +0000 (23:17 +0200)]
pacmd: Added --help and --version options.

All utilities should have the --help and --version command line options.
These two were added to pacmd, also the goto label was changed from fail
to quit like in the other utilities.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45030
12 years agoecho-cancel: Clarify function call contexts.
Tanu Kaskinen [Wed, 25 Apr 2012 08:25:16 +0000 (11:25 +0300)]
echo-cancel: Clarify function call contexts.

12 years agoecho-cancel: Fix memblockq length check.
Tanu Kaskinen [Wed, 25 Apr 2012 07:51:38 +0000 (10:51 +0300)]
echo-cancel: Fix memblockq length check.

In addition to changing "plen > u->blocksize" to "plen >=
u->blocksize", I also removed one of the duplicated ifs.

12 years agoecho-cancel: Drop the correct amount of samples when skipping.
Tanu Kaskinen [Wed, 25 Apr 2012 06:49:08 +0000 (09:49 +0300)]
echo-cancel: Drop the correct amount of samples when skipping.

12 years agodoc: Add entry for correct spelling
Paul Menzel [Tue, 24 Apr 2012 21:36:07 +0000 (23:36 +0200)]
doc: Add entry for correct spelling

Due to the formatting of `README` the only occurence of PulseAudio in a
text is capitalized. People reading `README` should at least see the
correct spelling once.

In contrast to reformat just add a spelling section as an easy solution.

Since it is not that important the last place in the ordering might
suffice.

12 years agosink/source.h: Clarify set_port comment
David Henningsson [Wed, 18 Apr 2012 09:41:48 +0000 (11:41 +0200)]
sink/source.h: Clarify set_port comment

State which thread calls set_port in which scenario.

Reported-by: Jyri Sasha <oku@iki.fi>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agopulse: Fix warning in introspect.h; minor rewording and punctuation.
Peter Meerwald [Fri, 6 Apr 2012 13:06:29 +0000 (15:06 +0200)]
pulse: Fix warning in introspect.h; minor rewording and punctuation.

12 years agopulse: Clarify proplist doxygen documentation.
Peter Meerwald [Fri, 6 Apr 2012 13:06:28 +0000 (15:06 +0200)]
pulse: Clarify proplist doxygen documentation.

12 years agocore: Fix comments.
Peter Meerwald [Fri, 6 Apr 2012 13:06:27 +0000 (15:06 +0200)]
core: Fix comments.

12 years agoecho-cancel: Upper/lowercase in comment.
Peter Meerwald [Fri, 6 Apr 2012 13:06:26 +0000 (15:06 +0200)]
echo-cancel: Upper/lowercase in comment.

12 years agobuild: Fix spelling in src/Makefile.am.
Peter Meerwald [Fri, 6 Apr 2012 13:06:25 +0000 (15:06 +0200)]
build: Fix spelling in src/Makefile.am.

12 years agodbus: Fix dbus argument type in iface-stream.c handle_move().
Peter Meerwald [Fri, 6 Apr 2012 09:44:57 +0000 (11:44 +0200)]
dbus: Fix dbus argument type in iface-stream.c handle_move().

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=48376
Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
12 years agoalsa: Add the DTS/DCA mapping to extra-hdmi.conf too.
Colin Guthrie [Sun, 15 Apr 2012 12:39:29 +0000 (13:39 +0100)]
alsa: Add the DTS/DCA mapping to extra-hdmi.conf too.

This is needed for 0b421f on Intel/NVidia hardware.

12 years agoalsa-sink/source: Make sure volumes are synchronised after fast user switching
David Henningsson [Wed, 4 Apr 2012 15:07:13 +0000 (17:07 +0200)]
alsa-sink/source: Make sure volumes are synchronised after fast user switching

Log in as user A, fast user switch to user B, let user B change
port, volume or mute status, then switch back to user A.

At this point we must make sure that the ALSA and PA volumes are
synchronised by writing to the ALSA mixer when the ALSA device
becomes available.

BugLink: https://bugs.launchpad.net/bugs/915035
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agocli: Allow source-output volumes/mute to be set via CLI
Colin Guthrie [Thu, 5 Apr 2012 10:52:24 +0000 (11:52 +0100)]
cli: Allow source-output volumes/mute to be set via CLI

This should have been done a long time ago but it brings symmetry to the API

12 years agoman: Document the cli inteface a little.
Colin Guthrie [Thu, 5 Apr 2012 10:41:18 +0000 (11:41 +0100)]
man: Document the cli inteface a little.

This just documents the cli interface syntax. Mostly a lift from
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/CLI
with some minor editing and bringing up to date.

Also document a few undocumented commands.

Shuffle around the order in 'pacmd help' output to match the order
in the new docs for consistency.

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

12 years agoalsa-sink/source: Really set volumes on port change
David Henningsson [Tue, 3 Apr 2012 19:35:07 +0000 (21:35 +0200)]
alsa-sink/source: Really set volumes on port change

If deferred volumes were activated, set_volume does not really set
the volume, and is probably only meant to be called from the main
thread.
As we're currently really setting the port and the mute here (i e
modifying ALSA), we should really modify the volume as well.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agomodule-loopback: Reset process_msg callbacks in teardown
David Henningsson [Tue, 3 Apr 2012 16:56:21 +0000 (18:56 +0200)]
module-loopback: Reset process_msg callbacks in teardown

Make sure we can't be called into by remaining references to
sink-inputs and source-outputs after we have unloaded, as
that will likely lead to segfaults.

Thanks to Tanu for providing valuable input on this patch.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoloopback: Fix crash on error during init
Frédéric Dalleau [Mon, 2 Apr 2012 09:16:03 +0000 (11:16 +0200)]
loopback: Fix crash on error during init

If an error during pa__init() causes a jump to fail: u->asyncmsgq is not
initialized.

12 years agodbus: Add assertions to get rid of warnings from Coverity.
Tanu Kaskinen [Wed, 28 Mar 2012 11:47:20 +0000 (14:47 +0300)]
dbus: Add assertions to get rid of warnings from Coverity.

Coverity thinks that expected_method_sig can be NULL when
it's dereferenced by pa_streq(). Adding assertions doesn't
hurt here (in my opinion), and that should get rid of the
warnings.

12 years agodevice-manager: Add an assertion to get rid of a warning from Coverity.
Tanu Kaskinen [Wed, 28 Mar 2012 09:27:26 +0000 (12:27 +0300)]
device-manager: Add an assertion to get rid of a warning from Coverity.

Coverity thinks that device_name can be NULL when it's
dereferenced by strcmp. Adding an assertion doesn't hurt
here (in my opinion), and that should get rid of the
warning.

12 years agodbus: Add an assertion to get rid of a warning from Coverity.
Tanu Kaskinen [Mon, 26 Mar 2012 11:52:27 +0000 (14:52 +0300)]
dbus: Add an assertion to get rid of a warning from Coverity.

Coverity thinks that sample can be NULL when it's
dereferenced after this line. Adding an assertion doesn't
hurt here (in my opinion), and that should get rid of the
warning.

12 years agoalsa: Fix SND_MIXER_SCHN_LAST related stuff.
Tanu Kaskinen [Mon, 26 Mar 2012 11:35:30 +0000 (14:35 +0300)]
alsa: Fix SND_MIXER_SCHN_LAST related stuff.

Valid channel id range is from 0 to SND_MIXER_SCHN_LAST,
inclusive, so the size of the masks array in pa_alsa_element
has to be SND_MIXER_SCHN_LAST + 1. Similar "too small"
arrays were also in alsa-sink's and alsa-source's userdata,
but actually those arrays were not used at all so they were
removed.

element_is_subset() in alsa-mixer.c skipped the last channel
id when iterating the element masks array; that's now fixed
as well.

Thanks to David Henningsson for spotting the too small
arrays in alsa-sink and alsa-source and the
element_is_subset() problem.

12 years agodevice-manager: Fix a memory leak.
Tanu Kaskinen [Fri, 23 Mar 2012 09:36:39 +0000 (11:36 +0200)]
device-manager: Fix a memory leak.

12 years agosample-util: Remove redundant check from pa_volume_memchunk.
Tanu Kaskinen [Fri, 23 Mar 2012 09:01:22 +0000 (11:01 +0200)]
sample-util: Remove redundant check from pa_volume_memchunk.

Add also an assertion for the sample spec validity. The
existing code already does crash in case of an invalid
sample spec, but the error would not be as obvious: the
crash would happen due to a divide-by-zero operation in
pa_frame_aligned().

12 years agopadsp: Fix a double-free bug.
Tanu Kaskinen [Fri, 23 Mar 2012 08:11:21 +0000 (10:11 +0200)]
padsp: Fix a double-free bug.

12 years agodbus: Fix device latency querying.
Tanu Kaskinen [Fri, 23 Mar 2012 07:59:17 +0000 (09:59 +0200)]
dbus: Fix device latency querying.

12 years agosink-input/source-output: Prevent filter sink/source cycles
David Henningsson [Fri, 23 Mar 2012 12:06:27 +0000 (13:06 +0100)]
sink-input/source-output: Prevent filter sink/source cycles

Misbehaving clients can try to set a filter sink to output to
itself, leading to crashes later on. This patch protects us from that.

Thanks to Roman Beslik for testing and finding an error in the first
version of this patch.

Tested-by: Roman Beslik <rabeslik@gmail.com>
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=44397
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agomodule-jack-sink/source: Set fixed latency correctly on creation
Maarten Lankhorst [Mon, 26 Mar 2012 21:12:24 +0000 (23:12 +0200)]
module-jack-sink/source: Set fixed latency correctly on creation

Changes since v1:
Use max value of jack_port_get_latency_range to calculate the latency
and squash compiler warnings cased by using jack_port_get_total_latency

Modifying latency only works inside a callback, and for hardware the
latency is generally fixed on jack, so just take the max value.

Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
12 years agoFix input device for M-audio fasttrack pro
David Henningsson [Mon, 19 Mar 2012 10:54:12 +0000 (11:54 +0100)]
Fix input device for M-audio fasttrack pro

Some M-audio fasttrack pro devices, the input device is at index 1 instead of index 0.
According to
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-March/050701.html
the reason for this is probably that the device has mutually exclusive
analog and digital input. With this patch we can catch the input regardless
of state.

BugLink: https://bugs.launchpad.net/bugs/569932
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agolibpulse: Cope with systems not implementing SA_NOCLDWAIT
Pino Toscano [Mon, 19 Mar 2012 12:42:15 +0000 (12:42 +0000)]
libpulse: Cope with systems not implementing SA_NOCLDWAIT

Even though SA_NOCLDWAIT is a POSIX mandatory flag the Hurd doesn't
implement it. So let's only check for it if it's defined.

12 years agoRevert "resamplers: Optimize trivial resampler"
Colin Guthrie [Fri, 23 Mar 2012 09:24:48 +0000 (09:24 +0000)]
Revert "resamplers: Optimize trivial resampler"

This causes problems with 24kHz audio (results in echoing)
when upscaling to 44.1kHz or 48kHz.

It can be reapplied when the optimisation works for all cases.

This reverts commit 8539fe9765e5713f9863ab15d0c5b42189f98ae2.

12 years agocore-util: Attempt to make runtime paths smaller to avoid 108 char limit.
Colin Guthrie [Wed, 14 Mar 2012 01:41:48 +0000 (01:41 +0000)]
core-util: Attempt to make runtime paths smaller to avoid 108 char limit.

When the runtime path gets long (which can happen on some NFS
mounts where $HOME is not just /home/$USER), it can grow
longer the 108 char limit imposed by sockaddr_un.sun_path.

This just calls realpath which should ultimately point into
/tmp in most cases and result in a much smaller path.

Only do this when we are adding on a name component to the
runtime path so creating the actual symlink will still get
the original, long name, but this shouldn't be a problem
as it never goes into the sockaddr_un.sun_path.

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

12 years agostream: Fix sample spec initialisation for extended API
Arun Raghavan [Tue, 27 Mar 2012 19:31:32 +0000 (01:01 +0530)]
stream: Fix sample spec initialisation for extended API

This fixes pa_sample_spec init to use the correct API. Not doing so
triggers a valgrind warning as we call pa_sample_spec_valid() on this
later on, which checks the rate and channels fields. Thanks to Rémi
Denis-Courmont for reporting this.

12 years agoalsa-mixer: Fix a small issue when detecting required-any
David Henningsson [Mon, 26 Mar 2012 08:45:52 +0000 (10:45 +0200)]
alsa-mixer: Fix a small issue when detecting required-any

If somebody writes the line "required-any=ignore", that shouldn't
mean a required-any element needs to be present for the path to
succeed probing.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoalsa-mixer: Show HDMI ports for older Nvidia cards
David Henningsson [Mon, 26 Mar 2012 08:31:47 +0000 (10:31 +0200)]
alsa-mixer: Show HDMI ports for older Nvidia cards

Some older cards do not have jack detection. This patch makes the
port still show up.
An implementation detail: the "required = ignore" line has in itself
no effect, but we have to write *something* there, or else the entire
jack detection section will be ignored by the parser.

BugLink: https://bugs.launchpad.net/bugs/961286
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agodbus: Check method call signatures.
Tanu Kaskinen [Sun, 25 Mar 2012 05:40:56 +0000 (08:40 +0300)]
dbus: Check method call signatures.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45815
12 years agofix compilation warning via PRI prefix
Deng Zhenrong [Thu, 22 Mar 2012 13:52:12 +0000 (21:52 +0800)]
fix compilation warning via PRI prefix

modules/alsa/alsa-mixer.c:3110:21:
    warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'pa_channel_position_mask_t' [-Wformat]
modules/alsa/alsa-mixer.c:3110:21:
    warning: format '%lx' expects argument of type 'long unsigned int', but argument 8 has type 'pa_channel_position_mask_t' [-Wformat]

pa_channel_position_mask_t is type defined to uint64_t, and to display
uint64_t, it's better to use PRIx64 primitives.

Signed-off-by: Deng Zhenrong <dzrongg@gmail.com>
12 years agobluetooth: Remove unused variable.
Tanu Kaskinen [Thu, 22 Mar 2012 17:39:46 +0000 (19:39 +0200)]
bluetooth: Remove unused variable.

12 years agobuild-sys: padsp target should not be phony
David Henningsson [Wed, 21 Mar 2012 10:24:42 +0000 (11:24 +0100)]
build-sys: padsp target should not be phony

Prevent rebuilding padsp when it's not needed.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agopactl: show availability information for "list cards"
David Henningsson [Wed, 21 Mar 2012 11:17:47 +0000 (12:17 +0100)]
pactl: show availability information for "list cards"

Now that the client API exposes availability information for ports
on cards, we can make output consistent with "list sinks" and
"list sources".

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agomodule-switch-on-port-available: Do not switch profile if current port is available
David Henningsson [Mon, 19 Mar 2012 15:42:10 +0000 (16:42 +0100)]
module-switch-on-port-available: Do not switch profile if current port is available

For switching profiles, we are a little more cautious, only switch
from an unavailable port to an available one. Profile switching is
mainly used for HDMI/DisplayPort, and this is to avoid switching from
analog to HDMI/DP when it becomes available.

See http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/012991.html
and replies for more information.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agomodule-loopback: Never call adjust_rates after teardown
David Henningsson [Tue, 20 Mar 2012 10:44:15 +0000 (11:44 +0100)]
module-loopback: Never call adjust_rates after teardown

Calling adjust_rates after teardown results in segfault, and
judging from the Ubuntu bug report, this can happen.
Actively prevent this by destroying the time event, and by
setting adjust_time to 0, we also prevent this routine being
called on max request update.

BugLink: https://bugs.launchpad.net/bugs/946400
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoprotocol-native: Remove redundant asserts
Arun Raghavan [Mon, 19 Mar 2012 08:59:59 +0000 (14:29 +0530)]
protocol-native: Remove redundant asserts

As David points out, the previous commit made a couple of asserts
redundant (the XOR covers all cases that were previous tested for).
Remove these redundant commits now.

12 years agoprotocol-native: Reinstate assert that was incorrectly removed
Arun Raghavan [Mon, 19 Mar 2012 08:46:04 +0000 (14:16 +0530)]
protocol-native: Reinstate assert that was incorrectly removed

Commit 54cddc6ddf075b6248b0b8521120b2bd86049978 removed an assert that
looked redundant but was not. This commit reinstates it in a slightly
modified form. It is not stated as (a ^ b) instead of (!a || !b) in
order to make the condition more obvious.

12 years agoprotocol-native: Protect against clients trying to set a NULL port
David Henningsson [Fri, 16 Mar 2012 13:38:38 +0000 (14:38 +0100)]
protocol-native: Protect against clients trying to set a NULL port

For some reason, a badly behaving client was trying to set a NULL
port, which caused PulseAudio to crash. Add safeguards on two levels
just to be protected. (Also remove a redundant check.)

BugLink: https://bugs.launchpad.net/bugs/951273
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agosystemd: complement module-console-kit with module-systemd-login
Lennart Poettering [Sat, 17 Mar 2012 00:52:41 +0000 (01:52 +0100)]
systemd: complement module-console-kit with module-systemd-login

ConsoleKit has been deprecated and replaced by systemd's logind daemon,
hence provide the same functionality of module-console-kit in
module-systemd-login. This also makes sure that the CK module becomes a
NOP if the system is booted with systemd, resp. that the systemd module
becomes a NOP if the system is booted without systemd, thus being nice
to OSes such as Debian which want to support multiple init systems.

12 years agobuild-sys: Bump soname
Arun Raghavan [Thu, 15 Mar 2012 12:40:41 +0000 (18:10 +0530)]
build-sys: Bump soname

12 years agoi18n: Update Polish translation
Piotr Drąg [Fri, 24 Feb 2012 22:13:35 +0000 (23:13 +0100)]
i18n: Update Polish translation

12 years agoUpdate Ukrainian translation.
Yuri Chornoivan [Fri, 2 Mar 2012 15:59:20 +0000 (17:59 +0200)]
Update Ukrainian translation.

12 years agodaemon: Initialize dbus to use thread-safe mode by default
David Henningsson [Mon, 12 Mar 2012 23:06:22 +0000 (00:06 +0100)]
daemon: Initialize dbus to use thread-safe mode by default

In most cases, we use dbus from more than one thread, as we
e.g. enable real-time scheduling from the ALSA threads.
Therefore set dbus to thread-safe mode by default, as recommended
in https://bugs.freedesktop.org/show_bug.cgi?id=47060#c5

This fixes a bug where PulseAudio could crash in two parallel
calls to pa_make_realtime.

BugLink: https://bugs.launchpad.net/bugs/937933
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoalsa-mixer: Don't remove paths if jacks state.(un)plugged differ
David Henningsson [Mon, 12 Mar 2012 10:32:43 +0000 (11:32 +0100)]
alsa-mixer: Don't remove paths if jacks state.(un)plugged differ

If the jack state differs, they are not the same path, so don't
remove them.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoRevert "build-sys: Remove the public API stuff from libpulsecommon."
Tanu Kaskinen [Mon, 12 Mar 2012 07:05:52 +0000 (09:05 +0200)]
Revert "build-sys: Remove the public API stuff from libpulsecommon."

This reverts commit 24ff7196753a3273bac34e87bdcf42384f974d45.

If these files aren't compiled in both libpulse and
libpulsecommon, some things will try use non-public
functions from libpulse. Therefore those internal functions
have to be included directly in libpulsecommon.

This problem appears to be only visible with --as-needed,
which is why the problem wasn't noticed immediately. The
problem has existed also earlier, and it was fixed by
Maarten Bosmans in commit 2de2c735. The commit that is
now reverted basically reverted Maarten's commit (I didn't
know that when I wrote the bad patch).

12 years agoxen: Add Xen paravirtualized sink support.
Giorgos Boutsioukis [Sun, 26 Feb 2012 23:34:09 +0000 (15:34 -0800)]
xen: Add Xen paravirtualized sink support.

A part of Xen's paravirtualized audio driver has been developed as a
pulseaudio module. This module acts as a tunnel over Xen's shared memory
mechanism and allows a domU guest to send audio data to a dom0 backend.

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

12 years agoalsa-mixer: Make speaker get available=no when headphones are plugged in
David Henningsson [Thu, 23 Feb 2012 06:17:07 +0000 (07:17 +0100)]
alsa-mixer: Make speaker get available=no when headphones are plugged in

While developing the new UI we had to ask ourselves the question of whether
"speakers" should be considered available when headphones are plugged in.
In most cases, they are not available and therefore we should list them
as such.

OTOH, we don't want unplugging the headphones to be considered an act of
wanting to use the speakers (the user might prefer HDMI), and there might
be line-outs that keeps the speakers from unmuting anyway. So, at this point,
I think the most reasonable would be to make the speakers have
PA_PORT_AVAILABLE_NO when headphones are plugged in and
PA_PORT_AVAILABLE_UNKNOWN when they are not. But we might want to revisit
this decision once we have the priority lists up and running.

The same reasoning applies for "Internal Mic", which should become unavailable
when any other mic is plugged in.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agointrospect: Expose port info per card to clients
David Henningsson [Thu, 23 Feb 2012 06:17:06 +0000 (07:17 +0100)]
introspect: Expose port info per card to clients

For volume control UIs to be able to show ports in inactive profiles,
expose all ports together with the card info. This includes updating
the protocol and the client API to show the connection between ports
and for which profiles the ports are relevant.

Update protocol to 26.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoconf: Load switch-on-port-available module by default
David Henningsson [Thu, 23 Feb 2012 06:17:05 +0000 (07:17 +0100)]
conf: Load switch-on-port-available module by default

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoAdd a new module switch-on-port-available that acts on port changes
David Henningsson [Thu, 23 Feb 2012 06:17:04 +0000 (07:17 +0100)]
Add a new module switch-on-port-available that acts on port changes

This module tries to switch to a port when availability changes to
"YES", and tries to switch away when availability changes to "NO".

Once there is a priority list infrastructure in place and ready,
this functionality might be redundant, but this will do as an
interim solution.

12 years agoalsa: Add port information to HDMI profiles
David Henningsson [Thu, 23 Feb 2012 06:17:03 +0000 (07:17 +0100)]
alsa: Add port information to HDMI profiles

For Nvidia and Intel, support probing of up to four HDMI devices.
Also add port information to all HDMI profiles.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoalsa: Jack detection kcontrol implementation
David Henningsson [Thu, 23 Feb 2012 06:17:02 +0000 (07:17 +0100)]
alsa: Jack detection kcontrol implementation

Support the new jack detection interface implemented in Linux 3.3
(and Ubuntu's 3.2 kernel).

Jacks are probed and detected using the snd_hctl_* commands, which
means we need to listen to them using fdlists. As this detection
needs to be active even if there is currently no sink for the jack,
so this polling is done on the card level.

Also add configuration support in paths, like this:
[Jack Headphone]
required-any = any

...where 'Jack Headphone' should match 'Headphone Jack' as given by
ALSA (as seen in e g 'amixer controls').
"Required", "required-any" and "required-absent" is supported. Using
required-any, one can have several ports even though there is no
other indication in the mixer that this path exists.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
12 years agoi18n: Fix POTFILES.
Tanu Kaskinen [Sat, 10 Mar 2012 10:54:29 +0000 (12:54 +0200)]
i18n: Fix POTFILES.

12 years agobuild-sys: Remove the public API stuff from libpulsecommon.
Tanu Kaskinen [Fri, 9 Mar 2012 06:43:19 +0000 (08:43 +0200)]
build-sys: Remove the public API stuff from libpulsecommon.

That stuff is already in libpulse, so those files got
compiled twice.

12 years agoproplist: Match pa_proplist_copy argument name between header and implementation.
Tanu Kaskinen [Fri, 9 Mar 2012 07:20:16 +0000 (09:20 +0200)]
proplist: Match pa_proplist_copy argument name between header and implementation.