profile/ivi/pulseaudio.git
13 years agodbus: Always accept mono volumes when setting device or stream volume.
Tanu Kaskinen [Fri, 11 Mar 2011 11:40:34 +0000 (13:40 +0200)]
dbus: Always accept mono volumes when setting device or stream volume.

pa_sink_set_volume() and friends accept mono volumes too, so no need to impose
unneeded restrictions in the D-Bus API.

13 years agodbusiface-stream: Fix crash when there's no resampling used.
Tanu Kaskinen [Fri, 11 Mar 2011 11:40:20 +0000 (13:40 +0200)]
dbusiface-stream: Fix crash when there's no resampling used.

13 years agoalsa-card: Print the profile set configuration when loading the card.
Tanu Kaskinen [Fri, 11 Mar 2011 11:39:50 +0000 (13:39 +0200)]
alsa-card: Print the profile set configuration when loading the card.

13 years agoalsa-mixer: Add a default case for a switch, so that the compiler won't complain...
Tanu Kaskinen [Fri, 11 Mar 2011 11:38:05 +0000 (13:38 +0200)]
alsa-mixer: Add a default case for a switch, so that the compiler won't complain about unhandled cases.

13 years agopacat: Fix memory leak when draining the context.
Tanu Kaskinen [Fri, 11 Mar 2011 11:37:49 +0000 (13:37 +0200)]
pacat: Fix memory leak when draining the context.

13 years agoalsa-mixer: Use decibel fixes when getting and setting decibel volumes.
Tanu Kaskinen [Fri, 11 Mar 2011 11:37:17 +0000 (13:37 +0200)]
alsa-mixer: Use decibel fixes when getting and setting decibel volumes.

13 years agoalsa-mixer: Add DecibelFix section to the profile set config file format.
Tanu Kaskinen [Fri, 11 Mar 2011 11:34:24 +0000 (13:34 +0200)]
alsa-mixer: Add DecibelFix section to the profile set config file format.

This commit only implements the parser, the decibel fix data is not yet used
for anything.

13 years agovolume: Add Orc-based optimised volume scaling
Arun Raghavan [Mon, 25 Oct 2010 16:59:08 +0000 (17:59 +0100)]
volume: Add Orc-based optimised volume scaling

This adds volume scaling for 1- and 2-channel software volume scaling
using Orc. While testing the MMX and SSE backends on a Core2, I see an
~2x performance benefit over the hand-rolled MMX and SSE code. Since I
haven't been able to test on other architectures, the Orc code is only
used when MMX/SSE* is present. This can be changed in the future after
testing on AMD and ARM machines.

13 years agovolume: Fix sample array size for tests
Arun Raghavan [Wed, 27 Oct 2010 10:30:14 +0000 (11:30 +0100)]
volume: Fix sample array size for tests

Somewhere in the history of the MMX tests, the number of channels was
changed from 1 to 2, but the number of samples was not increased to make
it even (multiple of the frame size).

13 years agovolume: Make tests use only valid volumes
Arun Raghavan [Tue, 26 Oct 2010 14:20:19 +0000 (15:20 +0100)]
volume: Make tests use only valid volumes

13 years agoalsa-mixer: Fix a git-am cockup in b0f72311
Colin Guthrie [Fri, 4 Mar 2011 09:43:41 +0000 (09:43 +0000)]
alsa-mixer: Fix a git-am cockup in b0f72311

