Yuri Chornoivan [Mon, 20 Apr 2015 12:55:14 +0000 (15:55 +0300)]
i18n: Update Ukrainian translation
David Henningsson [Mon, 20 Apr 2015 15:36:53 +0000 (17:36 +0200)]
core-util, pactl: Make one localised and one non-localised version of pa_yes_no
We currently use pa_yes_no to write module arguments, so they can not be
localised. Instead add a new pa_yes_no_localised function and use it in pactl
(and thus, revert all other places to use the non-localised version).
BugLink: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1445358
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Wim Taymans [Tue, 7 Apr 2015 14:06:51 +0000 (16:06 +0200)]
Add korean translation
Arun Raghavan [Mon, 13 Apr 2015 03:04:54 +0000 (08:34 +0530)]
udev: Deal with unavailable bus property
Fixes a compiler warning:
../../src/modules/udev-util.c: In function 'pa_udev_get_info':
../../src/modules/udev-util.c:228:443: warning: 'bus' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (!pa_streq(bus, "firewire") && (v = udev_device_get_property_value(card, "ID_MODEL_FROM_DATABASE")) && *v)
Andrey Zholos [Mon, 13 Apr 2015 03:00:46 +0000 (08:30 +0530)]
detect: Fix OSS device detection with long names
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=89921
David Henningsson [Tue, 31 Mar 2015 12:38:04 +0000 (14:38 +0200)]
alsa-mixer: Add paths/ports for multichannel profile
This makes the GUIs (e g gnome/unity-control-center) look more consistent
with other inputs/outputs that also have ports.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Tue, 31 Mar 2015 12:38:03 +0000 (14:38 +0200)]
alsa-mixer: Use separate profiles for Multichannel Input/Output
This works around bug 80850: a mapping can only have one channel map,
and in case of a 6-out 10-in device, the mapping will be adjusted to
have both 10 and 6 channels, which does not work.
Reported-by: Benjamin Tegge <benjaminosm@googlemail.com>
Suggested-by: Raymond Yau <superquad.vortex2@gmail.com>
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=80850
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Takashi Sakamoto [Tue, 31 Mar 2015 12:38:02 +0000 (14:38 +0200)]
udev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices
For recently supported FireWire sound devices, udev's database assign
the name of IEEE 1394 Phy/Link chipset to ID_XXX_FROM_DATABASE. This is
not friently names to users.
This commit applies a workaround to skip ID_XXX_FROM_DATABASE for any
FireWire devices.
[Fixed up by David Henningsson <david.henningsson@canonical.com>]
Reported-by: Andras Muranyi <muranyia@gmail.com>
Reference: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1381475
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Tanu Kaskinen [Fri, 10 Apr 2015 09:44:02 +0000 (12:44 +0300)]
core-util: Filter out not-a-numbers in pa_atod()
We don't and probably never will have any pa_atod() callers that would
require "NaN" to be accepted, so let's filter those out in pa_atod(),
instead of requiring the callers to handle not-a-numbers appropriately
(which they generally forget to do).
Tanu Kaskinen [Wed, 1 Apr 2015 16:40:28 +0000 (19:40 +0300)]
pactl: Fix relative volume parsing
The recent change to reject leading '+' in pa_atod() broke the
relative volume parsing in pactl. This fixes that.
David Henningsson [Fri, 27 Mar 2015 10:20:16 +0000 (11:20 +0100)]
module-switch-*: use pa_module_hook_connect
Refactoring, no functional change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Fri, 27 Mar 2015 10:20:15 +0000 (11:20 +0100)]
module-filter-*: use pa_module_hook_connect
Refactoring, no functional change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Fri, 27 Mar 2015 10:20:14 +0000 (11:20 +0100)]
module-alsa-card: use pa_module_hook_connect
Refactoring, no functional change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Fri, 27 Mar 2015 10:20:13 +0000 (11:20 +0100)]
module-suspend-on-idle: use pa_module_hook_connect
Refactoring, no functional change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Fri, 27 Mar 2015 10:20:12 +0000 (11:20 +0100)]
module-*-restore: use pa_module_hook_connect
Refactoring, no functional change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Fri, 27 Mar 2015 10:20:11 +0000 (11:20 +0100)]
module: Add hook dynarray
This small helper will simplify code in many modules.
The hooks added through pa_module_hook_connect will be freed just
before pa__done is called (so trying to add hooks during pa__done
will result in assertion failure).
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Arun Raghavan [Mon, 30 Mar 2015 05:57:46 +0000 (11:27 +0530)]
sink-input: Clarify the meaning of rewrite and flush a bit in rewinds
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:50 +0000 (13:50 +0200)]
dbus: Use hooks for default sink and source changes
[Fixes by David Henningsson <david.henningsson@canonical.com>]
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:47 +0000 (13:50 +0200)]
dbus: Use hooks for put and unlink
Use hooks for all events that have core hooks defined. Some events
handled in iface-core don't have hooks so leave those for later.
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:49 +0000 (13:50 +0200)]
namereg: Fire hooks for default sink and source changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:48 +0000 (13:50 +0200)]
core: Add hooks for default sink and source changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:46 +0000 (13:50 +0200)]
dbus: Use state changed hook for sink-input and source-output rate changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:45 +0000 (13:50 +0200)]
dbus: Use hooks for sink-input and source-output events
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:44 +0000 (13:50 +0200)]
dbus: Use hooks for sink and source events
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:43 +0000 (13:50 +0200)]
dbus: Use hooks for client proplist changes
Juho Hämäläinen [Thu, 19 Mar 2015 11:50:42 +0000 (13:50 +0200)]
dbus: Use hooks for card profile events
Milo Casagrande [Thu, 26 Mar 2015 08:36:40 +0000 (09:36 +0100)]
Update Italian translation.
René J. V. Bertin [Wed, 1 Apr 2015 07:43:05 +0000 (09:43 +0200)]
coreaudio: Change error type to OSStatus
CoreAudio routines that return an error status do so with the
OSStatus type, which is not a UInt32: typical OS X errors are
negative numbers.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Tanu Kaskinen [Tue, 31 Mar 2015 09:39:53 +0000 (12:39 +0300)]
sink, source: Fix a volume change leak
When a sink or source is freed, there may be pending volume changes that
didn't get applied before the IO thread got torn down. Those pending
changes need to be freed.
The memory leak was reported here:
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23162/focus=23169
Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
Tanu Kaskinen [Tue, 31 Mar 2015 09:40:50 +0000 (12:40 +0300)]
.gitignore: Add lfe-filter-test
David Henningsson [Mon, 30 Mar 2015 13:12:53 +0000 (15:12 +0200)]
resampler: Rename "lfe_filter_required" to "lfe_remixed"
Just refactoring to make the variable name better.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Mon, 30 Mar 2015 09:10:56 +0000 (11:10 +0200)]
resampler: Allow disabling the LFE filter by setting crossover to 0
When crossover_freq is set to 0, this restores the old behaviour
of letting the LFE channel be the average of the source channels,
without additional processing. This can be useful e g in case the
user already has a hardware crossover.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Hui Wang [Tue, 24 Mar 2015 09:29:15 +0000 (10:29 +0100)]
daemon-conf: enable the lfe remixing by default
Since we have a workable lfe filter, it is time to enable the lfe
remixing by default.
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Hui Wang [Tue, 24 Mar 2015 09:29:19 +0000 (10:29 +0100)]
tests: adding lfe-filter-test
so far, this test only includes rewind test, it works as below:
let lfe-filter process 2 blocks mono lfe channel audio samples, the
sample format is PA_SAMPLE_S16LE, save the processed data to the temp
buffer, then rewind the lfe-filter back 1 block and 1.5 blocks
respectively, reprocess the audio samples from the rewind position,
then comparing the output data with previously saved data.
Signed-off-by: Hui Wang <hui.wang@canonical.com>
David Henningsson [Tue, 24 Mar 2015 09:29:18 +0000 (10:29 +0100)]
resampler: Make some basic functions for rewinding
The resampler framework just forwards the request to the lfe filter.
There are no resampler impl that can rewind yet, so just reset the
resampler impl instead of properly rewinding yet.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Tue, 24 Mar 2015 09:29:17 +0000 (10:29 +0100)]
lfe-filter: Add rewind support
Store current filter state at every normal block process.
When a rewind happens, rewind back to the nearest saved state,
then calculate forward to the actual sample position.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Wed, 25 Mar 2015 09:13:13 +0000 (10:13 +0100)]
memblock: Change pa_memblock_new_malloced to an inline function
To avoid the macro trap: I call pa_memblock_new_malloced with
"pa_xmemdup" as data parameter, and that would expand to *two*
calls to pa_xmemdup in case that remains a macro, which is clearly
not intended.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Hui Wang [Tue, 24 Mar 2015 09:29:16 +0000 (10:29 +0100)]
lfe-filter: change the crossover frequency as a parameter
Add a user defined parameter lfe-crossover-freq for the lfe-filter,
to pass this parameter to the lfe-filter, we need to change the
pa_resampler_new() API as well.
Signed-off-by: Hui Wang <hui.wang@canonical.com>
David Henningsson [Tue, 24 Mar 2015 09:29:14 +0000 (10:29 +0100)]
lfe-filter: Cleanup and refactor
- Remove imported dead code
- Fix compiler warnings
- Fix non-GCC compiler compilation (use more portable macros)
- Change lr4 struct to include a biquad struct
Thanks to Alexander Patrakov for suggesting many of these changes.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Tue, 24 Mar 2015 09:29:13 +0000 (10:29 +0100)]
lfe-filter: Enable LFE filter in the resampler
When enable-lfe-remixing is set, an LFE channel is present in the
resampler's destination channel map but not in the source channel map,
we insert a low-pass filter instead of just averaging the channels.
Other channels will get a high-pass filter.
In this patch, the crossover frequency is hardcoded to 120Hz (to be fixed
in later patches).
Note that in current state the LFE filter is
- not very optimised
- not rewind friendly (rewinding can cause audible artifacts)
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Tue, 24 Mar 2015 09:29:12 +0000 (10:29 +0100)]
lfe-filter: Import code from the Chrome OS audio server
The chrome OS audio server has some already existing code, which
has been made available under a BSD-style license, which should be
safe to import by us.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Sagar Nageshmurthy [Tue, 24 Mar 2015 11:47:03 +0000 (17:17 +0530)]
Fix: Prevent calling pa_rtpoll_free() for a NULL rtpoll
Flushing the asyncmsgq can cause arbitrarily callbacks to run, potentially
causing recursion into pa_thread_mq_done again. Because of this; rtpoll which
is cleared in the second iteration is tried to free once again by the first
iteration leading to PA crash.
David Henningsson [Mon, 23 Mar 2015 13:39:52 +0000 (14:39 +0100)]
thread-mq: Make pa_thread_mq_done more robust
While investigating bug 89672 it was found that pa_thread_mq_done
was called recursively. Regardless of whether the recursion should
be stopped by other means, it seems to make sense to make
pa_thread_mq_done more robust so that it can be called twice
(and even recursively) without harm.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=89672
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Tanu Kaskinen [Thu, 12 Feb 2015 13:11:52 +0000 (15:11 +0200)]
ucm: Add support for "JackControl"
JackControl is used to indicate the kcontrol name for jack detection.
Sukesh Adiga [Tue, 17 Mar 2015 17:21:52 +0000 (22:51 +0530)]
cpu-arm: Fix memory leak in pa_cpu_get_arm_flags()
Tanu Kaskinen [Wed, 25 Feb 2015 09:56:47 +0000 (11:56 +0200)]
core-util: Make number parsing stricter
pa_atou(), pa_atol() and pa_atod() are stricter than the libc
counterparts (the PA functions reject strings that have trailing extra
stuff in them). I have been under the impression that the PA functions
only accept "obviously valid numbers", that is, I have assumed that
these would be rejected: " 42" (leading whitespace), "" (empty
string) and "-
18446744073709551615" in case of pa_atou().
I noticed that empty strings are accepted, however, and on closer
inspection I found that leading whitespace is accepted too, and even
that pa_atou() thinks that "-
18446744073709551615" is the same thing
as "1"! This patch makes the parsing functions more strict, so that
they indeed only accept "obviously valid numbers". I decided to also
disallow leading plus signs, just because I don't like them.
David Herrmann [Thu, 12 Mar 2015 12:42:46 +0000 (13:42 +0100)]
core-util: Fix set_nice() to use private bus connections
In src/pulsecore/core-util.c:set_nice() we currently use a temporary
dbus-connection to set the nice-level via rtkit. However, we never
close that connection. This is fine, as the connection is shared and
dbus-core will manage it. But no other part of pulseaudio (except
set_scheduler()) uses the libdbus1 managed connections. Therefore,
we effectively end up with an unused dbus-connection that is not
integrated into any main-loop. dbus-daemon will send bus-notifications
to the connection (as libdbus1 installs matches for those by default
(it has to!)) until the outgoing queue is full. Thus, we waste several
KBs (or MBs? I didn't look it up) of memory for a message queue that
is never dispatched.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 5 Mar 2015 13:55:53 +0000 (14:55 +0100)]
pstream: Remove unnecessary if condition
Without split packets, the if condition can now be removed.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 5 Mar 2015 13:55:52 +0000 (14:55 +0100)]
protocol-native: Re-enable srbchannel
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 5 Mar 2015 13:55:51 +0000 (14:55 +0100)]
pstream: Don't split (non-SHM) memblocks
In case SHM is full or disabled, audio data is sent through the
io/srbchannel. When this channel in turn gets full, memblocks
could previously be split up. This could lead to crashes in case
the split was on non-frame boundaries (in combination with full
memblock queues).
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=88452
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Peter Meerwald [Thu, 26 Feb 2015 19:47:58 +0000 (20:47 +0100)]
pacat: Fix comment wording
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 12:19:44 +0000 (14:19 +0200)]
packet: Use flist to save calls to malloc()/free()
a separate free-list is used to recycle memory of fixed-sized packets
with up to MAX_APPENDED_SIZE of data
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 14:51:08 +0000 (16:51 +0200)]
packet: Introduce pa_packet_new_data() to copy data into a newly created packet
v2: (thanks Alexander Patrakov)
* turn check in pa_packet_new() into assert()
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 11:48:21 +0000 (13:48 +0200)]
packet: Make pa_packet_new() create fixed-size packets
if length exceeds maximum appended size, create a packet of
type dynamic instead of type appended
this is a preparation to use a separate free-list for packets
document semantics of pa_packet_new_*() functions
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 09:43:04 +0000 (11:43 +0200)]
packet: Hide internals of pa_packet, introduce pa_packet_data()
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 09:52:43 +0000 (11:52 +0200)]
tagstruct: Use flist to potentially save calls to malloc()/free()
v2: (thanks David Henningson)
* fix double assignment of data in pa_tagstruct_new_fixed(), two statements on one line
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Wed, 22 Oct 2014 12:59:11 +0000 (14:59 +0200)]
tagstruct: Add type _APPENDED
add 128 bytes of storage in each tagstruct that will initially
be used; if this storage is exceeded the type changes to _DYNAMIC
v3: (thanks David Henningson)
* add comments explaining how memory is handled by different tagstruct types
v2: (thanks Alexander Patrakov)
* replace constant 100 with GROW_TAG_SIZE (the increment in with a dynamic tagstruct grows when extend()ed)
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 14:42:58 +0000 (16:42 +0200)]
tagstruct: Get rid of pa_tagstruct_free_data()
pa_tagstruct_free_data() is used in only one place
to pass data from a tagstruct to a packet
this patch is a temporary solution which introduces an extra
malloc(); will be resolved shortly...
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Wed, 22 Oct 2014 12:52:23 +0000 (14:52 +0200)]
tagstruct: Replace dynamic flag with type
... in order to prepare for a new type _APPENDED
remove the assert() for dynamic in pa_tagstruct_data() as
the function makes sense for all tagstruct types (and the returned pointer
is const)
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Thu, 23 Oct 2014 14:09:45 +0000 (16:09 +0200)]
tagstruct: Distinguish pa_tagstruct_new() use cases
pa_tagstruct_new() is called either with no data, i.e. (NULL, 0)
to create a dynamic tagstruct or with a pointer to fixed data
introduce a new function pa_tagstruct_new_fixed() for the latter case
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Alexander E. Patrakov [Sun, 22 Feb 2015 11:39:14 +0000 (16:39 +0500)]
echo-cancel: fix the obviously-wrong "buffer+=buffer" logic
Same bug as in module-loopback, pointed out by Georg Chini in a private
email.
Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
Jaska Uimonen [Thu, 6 Nov 2014 13:52:02 +0000 (15:52 +0200)]
socket-server: add tcp support for systemd socket activation
Tanu Kaskinen [Wed, 4 Feb 2015 21:50:24 +0000 (23:50 +0200)]
alsa: Don't access pa_sink/source_new_data after done() has been called
This change doesn't affect behaviour, because accessing boolean fields
in the new data was safe even after the done() call, but it was still
bad style.
Muhammet Kara [Sun, 22 Feb 2015 11:17:14 +0000 (13:17 +0200)]
i18n: Updated Turkish translation
Peter Meerwald [Thu, 19 Feb 2015 13:23:16 +0000 (14:23 +0100)]
alsa: Fix spelling of officially
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Tanu Kaskinen [Tue, 17 Feb 2015 19:40:13 +0000 (21:40 +0200)]
tagstruct: Refactor writing/reading basic types
While adding functions for writing and reading pa_bvolume structs, I
found myself wondering if I could make it simpler to write and read
the basic types that a pa_bvolume consists of, without having to worry
about network byte ordering, remembering to call extend() and getting
the length and read index adjustments just right. This is what I came
up with.
There is a functional change too: previously the
pa_tagstruct_get_foo() functions didn't modify the read index in case
of errors, but now, due to read_tag() modifying the read index at an
early stage, the read index gets modified also in case of errors. I
have checked the call sites, and I believe there's no code that would
rely on the "no read index modification on error" property of the old
functions. If reading anything from a tagstruct fails, the whole
tagstruct is considered invalid (typically resulting in a protocol
error and client connection teardown).
Alexander E. Patrakov [Wed, 11 Feb 2015 16:50:47 +0000 (21:50 +0500)]
module-loopback: don't use 0 for custom source output message id
Message id 0 is PA_SOURCE_OUTPUT_MESSAGE_GET_LATENCY. So, every time PulseAudio
sent PA_SOURCE_OUTPUT_MESSAGE_GET_LATENCY message to the loopback source output,
it actually hit the SOURCE_OUTPUT_MESSAGE_LATENCY_SNAPSHOT handler instead. As a
result, the SOURCE_OUTPUT_MESSAGE_LATENCY_SNAPSHOT handler was called when not
intended, the default PA_SOURCE_OUTPUT_MESSAGE_GET_LATENCY handler was not called
at all, and the latency was thus evaluated incorrectly.
Reported-by: Georg Chini <georg@chini.tk>
Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
David Henningsson [Mon, 16 Feb 2015 09:41:54 +0000 (10:41 +0100)]
alsa-util: Make two of the warnings "debug" instead of "error"
...because we will later try with plug:* which will probably succeed,
so this is not an error.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Peter Meerwald [Sat, 15 Nov 2014 12:33:19 +0000 (13:33 +0100)]
alsa-util: No logging when sound card only supports non-interleaved sample format
as suggested by
https://bugs.freedesktop.org/show_bug.cgi?id=84804
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Andrey Semashev [Wed, 14 Jan 2015 19:22:04 +0000 (22:22 +0300)]
Added documentation for soxr resampling methods.
Andrey Semashev [Wed, 14 Jan 2015 19:22:03 +0000 (22:22 +0300)]
Added libsoxr detection and optional build of soxr resampler backend.
Andrey Semashev [Wed, 14 Jan 2015 19:22:02 +0000 (22:22 +0300)]
Enabled libsoxr resampler backend.
Added ID and names for the resampler presets and also updated the working sample rate deduction to take the new resampler into account. The initial libsoxr backend version does not variable rate resampling, so it is disabled in this case.
Andrey Semashev [Wed, 14 Jan 2015 19:22:01 +0000 (22:22 +0300)]
Added libsoxr resampler backend.
The new backend supports 3 quality levels: mq, hq and vhq; 16-bit integer and 32-bit float samples. Discussion and quality assessment are here:
http://comments.gmane.org/gmane.comp.audio.pulseaudio.general/22158
Peter Meerwald [Mon, 17 Nov 2014 10:34:59 +0000 (11:34 +0100)]
pacat: State purpose of program depending how it was invoked
see https://bugs.freedesktop.org/show_bug.cgi?id=68135
state purpose of paplay/parec/pamon/parecord/pacat when invoked with -h
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Mon, 17 Nov 2014 10:02:25 +0000 (11:02 +0100)]
man: Install man page symlinks to pacat for paplay, parec, parecord, pamon
see https://bugs.freedesktop.org/show_bug.cgi?id=68135
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Mon, 17 Nov 2014 09:44:31 +0000 (10:44 +0100)]
man: Drop separate paplay man page, move info to pacat man page
see https://bugs.freedesktop.org/show_bug.cgi?id=68135
pacat and paplay man pages both claim to describe the paplay program
(which is actually a symlink to pacat) -- this is inconsistent and
redundant, so drop the paplay man page
a follow-up patch will add man page symlink for all programs
implemented by pacat, not just paplay
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Sat, 15 Nov 2014 15:06:22 +0000 (16:06 +0100)]
man: Describe optional prefix {string} in server address
see https://bugs.freedesktop.org/show_bug.cgi?id=84024
v2: (thanks Tanu Kaskinen)
* fix wording wrt machine id
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Peter Meerwald [Sat, 15 Nov 2014 14:24:22 +0000 (15:24 +0100)]
context: pa_context_connect() with PA_CONTEXT_NOFAIL should return 0 when waiting for PA on D-Dus
see
https://bugs.freedesktop.org/show_bug.cgi?id=85011
in case NOAUTOSPAWN is set and no server has been specified, PA starts listening on DBUS
for a new server, and the state is PA_CONTEXT_CONNECTING, but pa_context_connect()
returns -1; it should return 0.
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Tanu Kaskinen [Wed, 7 Jan 2015 14:56:50 +0000 (16:56 +0200)]
dynarray: Add PA_DYNARRAY_FOREACH
The PA_DYNARRAY_FOREACH macro requires that pa_dynarray_get() returns
NULL if the index is out of bounds.
Tanu Kaskinen [Wed, 7 Jan 2015 14:56:49 +0000 (16:56 +0200)]
dynarray: Add pa_dynarray_remove_by_data()
Tanu Kaskinen [Wed, 7 Jan 2015 14:56:48 +0000 (16:56 +0200)]
dynarray: Add pa_dynarray_remove_by_index()
Also, remove the talk about "fast" variants of functions that remove
entries from an array. Currently there's no need for order-preserving
functions, so all functions are "fast".
Tanu Kaskinen [Wed, 7 Jan 2015 14:56:47 +0000 (16:56 +0200)]
dynarray: Add pa_dynarray_last()
Alexander E. Patrakov [Wed, 31 Dec 2014 07:28:03 +0000 (12:28 +0500)]
Make pa_socket_server_new static
While at it, also remove SOCKET_SERVER_GENERIC, because it is always
being overwritten with a specific socket type.
Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
Tanu Kaskinen [Mon, 3 Nov 2014 09:47:58 +0000 (11:47 +0200)]
socket-server: pa_socket_server_new() can't fail, so don't check its return value
An assertion was already used in pa_socket_server_new_unix(), this
makes the TCP variants consistent with that.
Even if pa_socket_server_new() could fail, the error handling wasn't
good, because there was no "goto fail", meaning that the fd would have
been leaked.
David Henningsson [Thu, 12 Feb 2015 14:09:38 +0000 (15:09 +0100)]
Update NEWS file
Some more contributors during the RC cycle.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Tanu Kaskinen [Fri, 6 Feb 2015 22:15:34 +0000 (00:15 +0200)]
alsa: Don't try to use ELD controls with UCM
This fixes a crash that occurred when trying to access non-existent
port data. Doing this:
pa_alsa_port_data *data = PA_DEVICE_PORT_DATA(port);
is not a good idea when using UCM, because in the UCM mode ports don't
have any data, so the data pointer points to some random memory.
Arun Raghavan [Tue, 3 Feb 2015 06:02:57 +0000 (11:32 +0530)]
shell-completion: bash: Fix pactl list source-outputs
Georg Chini [Sat, 31 Jan 2015 21:05:27 +0000 (22:05 +0100)]
loopback: Don't push zero-sized block to memblockq
During my work on module-loopback I found a bug that sometimes crashes pulse when
module-loopback is loaded due to pushing a zero-length block into the memblockq.
As there is a one-line fix I thought you might want it for 6.0.
Arun Raghavan [Sat, 31 Jan 2015 05:04:48 +0000 (10:34 +0530)]
build-sys: libwebrtc-util needs libpulsecore
David Henningsson [Thu, 29 Jan 2015 15:24:35 +0000 (10:24 -0500)]
alsa-mixer: Make speaker unavailable when Line Out is plugged in
ALSA mutes speaker when Line Out is plugged in by default, so
we should follow that convention.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Tanu Kaskinen [Thu, 29 Jan 2015 11:53:08 +0000 (13:53 +0200)]
alsa-mixer: Add lineout to surround21 mappings
This makes the analog-surround-21 mapping consistent with other
surround mappings. I'm not sure if this makes any practical
difference, though.
David Henningsson [Wed, 28 Jan 2015 20:10:55 +0000 (15:10 -0500)]
module-device-restore: Fix memory leak in read_sink_format_reply
This function could sometimes leak a perportentry.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Wed, 21 Jan 2015 14:06:53 +0000 (15:06 +0100)]
protocol-native: Disable srbchannel by default
Recent testing has shown some srbchannel related bugs that
indicates that the srbchannel feature is not ready to be enabled
by default.
Therefore, temporary disable it for the 6.0 release and re-enable
it in git master once 6.0 is released.
Bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=88452
https://bugs.freedesktop.org/show_bug.cgi?id=88167
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Ondrej Holecek [Wed, 26 Nov 2014 13:14:51 +0000 (14:14 +0100)]
update FSF addresses to FSF web page
FSF addresses used in PA sources are no longer valid and rpmlint
generates numerous warnings during packaging because of this.
This patch changes all FSF addresses to FSF web page according to
the GPL how-to: https://www.gnu.org/licenses/gpl-howto.en.html
Done automatically by sed-ing through sources.
Tanu Kaskinen [Tue, 13 Jan 2015 20:36:17 +0000 (22:36 +0200)]
i18n: Fix up the Turkish translation
The translation was not added to LINGUAS and there was this error from
msgfmt:
tr.po:2801: 'msgid' and 'msgstr' entries do not both begin with '\n'
kozdincer [Mon, 12 Jan 2015 14:17:11 +0000 (16:17 +0200)]
i18n: Add Turkish translation
David Henningsson [Tue, 13 Jan 2015 10:28:16 +0000 (11:28 +0100)]
alsa-mixer: Mute headphones and speakers on line out path
When line out path is active, we want to mute speakers for obvious
reasons, and headphones to avoid volume spikes.
Reported-by: TienFu Chen <tienfu.chen@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Boris Egorov [Mon, 12 Jan 2015 17:52:12 +0000 (23:52 +0600)]
pacmd: add missing 'else' keyword
See code above for proper behavior.
Issue detected by PVS Studio
Boris Egorov [Mon, 12 Jan 2015 17:52:11 +0000 (23:52 +0600)]
tunnel: use proper value for pa_source_state switch
pa_source_state_t can have value PA_SOURCE_INVALID_STATE, not
PA_SINK_INVALID_STATE. It happens to be the same here, but it can break
sometimes.
Issue detected by PVS Studio.
Boris Egorov [Mon, 12 Jan 2015 17:52:10 +0000 (23:52 +0600)]
alsa-util: fix parenthesis position in err assignment
Issue detected by CppCheck and PVS Studio