poljar (Damir Jelić) [Wed, 27 Jun 2012 15:38:42 +0000 (17:38 +0200)]
device-port: Change the latency offset type to a signed int.
The latency offset type should be signed (int64_t) so we can also add
a negative latency offset.
This also includes changing the type of the sink/source
offsets and updating pacmd so it handles negative numbers.
Ismo Puustinen [Fri, 15 Jun 2012 14:35:59 +0000 (17:35 +0300)]
ladspa: Added a python script for testing.
The python script uses the ladspa D-Bus interface for IPC testing.
Ismo Puustinen [Fri, 15 Jun 2012 14:35:58 +0000 (17:35 +0300)]
ladspa: D-Bus interface for setting algorithm parameters on-the-fly.
A new external D-Bus interface is registered and LADSPA algorithm
control parameters are exposed as a D-Bus property with setter and
getter support.
Deng Zhengrong [Sat, 23 Jun 2012 11:16:26 +0000 (19:16 +0800)]
xen: add the HAVE_CONFIG_H macro guard
Deng Zhengrong [Sat, 23 Jun 2012 11:15:14 +0000 (19:15 +0800)]
pacmd: add help info for 'set-log-target'
Deng Zhengrong [Sat, 23 Jun 2012 11:14:12 +0000 (19:14 +0800)]
build: Add gcov coverage support
Arun Raghavan [Thu, 28 Jun 2012 06:49:27 +0000 (12:19 +0530)]
pactl: Print sink-input/source-output corked status
Sending this out for review before committing since it changes pactl output.
poljar [Fri, 22 Jun 2012 18:55:55 +0000 (20:55 +0200)]
pacmd: Add functions to handle the latency offset
pacmd was extended so it can handle the new latency offset.
A new function was added so we can set the latency also the list
commands were extended to print the latency offset on the ports.
poljar [Fri, 22 Jun 2012 18:55:54 +0000 (20:55 +0200)]
sink, source: Add a latency offset which is inherited from the port
A latency offset variable was added to the sink/source struct.
Also a function was introduced to update the latency offset of the
sink/source and a new message type was introduced so we can send the latency
offset to the IO thread.
The latency offset is automatically populated with the latency from the
currently active port.
poljar [Fri, 22 Jun 2012 18:55:53 +0000 (20:55 +0200)]
device-port: Add a latency variable to the port struct
A latency offset variable was added to the port struct and a function to
set the latency offset.
The latency offset does nothing for now, but it will be later added to
the sink/source latency.
Mihai Moldovan [Tue, 29 May 2012 07:21:54 +0000 (09:21 +0200)]
core-util: use the generic PATH_MAX variant of pa_realpath on Mac OS X
realpath() on OS X behaves GNUish and accepts NULL for resolved_name
only on 10.6 and higher. Older versions will crash, if resolved_name is
NULL.
All versions define PATH_MAX, though. Better play it safe and use the
generic PATH_MAX version of pa_realpath on Mac OS X systems.
Signed-off-by: Mihai Moldovan <ionic@ionic.de>
Frédéric Danis [Tue, 12 Jun 2012 13:49:50 +0000 (15:49 +0200)]
bluetooth: Fix bluetooth.nrec property not updated
PropertyChanged signal of org.BlueZ.MediaTransport is processed in
pa_bluetooth_transport_parse_property() which updates t->nrec.
This is called by :
- First by filter_cb() of bluetooth-util.c
- Then by filter_cb() of module-bluetooth-device.c which retrieve value
of t->nrec before calling parse function, then it checks if t->nrec
has changed before updating bluetooth.nrec property.
As t->nrec has alreday been changed during first process, property
update is never performed.
This patch creates a new hook in pa_bluetooth_transport called
PA_BLUETOOTH_TRANSPORT_HOOK_NREC_CHANGED.
The hook is fired by bluetooth-util.c when the transport's NREC
property changes.
module-bluetooth-device.c won't listen the PropertyChanged signal of
MediaTransport anymore. Instead, it will use the hook in
pa_bluetooth_transport to get a notification when the NREC property
changes, and update the sink or source proplist accordingly.
const qualifier for returned pointer of
pa_bluetooth_discovery_get_transport() is removed.
Arun Raghavan [Mon, 11 Jun 2012 07:45:00 +0000 (13:15 +0530)]
auth: Create cookie directory if it doesn't exist
Makes sure the cookie directory exists before trying to create the
cookie. This might be the case on freshly installed headless systems.
Arun Raghavan [Mon, 11 Jun 2012 07:42:50 +0000 (13:12 +0530)]
core-util: Make pa_make_secure_dir() act like mkdir -p
This makes pa_make_secure_dir() create any missing parent directories in
the given path as well. This is useful, for example, on a pristine
system with a clean $HOME that needs ~/.config/pulse/ to be created when
~/.config does not exist.
Arun Raghavan [Wed, 13 Jun 2012 11:01:59 +0000 (16:31 +0530)]
core-util: Add a pa_split_in_place() string utility function
For specialised uses of pa_split() such as finding substrings for
comparison, this avoids the need to repeatedly allocate and deallocate
memory.
Arun Raghavan [Wed, 13 Jun 2012 10:59:35 +0000 (16:29 +0530)]
role-cork: Fix a minor leak
Tanu Kaskinen [Thu, 5 Apr 2012 13:24:48 +0000 (16:24 +0300)]
native: Don't save device, volume or mute of new streams.
Specifying the volume when creating a new stream is not an
equivalent act as setting the volume with a volume control
application. When creating a new stream, stream-restore
shouldn't save the volume, but when changing the volume,
then saving it is ok. For example, when I say
"paplay --volume=10000 somefile.wav", I mean that I want the
new stream to have volume 10000. I don't mean that also
future paplay invocations (without the --volume option)
should have that same volume.
This patch effectively reverts
546bcf3f2f9711f0d08c21c3b775994844e7e2a2.
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:16 +0000 (01:28 +0530)]
daemon: use pa_streq instead of strcmp
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:15 +0000 (01:28 +0530)]
tests: use pa_streq instead of strcmp
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:14 +0000 (01:28 +0530)]
pulsecore: Use pa_streq instead of strcmp.
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:13 +0000 (01:28 +0530)]
modules: Use pa_streq instead of strcmp.
Tanu Kaskinen [Fri, 8 Jun 2012 16:00:14 +0000 (19:00 +0300)]
device-port: Remove an out-of-date comment.
poljar [Mon, 4 Jun 2012 17:35:41 +0000 (19:35 +0200)]
bluetooth: Add ports to the bluetooth sink/source
The bluetooth device should have ports so we can attach a latency to
the ports.
Every profile (a2dp, hsp...) has his own set of ports depending on the
number of sinks and sources it provides.
Tanu Kaskinen [Mon, 4 Jun 2012 14:44:20 +0000 (17:44 +0300)]
device-port: Create the profiles hashmap at initialization.
I doesn't make sense to require all callers of
pa_device_port_new() to create the hashmap themselves. There
are and there will be no cases where a port without any
profiles would be desired.
Deng Zhengrong [Wed, 6 Jun 2012 20:16:51 +0000 (04:16 +0800)]
x11: fix the wrong parameter sequence in pax11publish
poljar [Wed, 30 May 2012 12:27:26 +0000 (14:27 +0200)]
pacmd: Add unloading modules by name.
pacmd should allow unloading modules by name.
The command_unload() function was expanded to handle names while
unloading modules.
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
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
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>
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>
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>
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>
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.
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>
Peter Meerwald [Thu, 24 May 2012 15:52:56 +0000 (17:52 +0200)]
pipe: check return value of mkfifo()
Peter Meerwald [Thu, 24 May 2012 15:52:55 +0000 (17:52 +0200)]
pipe: whitespace and log output cleanup
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().
Deng Zhengrong [Fri, 25 May 2012 02:16:04 +0000 (10:16 +0800)]
cli: Add set-log-target command for pacmd
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>
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.
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.
Lennart Poettering [Tue, 15 May 2012 23:06:17 +0000 (01:06 +0200)]
gnome: start PA early in the gnome session
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.
Lennart Poettering [Tue, 15 May 2012 21:25:00 +0000 (23:25 +0200)]
core-util: when searching for configuration files, honour XDG basedir spec
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
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.
Lennart Poettering [Tue, 15 May 2012 17:06:53 +0000 (19:06 +0200)]
util: hook up pa_get_runtime_dir() with XDG_RUNTIME_DIR
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
Lennart Poettering [Tue, 15 May 2012 14:08:40 +0000 (16:08 +0200)]
rtkit: update drop-in files
Lennart Poettering [Tue, 15 May 2012 14:06:42 +0000 (16:06 +0200)]
build-sys: remove HAL support, it's obsolete since years
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
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!
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
Lennart Poettering [Tue, 15 May 2012 12:06:46 +0000 (14:06 +0200)]
proplist: document new meaning of the 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.
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
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.
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.
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.
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
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
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
Tanu Kaskinen [Thu, 10 May 2012 06:19:22 +0000 (09:19 +0300)]
resampler: Use more descriptive buffer names.
Tanu Kaskinen [Thu, 10 May 2012 06:19:21 +0000 (09:19 +0300)]
resampler: Use pa_xnew0() to avoid manual zeroing.
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
Tanu Kaskinen [Wed, 25 Apr 2012 08:25:16 +0000 (11:25 +0300)]
echo-cancel: Clarify function call contexts.
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.
Tanu Kaskinen [Wed, 25 Apr 2012 06:49:08 +0000 (09:49 +0300)]
echo-cancel: Drop the correct amount of samples when skipping.
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.
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>
Peter Meerwald [Fri, 6 Apr 2012 13:06:29 +0000 (15:06 +0200)]
pulse: Fix warning in introspect.h; minor rewording and punctuation.
Peter Meerwald [Fri, 6 Apr 2012 13:06:28 +0000 (15:06 +0200)]
pulse: Clarify proplist doxygen documentation.
Peter Meerwald [Fri, 6 Apr 2012 13:06:27 +0000 (15:06 +0200)]
core: Fix comments.
Peter Meerwald [Fri, 6 Apr 2012 13:06:26 +0000 (15:06 +0200)]
echo-cancel: Upper/lowercase in comment.
Peter Meerwald [Fri, 6 Apr 2012 13:06:25 +0000 (15:06 +0200)]
build: Fix spelling in src/Makefile.am.
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>
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.
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>
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
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
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>
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>
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.
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.
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.
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.
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.
Tanu Kaskinen [Fri, 23 Mar 2012 09:36:39 +0000 (11:36 +0200)]
device-manager: Fix a memory leak.
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().
Tanu Kaskinen [Fri, 23 Mar 2012 08:11:21 +0000 (10:11 +0200)]
padsp: Fix a double-free bug.
Tanu Kaskinen [Fri, 23 Mar 2012 07:59:17 +0000 (09:59 +0200)]
dbus: Fix device latency querying.
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>
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>
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>
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.
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.
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
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.
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>
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>
Tanu Kaskinen [Sun, 25 Mar 2012 05:40:56 +0000 (08:40 +0300)]