It seems git managed to mess up a git-am with a patch from
David which moved where this function was called element_probe
to within itself (recursive which could normally lead to an
infinite loop, but as it was now never called from anywhere else,
this didn't happen).

Thank you to Maarten for spotting and following up the issue.

13 years agovolume: Add a PA_VOLUME_UI_MAX define for the recommended max volume to show in UIs
Colin Guthrie [Thu, 3 Mar 2011 12:04:31 +0000 (12:04 +0000)]
volume: Add a PA_VOLUME_UI_MAX define for the recommended max volume to show in UIs

This value is not a technical upper limit, it's just a 'sensible'
value that is not crazy high, but also allows software amplification
above 0dB (aka 100%) for very quiet audio sources.

We recommend that a comprehensive volume control UI should allow
users to set volumes up to this limit, although of course should
deal gracefully if the user has set the volume even higher than this
without resulting in a feedback loop that effectively limits the
upper volume.

The value chosen is +11dB. This was selected somewhat subjectively
and is very similar to the current 150% that gnome-volume-control
uses (which is ~+10.57dB).

On the plus side, we now recommend that everyone allows
'Volumes up to 11' which is pretty awesome.
http://en.wikipedia.org/wiki/Up_to_eleven

https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-April/006945.html
https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-April/006950.html

13 years agoconf: Make system.pa use udev-detect and not hal-detect.
Colin Guthrie [Thu, 3 Mar 2011 09:37:16 +0000 (09:37 +0000)]
conf: Make system.pa use udev-detect and not hal-detect.

Also fix a left over reference to HAL in default.pa

13 years agoconfigure: Drop some warnings
Maarten Bosmans [Wed, 2 Mar 2011 11:41:25 +0000 (12:41 +0100)]
configure: Drop some warnings

Drop -Winline and set -Wstrict-aliasing level to its default.

13 years agoVarious fixes for build warnings
Maarten Bosmans [Wed, 2 Mar 2011 11:41:24 +0000 (12:41 +0100)]
Various fixes for build warnings

13 years agoGet rid of some unused-function compiler warnings
Maarten Bosmans [Wed, 2 Mar 2011 11:41:23 +0000 (12:41 +0100)]
Get rid of some unused-function compiler warnings

13 years agointrospect: Client-side implementation for has_volume/read_only_volume
Arun Raghavan [Tue, 1 Mar 2011 20:08:38 +0000 (01:38 +0530)]
introspect: Client-side implementation for has_volume/read_only_volume

This completes the client-side changes to the protocol extension
introduced by commit 99ddca89cdca9b0b92ab9870764f9211e6a82e31

13 years agox11: Make pax11publish -r remove PULSE_SESSION_ID
Colin Guthrie [Tue, 1 Mar 2011 18:15:28 +0000 (18:15 +0000)]
x11: Make pax11publish -r remove PULSE_SESSION_ID

This is not set by pax11publish, but module-x11-publish does so this tool
should tidy that up. It is only removed when passing -r and is
ignored when actually setting up it's own properties from the conf
files/guesswork.

13 years agoInclude <time.h> where necessary
Maarten Bosmans [Tue, 1 Mar 2011 17:06:28 +0000 (18:06 +0100)]
Include <time.h> where necessary

13 years agoMerge remote-tracking branch 'arun/no-ramping'
Colin Guthrie [Mon, 28 Feb 2011 19:39:10 +0000 (19:39 +0000)]
Merge remote-tracking branch 'arun/no-ramping'

13 years agoalsa-mixer: Add support for "Line Boost" element
David Henningsson [Wed, 16 Feb 2011 12:33:03 +0000 (13:33 +0100)]
alsa-mixer: Add support for "Line Boost" element

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoRemove remaining ramping/envelope references
Arun Raghavan [Sun, 27 Feb 2011 17:36:16 +0000 (23:06 +0530)]
Remove remaining ramping/envelope references

(part of a patch series removing all ramping code)

13 years agoRevert "Add new subsystem for applying envelopes (such as volume ramps) to audio...
Arun Raghavan [Sun, 27 Feb 2011 17:32:25 +0000 (23:02 +0530)]
Revert "Add new subsystem for applying envelopes (such as volume ramps) to audio signals"

This reverts commit 95a98fe6f2002c9dd448b70bb6944541b5616df3.

Conflicts:

src/Makefile.am
src/pulsecore/envelope.c
src/pulsecore/envelope.h
src/tests/envelope-test.c

(part of a patch series removing all ramping code)

13 years agoRevert "Add volume ramping feature - envelop fix"
Arun Raghavan [Sun, 27 Feb 2011 17:32:21 +0000 (23:02 +0530)]
Revert "Add volume ramping feature - envelop fix"

This reverts commit 8eaa40b6f4cae749610770c85ba500f326d59b50.

Conflicts:

src/pulsecore/envelope.c

(part of a patch series removing all ramping code)

13 years agoRevert "Add volume ramping feature - sink-input modification"
Arun Raghavan [Sun, 27 Feb 2011 17:32:17 +0000 (23:02 +0530)]
Revert "Add volume ramping feature - sink-input modification"

This reverts commit 5318eb35ef3f91836084382a4f3d5ef08d322554.

Conflicts:

src/pulsecore/sink-input.c

(part of a patch series removing all ramping code)

13 years agoRevert "Add volume ramping feature - sink modification"
Arun Raghavan [Sun, 27 Feb 2011 17:32:10 +0000 (23:02 +0530)]
Revert "Add volume ramping feature - sink modification"

This reverts commit 897ef86b7fbb87ef17d30c584e6cd93abfc342bc.

Conflicts:

src/pulsecore/sink.c

(part of a patch series removing all ramping code)

13 years agoRevert "ramping: minor cleanups"
Arun Raghavan [Sun, 27 Feb 2011 17:32:03 +0000 (23:02 +0530)]
Revert "ramping: minor cleanups"

This reverts commit f202af17b717f5b383ac072f80a6c1327bc3143b.

(part of a patch series removing all ramping code)

13 years agoRevert "core: volume ramping fix"
Arun Raghavan [Sun, 27 Feb 2011 17:31:54 +0000 (23:01 +0530)]
Revert "core: volume ramping fix"

This reverts commit aa9348441db34b787784711f19882d6c42fa315d.

(part of a patch series removing all ramping code)

13 years agoAdd src/*-symdef.h to .gitignore.
Tanu Kaskinen [Sun, 27 Feb 2011 10:50:16 +0000 (12:50 +0200)]
Add src/*-symdef.h to .gitignore.

Also remove src/module/.gitignore as this is no longer needed
as pointed out by Arun Raghavan

13 years agosink: Add casts to some printf arguments to get rid of compiler warnings.
Tanu Kaskinen [Sun, 27 Feb 2011 11:21:41 +0000 (13:21 +0200)]
sink: Add casts to some printf arguments to get rid of compiler warnings.

13 years agosink: Don't send unnecessary PA_SINK_MESSAGE_SET_SHARED_VOLUME messages.
Tanu Kaskinen [Sun, 27 Feb 2011 11:20:42 +0000 (13:20 +0200)]
sink: Don't send unnecessary PA_SINK_MESSAGE_SET_SHARED_VOLUME messages.

If send_msg is false, the message will be sent by the caller.

13 years agovirtual-sink: Fix a crash when moving the sink to a new master right after setup.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:43 +0000 (16:16 +0200)]
virtual-sink: Fix a crash when moving the sink to a new master right after setup.

If the virtual sink is moved to a new master right after it has been created,
then the virtual sink input's memblockq can be rewound to a negative read
index. The data written prior to the move starts from index zero, so after the
rewind there's a bit of silence. If the memblockq doesn't have a silence
memchunk set, then pa_memblockq_peek() will return zero in such case, and the
returned memchunk's memblock pointer will be NULL.

That scenario wasn't taken into account in the implementation of
sink_input_pop_cb. Setting a silence memchunk for the memblockq solves this
problem, because pa_memblock_peek() will now return a valid memblock if the
read index happens to point to a hole in the memblockq.

I believe this isn't the best possible solution, though. It doesn't really make
sense to rewind the sink input's memblockq beyond index 0 in the first place,
because now when the stream starts to play to the new master sink, there's some
unnecessary silence before the actual data starts. This is a small problem,
though, and I don't grok the rewinding system well enough to know how to fix
this issue properly.

I went through all files that call pa_memblockq_peek() to see if there are more
similar bugs. play-memblockq.c was the only one that looked to me like it might
be broken in the same way. I didn't try reproducing the bug with
play-memblockq.c, though, so I just added a FIXME comment there.

13 years agovirtual-sink/source: Remove an unused variable.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:42 +0000 (16:16 +0200)]
virtual-sink/source: Remove an unused variable.

13 years agovirtual-sink/source: Use a more descriptive stream name.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:41 +0000 (16:16 +0200)]
virtual-sink/source: Use a more descriptive stream name.

13 years agovirtual-sink: Add a modarg for forcing flat volume.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:40 +0000 (16:16 +0200)]
virtual-sink: Add a modarg for forcing flat volume.

13 years agovirtual-sink: Add a modarg for enabling volume sharing.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:39 +0000 (16:16 +0200)]
virtual-sink: Add a modarg for enabling volume sharing.

13 years agoImplement the "volume sharing" feature.
Tanu Kaskinen [Thu, 24 Feb 2011 14:16:38 +0000 (16:16 +0200)]
Implement the "volume sharing" feature.

When we have a filter sink that does some processing, currently the
benefits of the flat volume feature are not really available. That's
because if you have a music player that is connected to the filter sink,
the hardware sink doesn't have any idea of the music player's stream
volume.

This problem is solved by this "volume sharing" feature. The volume
sharing feature works so that the filter sinks that want to avoid the
previously described problem declare that they don't want to have
independent volume, but they follow the master sink volume instead.
The PA_SINK_SHARE_VOLUME_WITH_MASTER sink flag is used for that
declaration. Then the volume logic is changed so that the hardware
sink calculates its real volume using also the streams connected to the
filter sink in addition to the streams that are connected directly to
the hardware sink. Basically we're trying to create an illusion that
from volume point of view all streams are connected directly to the
hardware sink.

For that illusion to work, the volumes of the filter sinks and their
virtual streams have to be managed carefully according to a set of
rules:

If a filter sink follows the hardware sink volume, then the filter sink's
 * reference_volume always equals the hw sink's reference_volume
 * real_volume always equals the hw sink's real_volume
 * soft_volume is always 0dB (ie. no soft volume)

If a filter sink doesn't follow the hardware sink volume, then the filter
sink's
 * reference_volume can be whatever (completely independent from the hw sink)
 * real_volume always equals reference_volume
 * soft_volume always equals real_volume (and reference_volume)

If a filter sink follows the hardware sink volume, and the hardware sink
supports flat volume, then the filter sink's virtual stream's
 * volume always equals the hw sink's real_volume
 * reference_ratio is calculated normally from the stream volume and the hw
   sink's reference_volume
 * real_ratio always equals 0dB (follows from the first point)
 * soft_volume always equals volume_factor (follows from the previous point)

If a filter sink follows the hardware sink volume, and the hardware sink
doesn't support flat volume, then the filter sink's virtual stream's
 * volume is always 0dB
 * reference_ratio is always 0dB
 * real_ratio is always 0dB
 * soft_volume always equals volume_factor

If a filter sink doesn't follow the hardware sink volume, then the filter
sink's virtual stream is handled as a regular stream.

Since the volumes of the virtual streams are controlled by a set of rules,
the user is not allowed to change the virtual streams' volumes. It would
probably also make sense to forbid changing the filter sinks' volume, but
that's not strictly necessary, and currently changing a filter sink's volume
changes actually the hardware sink's volume, and from there it propagates to
all filter sinks ("funny" effects are expected when adjusting a single
channel in cases where all sinks don't have the same channel maps).

This patch is based on the work of Marc-André Lureau, who did the
initial implementation for Pulseaudio 0.9.15.

13 years agoalsa-mixer: Make sure capture source and input source use right path
David Henningsson [Wed, 19 Jan 2011 14:40:56 +0000 (15:40 +0100)]
alsa-mixer: Make sure capture source and input source use right path

Make sure that mic and line (with common names) use the specific
path instead of the analog-input one.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-mixer: Fixup "Mic"/"Line"/"analog-input" paths to work with the new paths
David Henningsson [Wed, 5 Jan 2011 13:03:15 +0000 (14:03 +0100)]
alsa-mixer: Fixup "Mic"/"Line"/"analog-input" paths to work with the new paths

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-mixer: Add new paths for Internal Mic, Front Mic, Rear Mic and Dock Mic
David Henningsson [Wed, 5 Jan 2011 12:27:53 +0000 (13:27 +0100)]
alsa-mixer: Add new paths for Internal Mic, Front Mic, Rear Mic and Dock Mic

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-mixer: always round towards 0 dB
David Henningsson [Wed, 5 Jan 2011 11:36:59 +0000 (12:36 +0100)]
alsa-mixer: always round towards 0 dB

Always round towards 0 dB. Also add a few debug comments to aid
troubleshooting.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-mixer: add required-any and required-* for enum options
David Henningsson [Mon, 20 Dec 2010 11:29:27 +0000 (12:29 +0100)]
alsa-mixer: add required-any and required-* for enum options

Now you can add required-any to elements in a path and the path
will be valid as long as at least one of the elements are present.
Also you can have required, required-any and required-absent in
element options, causing a path to be unsupported if an option is
(not) present (simplified example: to skip line in path if
"Capture source" doesn't have a "Line In" option).

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-mixer: Add a few well-known descriptions
David Henningsson [Mon, 20 Dec 2010 10:13:37 +0000 (11:13 +0100)]
alsa-mixer: Add a few well-known descriptions

Add front mic, rear mic, and docking line-in. These are likely to be
present on modern hda chips, for reference see
linux-2.6/sound/pci/hda/hda_codec.c:hda_get_input_pin_label

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoalsa-card: Add a new modarg "profile_set" for giving the card a custom profile set...
Tanu Kaskinen [Fri, 25 Feb 2011 14:28:10 +0000 (16:28 +0200)]
alsa-card: Add a new modarg "profile_set" for giving the card a custom profile set configuration file.

13 years agoalsa-mixer: Fix path set building when using the element-output or element-input...
Tanu Kaskinen [Fri, 25 Feb 2011 14:27:27 +0000 (16:27 +0200)]
alsa-mixer: Fix path set building when using the element-output or element-input mapping options in profile set configuration.

When creating synthesized paths, pa_alsa_path_set_new() created duplicate
elements for each path, and one of the duplicate elements would be marked as
required absent. That made path probing fail. While debugging this, I noticed
also that pa_alsa_path_synthesize() didn't initialize p->last_element properly.

13 years agocore: Add a new hook PA_CORE_HOOK_CARD_PROFILE_CHANGED
Colin Guthrie [Fri, 25 Feb 2011 10:27:23 +0000 (10:27 +0000)]
core: Add a new hook PA_CORE_HOOK_CARD_PROFILE_CHANGED

This will allow modules to know when a card profile has changed
and take appropriate action. This might prove useful when developing
UCM so that the appropriate verb can be set.

13 years agocore: Added new hooks: PA_CORE_HOOK_SOURCE_PORT_CHANGED and PA_CORE_HOOK_SINK_PORT_CH...
Kim Therkelsen [Fri, 15 Oct 2010 07:25:12 +0000 (09:25 +0200)]
core: Added new hooks: PA_CORE_HOOK_SOURCE_PORT_CHANGED and PA_CORE_HOOK_SINK_PORT_CHANGED

This allows modules to know when certain ports are changed.
This will allow e.g. a filter module (or LADSAP) to only load
when a certain port is used on the device (e.g. to only filter
headphones and not normal speakers).

(Comment from Colin Guthrie: This may also have use in UCM)

13 years agoSupport for multichannel DSP processing in module-ladspa-sink
Kim Therkelsen [Fri, 15 Oct 2010 07:14:31 +0000 (09:14 +0200)]
Support for multichannel DSP processing in module-ladspa-sink

13 years agoMerge remote-tracking branch 'mkbosmans/mingw32-build'
Colin Guthrie [Fri, 25 Feb 2011 09:24:07 +0000 (09:24 +0000)]
Merge remote-tracking branch 'mkbosmans/mingw32-build'

13 years agosconv_sse: Exclude SSE optimizations for Mac OS X
Edward Rudd [Tue, 22 Feb 2011 15:14:07 +0000 (10:14 -0500)]
sconv_sse: Exclude SSE optimizations for Mac OS X

At least on 32bit compiles, there are not enough registers.

13 years agosolaris: update call of pa_thread_new to new prototype
Edward Rudd [Tue, 22 Feb 2011 16:04:19 +0000 (11:04 -0500)]
solaris: update call of pa_thread_new to new prototype

13 years agocoreaudio: Fix call to pa_thread_new
Edward Rudd [Tue, 22 Feb 2011 15:13:05 +0000 (10:13 -0500)]
coreaudio: Fix call to pa_thread_new

13 years agoAllow read-only or non-existing sink input volume.
Tanu Kaskinen [Mon, 14 Feb 2011 11:41:06 +0000 (13:41 +0200)]
Allow read-only or non-existing sink input volume.

There are two known cases where read-only or non-existing sink input volume is
relevant: passthrough streams and the planned volume sharing logic.
Passthrough streams don't have volume at all, and the volume sharing logic
requires read-only sink input volume. This commit is primarily working towards
the volume sharing feature, but support for non-existing sink input volume is
also added, because it is so closely related to read-only volume.

Some unrelated refactoring in iface-stream.c creeped into this commit too (new
function: stream_to_string()).

13 years agodbusiface-stream: Send the Device property in the GetAll handler.
Tanu Kaskinen [Tue, 22 Feb 2011 15:19:44 +0000 (17:19 +0200)]
dbusiface-stream: Send the Device property in the GetAll handler.

13 years agocore: Link virtual sinks and sources to their streams.
Tanu Kaskinen [Mon, 7 Feb 2011 16:35:51 +0000 (18:35 +0200)]
core: Link virtual sinks and sources to their streams.

This change doesn't add any functionality in itself, but it will be useful in
the future for operating on chains of sinks or sources that are piggy-backing
on each other.

For example, the PA_PROP_DEVICE_MASTER_DEVICE property could
be handled in the core so that each virtual device doesn't have to maintain it
separately. By using the origin_sink and destination_source pointers the core
is able to see at stream creation time that the stream is created by a virtual
device, and then update that device's property list using the name of the
master device that the stream is being connected to. The same thing can be done
also when the stream is being moved from a device to another, in which case the
_MASTER_DEVICE property needs updating.

13 years agobuild-sys: Correct typos in configure
Paul Menzel [Fri, 18 Feb 2011 22:27:20 +0000 (23:27 +0100)]
build-sys: Correct typos in configure

s/Console Kit/ConsoleKit/ [1]
s/DBUS/D-Bus/ [2]

Plus some spelling fixes and context in warning sometimes shown to user

[1] http://www.freedesktop.org/wiki/Software/ConsoleKit
[2] http://www.freedesktop.org/wiki/Software/dbus

13 years agosrc/Makefile.am: add missing space to fix build using uClibc
Henning Heinold [Fri, 10 Jul 2009 10:33:30 +0000 (12:33 +0200)]
src/Makefile.am: add missing space to fix build using uClibc

Using uClibc

AM_LIBADD = $(PTHREAD_LIBS) $(INTLLIBS)

is not empty because `$(INTLLIBS)` is set to `-lintl`. This uncovered a missing space in commit ef0cc745 which resulted in the following build error.

[…]
CC     libbluetooth_ipc_la-ipc.lo
modules/bluetooth/ipc.c: In function 'bt_audio_service_open':
modules/bluetooth/ipc.c:65:26: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
modules/bluetooth/ipc.c: In function 'bt_audio_service_get_data_fd':
modules/bluetooth/ipc.c:110:13: warning: cast increases required alignment of target type [-Wcast-align]
modules/bluetooth/ipc.c:110:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
make[3]: *** No rule to make target `-lintl', needed by `libbluetooth-ipc.la'.  Stop.
make[3]: Leaving directory `/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/pulseaudio-0.9.22-r11.0+gitr0+051d82133f0ae6a57bf66fd200bc8e3591a7d5ca/git/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/pulseaudio-0.9.22-r11.0+gitr0+051d82133f0ae6a57bf66fd200bc8e3591a7d5ca/git/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/pulseaudio-0.9.22-r11.0+gitr0+051d82133f0ae6a57bf66fd200bc8e3591a7d5ca/git'
make: *** [all] Error 2

This patch is taken from OpenEmbedded where it has been present since 2009 for PulseAudio 0.9.15 and greater [1].

[1] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=ef0cc74567b3bb98378c17f6a523bf18ba132ed7
[2] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=7c33f2e906a20e139d53b4f2d8fbc2773a4725b3

Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
CC: Henning Heinold <heinold@inf.fu-berlin.de>
13 years agoCorrect wav file creation for 24/32 and 24 bits sample formats HSD=3669357
Vincent Becker [Tue, 8 Feb 2011 10:24:08 +0000 (11:24 +0100)]
Correct wav file creation for 24/32 and 24 bits sample formats HSD=3669357

13 years agoPulseAudio: added IT block to fix thumb conditional instruction build error messages
Kurt Taylor [Fri, 18 Feb 2011 14:30:03 +0000 (14:30 +0000)]
PulseAudio: added IT block to fix thumb conditional instruction build error messages

See: http://pulseaudio.org/ticket/914

Tweaked-By: Arun Raghavan <arun.raghavan@collabora.co.uk>
13 years agoUse pa_read, pa_write and pa_poll instead of system functions
Maarten Bosmans [Wed, 5 Jan 2011 18:50:44 +0000 (19:50 +0100)]
Use pa_read, pa_write and pa_poll instead of system functions

13 years agotests/rtstutter: Use pa_rtclock
Maarten Bosmans [Tue, 18 Jan 2011 10:28:53 +0000 (11:28 +0100)]
tests/rtstutter: Use pa_rtclock

13 years agoUse pa_* instead of generic functions to improve portability
Maarten Bosmans [Thu, 17 Feb 2011 10:50:10 +0000 (11:50 +0100)]
Use pa_* instead of generic functions to improve portability

13 years agoGive module-waveout a configure switch
Maarten Bosmans [Thu, 17 Feb 2011 10:28:54 +0000 (11:28 +0100)]
Give module-waveout a configure switch

 - Also disable the scary DBus and udev warnings when building for win32
 - and only install some dbus/x11 specific files when appropriate

13 years agomodule-waveout: Adapted to updated API
Maarten Bosmans [Wed, 12 Jan 2011 14:02:18 +0000 (15:02 +0100)]
module-waveout: Adapted to updated API

Waveout sink works again, Wavein source still needs some work.

13 years agowin32: Implement pa_random
Maarten Bosmans [Tue, 18 Jan 2011 10:28:13 +0000 (11:28 +0100)]
win32: Implement pa_random

13 years agowin32: Implement rtclock based on QueryPerformanceCounter
Maarten Bosmans [Tue, 18 Jan 2011 10:26:57 +0000 (11:26 +0100)]
win32: Implement rtclock based on QueryPerformanceCounter

Also remove some unnecessary <time.h> headers.

13 years agowin32: flush stderr after log output
Maarten Bosmans [Mon, 17 Jan 2011 12:17:48 +0000 (13:17 +0100)]
win32: flush stderr after log output

13 years agoImplement some functions for win32
Maarten Bosmans [Thu, 6 Jan 2011 01:10:45 +0000 (02:10 +0100)]
Implement some functions for win32

And disable building binaries for win32 that make no sense there

13 years agoRepair some typos
Maarten Bosmans [Tue, 4 Jan 2011 16:12:09 +0000 (17:12 +0100)]
Repair some typos

13 years agoAdd AM_LDFLAGS more consistently to all commands
Maarten Bosmans [Thu, 6 Jan 2011 00:39:29 +0000 (01:39 +0100)]
Add AM_LDFLAGS more consistently to all commands

13 years agoFix dependencies and include necessary headers
Maarten Bosmans [Thu, 6 Jan 2011 00:35:27 +0000 (01:35 +0100)]
Fix dependencies and include necessary headers

13 years agoUse PCRE if POSIX regex.h is not available
Maarten Bosmans [Tue, 4 Jan 2011 15:48:06 +0000 (16:48 +0100)]
Use PCRE if POSIX regex.h is not available

13 years agoApply #ifdefs around functionality not available on win32
Maarten Bosmans [Wed, 5 Jan 2011 23:51:33 +0000 (00:51 +0100)]
Apply #ifdefs around functionality not available on win32

And also the reverse: around some win32 specific functionality

13 years agoAdapt win32 specific code to current API
Maarten Bosmans [Tue, 4 Jan 2011 16:07:50 +0000 (17:07 +0100)]
Adapt win32 specific code to current API

13 years agoUse <pulsecore/socket.h> instead of <sys/socket.h>
Maarten Bosmans [Tue, 4 Jan 2011 16:03:13 +0000 (17:03 +0100)]
Use <pulsecore/socket.h> instead of <sys/socket.h>

The check whether POSIX socket.h or WIN32 winsock2.h must be included can be
made centrally.  The downside is that some functionality of e.g. arpa/inet.h is
also implemented in winsock.h, so that some files that don't use socket
functions, but do use inet.h functions, must also include pulsecore/socket.h.
(as well as arpa/inet.h)

13 years agoClean up <poll.h> includes
Maarten Bosmans [Tue, 4 Jan 2011 10:17:53 +0000 (11:17 +0100)]
Clean up <poll.h> includes

Instead <pulsecore/poll.h> should be included.  That file includes poll.h on
platform where it is appropriate.  Also remove some unnecessary <ioctl.h>
includes.

13 years agoUse setenv instead of putenv
Maarten Bosmans [Wed, 12 Jan 2011 07:15:44 +0000 (08:15 +0100)]
Use setenv instead of putenv

In theory putenv could be used to handle freeing of strings yourself, but this
was not done in PulseAudio.  That leaves no advantages in using putenv.  With
setenv you're at the mercy of the implementation whether the strings leak, but
at least that is better then a certain leak, as it was before.

13 years agoalsa: disable period wakeups in tsched mode if possible
Pierre-Louis Bossart [Mon, 31 Jan 2011 19:20:27 +0000 (13:20 -0600)]
alsa: disable period wakeups in tsched mode if possible

This patch reflects a new capability that Lennart was wishing
for. Wish granted...

Re-submitting it now that alsa-lib 1.0.24
provides additional entry points to disable period
wakeups in timer-scheduling mode if hardware can
work without it (HDAudio, oxygen and Intel SST).

    Example with standard playback on HDAudio output
    Before change:

    Top causes for wakeups:
       3.8% (  5.4)   [hda_intel] <interrupt>
       2.8% (  4.0)   alsa-sink

    After change:
    Top causes for wakeups:
       2.3% (  3.0)   alsa-sink

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
13 years agoecho-cancel: Make Orc file names less silly
Arun Raghavan [Mon, 25 Oct 2010 08:00:06 +0000 (09:00 +0100)]
echo-cancel: Make Orc file names less silly

The naming was what it was because of the way orc.mak was originally
written. This has changed now.

13 years agobuild: Simplify Orc-related make rules
Arun Raghavan [Tue, 19 Oct 2010 04:29:45 +0000 (09:59 +0530)]
build: Simplify Orc-related make rules

This greatly simplifies the Orc-related make rules. The old system of
distributing generated files is gone, which means that anyone who wants
to build with Orc support enabled needs to have the orcc compiler
installed (presumably the orc 'devel' package in most distros).

13 years agobuild: Move orc.mak out of build/
Arun Raghavan [Sun, 17 Oct 2010 02:55:27 +0000 (08:25 +0530)]
build: Move orc.mak out of build/

That directory is commonly used by developers for out-of-tree builds, so
don't keep the Makefile in there.

13 years agobuild: Remove unnecessary flags in AM_CFLAGS
Maarten Bosmans [Tue, 25 Jan 2011 10:57:30 +0000 (11:57 +0100)]
build: Remove unnecessary flags in AM_CFLAGS

The CFLAGS and LIBS of libsamplerate, libspeex and libsndfile are added to the pulse libraries depending on those libraries.

Also src/pulse/version.h is generated by configure, so it does not need to go in BUILT_SOURCES.

(Slightly tweaked by Colin Guthrie to fix a merge problem relating to BUILT_SOURCES)

13 years agobuild: Don't include empty Makefile.am in subdirs
Maarten Bosmans [Wed, 19 Jan 2011 12:35:38 +0000 (13:35 +0100)]
build: Don't include empty Makefile.am in subdirs

13 years agobuild: Generate module symdefs in src/modules directory
Maarten Bosmans [Tue, 25 Jan 2011 10:01:46 +0000 (11:01 +0100)]
build: Generate module symdefs in src/modules directory

This will make it possible to remove the empty Makefile.am files.
 - module-...-symdef.h files are all generated in src/modules, instead of in the subdir of the module.
 - The default inclusion of src/modules subdirs in AM_CFLAGS can be removed, where necessary (raop) the subdir is
   included in the specific CFLAGS.
 - The src/daemon and src/modules directories are always created on make, to facilitate out of tree builds.
 - AM silent rules are used for the generation of symdef files by m4.
 - For echo-cancel, keep the build dir include for now (and mkdir it) although limit it to just the echo-cancel
   module's CFLAGS (Colin Guthrie)

13 years agoMerge remote branch 'mkbosmans/rate-adjustment'
Colin Guthrie [Mon, 31 Jan 2011 11:45:50 +0000 (11:45 +0000)]
Merge remote branch 'mkbosmans/rate-adjustment'

13 years agoFighting rewinds: Reduce calls to handle_seek
David Henningsson [Thu, 9 Dec 2010 10:08:37 +0000 (11:08 +0100)]
Fighting rewinds: Reduce calls to handle_seek

If many small blocks are in queue, handle_seek is being called
for every one of them, sometimes causing a rewind. Delay the
call until all blocks are handled, then call handle_seek only
once.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoFighting rewinds: Seek and write data in the same message
David Henningsson [Mon, 6 Dec 2010 15:25:25 +0000 (16:25 +0100)]
Fighting rewinds: Seek and write data in the same message

Allow a message in the queue to perform both a seek and a post data.
For clients that do not use PA_SEEK_RELATIVE (e g gstreamer), this
cuts the message count - and sometimes even the rewinds - in half.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agoratelimit: fix log levels of log suppression messages
Lennart Poettering [Sat, 22 Jan 2011 00:08:36 +0000 (01:08 +0100)]
ratelimit: fix log levels of log suppression messages

When logging a suppression message do so on the same log level as the
suppressed messages.

Cherry picked by Colin Guthrie from ec5a7857127a1b3b9c5517c4a70a9b2c8aab35ca
with a couple of additional changes due to extra limiting in master
that was not present in stable-queue.

13 years agoCore: Fix incorrect check of return value
Scott Reeves [Thu, 20 Jan 2011 23:41:21 +0000 (16:41 -0700)]
Core: Fix incorrect check of return value

13 years agobuild: Use MODULE_LIBADD in Makefile.am
Maarten Bosmans [Thu, 20 Jan 2011 11:53:38 +0000 (12:53 +0100)]
build: Use MODULE_LIBADD in Makefile.am

13 years agoMerge commit 'e4979ab5cff84ef64c88bba3a1b6b4c5e02f7777'
Colin Guthrie [Mon, 17 Jan 2011 22:19:10 +0000 (22:19 +0000)]
Merge commit 'e4979ab5cff84ef64c88bba3a1b6b4c5e02f7777'

13 years agotunnel: Fix automatic names when source/sink_name argument is missing.
Colin Guthrie [Sun, 16 Jan 2011 14:34:11 +0000 (14:34 +0000)]
tunnel: Fix automatic names when source/sink_name argument is missing.

Spotted by palmerdabbelt via #894

13 years agomodule-rtp-recv: Request proper rewind after underrun
Maarten Bosmans [Wed, 12 Jan 2011 06:34:28 +0000 (07:34 +0100)]
module-rtp-recv: Request proper rewind after underrun

13 years agomodule-rtp-recv: Remove smoother from write index
Maarten Bosmans [Wed, 12 Jan 2011 06:31:26 +0000 (07:31 +0100)]
module-rtp-recv: Remove smoother from write index

It isn't necessary anymore with the new algorithm.  The slow adjust of the
smoother was even detrimental to the accuracy of the rate estimate.

13 years agomodule-rtp-recv: Average the estimated real sample rate
Maarten Bosmans [Sun, 16 Jan 2011 00:27:29 +0000 (01:27 +0100)]
module-rtp-recv: Average the estimated real sample rate

13 years agomodule-rtp-recv: Use new algorithm for adjusting sample rate
Maarten Bosmans [Wed, 12 Jan 2011 06:24:58 +0000 (07:24 +0100)]
module-rtp-recv: Use new algorithm for adjusting sample rate

13 years agoLimit rate adjustments to small, inaudible jumps
Maarten Bosmans [Fri, 7 Jan 2011 00:25:55 +0000 (01:25 +0100)]
Limit rate adjustments to small, inaudible jumps

The same logic is applied to the sample rate adjustments in module-rtp-recv,
module-loopback and module-combine:
 - Each time an adjustment is made, the new rate can differ at most 2‰ from the
   old rate.  Such a step is equal to 3.5 cents (a cent is 1/100th of a
   semitone) and as 5 cents is generally considered the smallest observable
   difference in pitch, this results in inaudible adjustments.
 - The sample rate of the stream can only differ from the rate of the
   corresponding sink by 25%.  As these adjustments are meant to account for
   very small clock drifts, any large deviation from the base rate suggests
   something is seriously wrong.
 - If the calculated rate is within 20Hz of the base rate, set it to the base
   rate.  This saves CPU because no resampling is necessary.

13 years agomodule-loopback: Add adjust_time to valid args
Maarten Bosmans [Sun, 16 Jan 2011 00:42:20 +0000 (01:42 +0100)]
module-loopback: Add adjust_time to valid args

13 years agoclient: Don't update smoother while corked
Arun Raghavan [Tue, 11 Jan 2011 18:28:25 +0000 (23:58 +0530)]
client: Don't update smoother while corked

This prevents the smoother attached to the stream clock from being
updated while the stream is corked, which in turn ensures that once
corking is completed, pa_stream_get_time() always returns the same value
until the stream is uncorked - i.e., the clock does not advance when the
client believes that it will not.

The actual call to pa_smoother_put() happens on things like stream
suspend/unsuspend, which trigger timing updates. This changes the
smoother coefficients, which means that a call to pa_smoother_get() for
the same value of 'x' can return different values before and after a
timing update.

13 years agoalsa-sink: Don't assume we were able to enable hw-volume or sync-volume (v1.1)
Jyri Sarha [Thu, 13 Jan 2011 14:44:45 +0000 (16:44 +0200)]
alsa-sink: Don't assume we were able to enable hw-volume or sync-volume (v1.1)

This patch also disables mixer callback code if we do not have neither
HW-volume or HW-mute.