Commit graph

5045 commits

Author SHA1 Message Date
David Fries
14bc4548ce doxygen: Fix the "all" comments regarding volume helper functions.
Mostly change "Set the volume of all channels" to
"Set the volume of the first n channels" as the first is incorrect,
it doesn't set all the channels and doesn't explain what n was for.
2010-11-17 22:00:35 +00:00
David Fries
b7303e2dd4 doxygen: Fix documentation typos 2010-11-17 22:00:30 +00:00
Colin Guthrie
352ae22015 sink-input: Fix comment 2010-11-17 21:59:17 +00:00
Colin Guthrie
848dd378bb intended-roles: Mark devices with a form factor of 'headset' as being appropriate for 'phone' streams
This was a result a report by Patrick Ben Koetter relating to his
Logitech Wireless Headset.
2010-10-31 20:33:39 +00:00
Daniel Mack
8a30d4c06e alsa-mixer: add profile for Native Instruments Korecontroller 2010-10-31 20:32:39 +00:00
David Henningsson
a8d76e99ff SSE/MMX/ARM: Fix high frequency noise with unusual number of channels
In the assembly optimized versions of SSE, a noise could occur when the
number of channels were 3,5,6 or 7. For MMX and ARM, this could occur
when the number of channels were 3.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2010-10-13 14:52:13 +01:00
Colin Guthrie
a378c02ebb augment-properties: Fix debug messages and statement bracketing. 2010-10-06 09:16:16 +01:00
Colin Guthrie
9109a188cd suspend: Do not assert when checking for device suspended status and a stream is not linked.
When looping through the streams on a given device checking to see if the
stream is 'active' there should be no assert if the stream is not linked, it
should simply be ignored.

This assert can be hit if a sink and a sink input are both created and setup
but the final put calls are left to the end as is done in module-ladspa-sink.

While the order of the calls in module-ladspa-sink could be altered, we should
deal gracefully with the way it is now and not complain about ending up
in this state.

A trigger case was trivial:
 1. Load a ladspa-sink.
 2. Play a stream and move it to it.
 3. Unload the module, then reload it.
 4. Due to module-stream-restore and module-suspend-on-idle, the hook callbacks
    will ultimately hit this assert.

Thanks to Kim Therkelsen for highlighting this issue.
2010-10-05 10:13:53 +01:00
Colin Guthrie
a21b8328aa device-manager: Ensure that sinks/sources populate the device manager lists in order of their priority.
Currently the order of the sinks is simply that of their position in the idxset which is certainly
not what the user would want.
2010-09-29 22:10:29 +01:00
Colin Guthrie
858abe6cb9 augment-properties: Search for .desktop files in subfolders too. 2010-09-29 22:10:23 +01:00
Colin Guthrie
a7a6f4427d stream-restore: Clear the save_sink/save_source flags on apply_entry.
If the user specifically removes the device element from the stream
restore rule, we have to clear the save_sink/save_source flag of the
stream. This means that other stream routing systems
(e.g. module-device-manager) can take over routing for this
stream. In order to facilitate the reapplication of other routing
rules, we fire a stream change event. Arguably the stream itself
has not changed, but the rules governing its routing have, so
I feel this is justified.
2010-09-29 22:09:58 +01:00
Arun Raghavan
9729966ac3 Add a configure option to change 'udevrulesdir'
This patch serves two purposes:

  1) Allows something other than the de-facto standard udev rules dir or
     /lib/udev/rules.d to be used (the udev build system allows you to
     customise this)

  2) Allows a prefixed, non-root install (right now, the /lib/... path
     is hard-coded into the build system
2010-09-21 22:56:40 +01:00
Colin Guthrie
165cb87c38 x11: Use the default screen for X11 properties.
This commit restores the functionality originally included in 65e807
by Leszek Koltunski.
2010-09-18 11:38:44 +01:00
Colin Guthrie
5c0bc09180 xcb: xcb_get_setup() can return 0, so make sure we check it before using 2010-09-18 10:37:11 +01:00
Colin Guthrie
2c564f2e9e xcb: Ensure the XCB connection is valid before using it. 2010-09-18 10:35:38 +01:00
Colin Guthrie
eef247b57e alsa: Only set the 'first' flag to false when we actually call snd_pcm_start()
Previously, if work_done was false, we could conceivably not call snd_pcm_start().
2010-09-14 19:45:09 +01:00
Daniel Mack
28f4aebfbf alsa-mixer: add profile for Traktor Kontrol S4
This new audio interface from Native Instruments has 2 stereo channels
for both input and output direction. This patch adds mappings for them.
2010-09-14 08:49:53 +01:00
Wim Taymans
1ff360c7b1 alsa: make defines for smoother configuration
Make new defines for the smoother window size and adjust time constants instead
of reusing some unrelated constant.

Increase the smoother window size even more because the bigger it is, the
better. Since we have a 200ms max update interval and the max smoother history
is 64 entries, 10seconds is a good default.

Decrease the smoother adjust time to 1 second. The previous value of 4 seconds
was too much to adapt quickly after a resume.
2010-09-14 08:47:11 +01:00
Wim Taymans
1c29f5582d alsa: work around slightly broken _delay implementations
Use snd_pcm_avail_delay() in pa_alsa_safe_delay() so that we can check the delay
value against the avail value and patch it up when it looks invalid. Only do
this for capture.
2010-09-14 08:46:41 +01:00
Wim Taymans
74c117f49f alsa-time-test: make test usable for capture too
Extend the test to also work for capture devices.
2010-09-14 08:45:52 +01:00
Wim Taymans
1503b8cf9b alsa-source: refactor smoother and device start
Move the code to start the capture and the smoother closer together to improve
smoother accuracy.
Rework things to look more like the alsa sink where the device is started in
only one place.
2010-09-14 08:45:29 +01:00
Wim Taymans
3d9b710bea smoother: avoid losing precision
Avoid losing precision by subtracting uint64 values before converting them to
doubles.
2010-09-14 08:35:52 +01:00
Colin Guthrie
a65825fa45 alsa: Set the rewind safeguard proportionally to sample spec
Currently when rewinding alsa, a fixed value of 256 bytes is used,
which represents 1.33ms @ 48kHz (2ch, 16bit). This is typically fine
and due to DMA constraints we would not want to rewind less than this.

However with more demanding sample specs, (e.g. 8ch 192kHz 32bit)
256 bytes is likely not sufficient, so calculate what 1.33ms would
be and use which ever value is bigger.

Discussed with David Henningsson and Pierre-Louis Bossart here:
 http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/7286
2010-09-04 12:49:26 +01:00
Tanu Kaskinen
8748ebdad3 alsa-sink: Get rid of a compiler warning regarding rewind_safeguard type.
GCC gave a warning, because the pointer given to pa_modargs_get_value_u32() had
type size_t instead of uint32_t.
2010-09-04 12:49:16 +01:00
Pierre-Louis Bossart
514fd1eee8 add rewind-safeguard parameter
Rewinding the ring buffer completely causes audible issues with DMAs.
Previous solution didn't work with tsched=0, and used tsched_watermark
for guardband, which isn't linked to hardware and could become really high
if underflows occurred.

Added separate parameter that can be tuned to hardware limitations and size
of DMA bursts.
2010-09-04 11:41:18 +01:00
Lennart Poettering
e2ef3a1391 alsa: don't make use of tsched related variables when tsched is disabled 2010-09-04 11:41:11 +01:00
Wim Taymans
4fb02d8e0e alsa: increase the smoother window
40ms for the smoother window is too small. Increase the size to 4 seconds, like
we do for the sinks.
2010-09-03 16:18:29 +01:00
Wim Taymans
93750199f8 alsa: resume smoother after unsuspend
The smoother is paused when the device is suspended but never resumed on
unsuspend. Pass the paused = FALSE flag to the pa_smoother_reset() call to make
it unpause when unsuspending. This patch improves source timings quite a bit.
2010-08-23 11:31:46 +01:00
Colin Guthrie
2b88634671 x11: Partially convert to XCB.
This commit mostly converts the X11 handling to XCB. There are still
some uses of XLib to deal with the X11 session handling modules, however all
client-side code should now be free of XLib and thus this should fix Bug #799
2010-08-15 21:41:52 +01:00
Lennart Poettering
4a1072e0bc udev: fix hex decoding 2010-08-15 21:40:49 +01:00
Pierre-Louis Bossart
aaae99d89f alsa: disable rewinds when using ALSA plugins
This is required to when playing on a52: device, rewind is broken
in those plugins.
Credits to Michael Rans <mcarans@yahoo.co.uk> for finding this
workaround, and Tanu Kaskinen <tanuk@iki.fi> for providing
valuable feedback.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
2010-07-15 12:47:34 +01:00
Colin Guthrie
6c8660abd2 alsa: Fix assertion on mmap_write (triggered via a52 plugin) 2010-07-15 12:47:29 +01:00
Colin Guthrie
65f89dca7c rtp: Fix bracketing in pa_rtp_recv.
The syntactically correct error meant that the timestamp was always
marked as found and only the first header was checked.

In the case where the timestamp was the first header, things
would have worked as expected.

Thanks to pino for reporting via bug refs #818
2010-05-08 13:47:51 +01:00
David Henningsson
d519ca41d7 jack: Prevent crash on jack server shutdown 2010-05-08 01:30:22 +02:00
Lennart Poettering
bc7314f14e thread: name all threads so that the names appear in /proc/$PID/task/$TID/comm 2010-05-03 13:28:39 +02:00
Lennart Poettering
22f708a1ec Revert "Fix crash on jack server shutdown"
This reverts commit e756467434.

The patch is incomplete and not entirely correct.
2010-03-22 17:28:53 +01:00
Jez Austin
e8b83fa7c6 socket-client: properly handle asyncns failures
We fail to detect when people disable IPv6 in there kernels. This patch
makes sure we don't ignore this error condition.

http://pulseaudio.org/ticket/752
https://bugzilla.mozilla.org/show_bug.cgi?id=533470
http://bugs.freedesktop.org/show_bug.cgi?id=25742
2010-03-22 16:12:27 +01:00
Colin Guthrie
a7c1778a68 intended-roles: Do not pick monitor sources when doing automatic role-based device selection 2010-03-17 16:03:11 +00:00
David Henningsson
e756467434 Fix crash on jack server shutdown
On sink unlinking, existing sink inputs are moved, which in turn calls
a get latency callback, which references the jack client. Therefore,
make sure the sink is unlinked before the client is closed. Failure to
do so might lead to SIGSEGV.
2010-03-15 08:14:37 +00:00
Daniel T Chen
29845be64d Handle 'Digital Mic' as an 'Input Source'
BugLink: https://launchpad.net/bugs/533877

Some laptops have 'Digital Mic' exposed as an 'Input Source', e.g., Dell
XPS 1330, so handle these, too.
2010-03-12 08:53:23 +00:00
Kees Cook
d3efa43d85 core-util: ensure that we chmod only the dir we ourselves created 2010-03-04 04:17:23 +01:00
Lennart Poettering
0d1154d078 core: rework how stream volumes affect sink volumes 2010-02-23 18:44:35 +01:00
Lennart Poettering
30f28ebf36 esd,simple: use pa_memblockq_pop_missing()
We need to use pa_memblockq_pop_missing() for all request handling,
including the initial request, because otherwise the counters will be
stay off during the entire runtime.

This should fix:

https://bugzilla.redhat.com/show_bug.cgi?id=559467
2010-02-23 00:48:35 +01:00
Lennart Poettering
195069c181 core-util: introduce generic function pa_strip() 2010-02-22 05:06:39 +01:00
Lennart Poettering
dd682d6f96 alsa: reset max_rewind/max_request while suspending 2010-02-22 05:06:33 +01:00
Lennart Poettering
522c446ddc alsa-util: strip spaces from ALSA card/pcm names
http://pulseaudio.org/ticket/778
2010-02-22 04:55:21 +01:00
Lennart Poettering
4a32103d84 native: improve logging for buffer_attrs 2010-02-22 03:40:29 +01:00
Lennart Poettering
a469d44e69 suspend-on-idle: resume audio device even for initially corked streams
We need to resume audio devices even for streams that are created in
corked stat, so that the latency ranges of the audio device are known
during the initial latency negotiation. If we don't the latency
negotiation will be based on placeholder data and changed later on which
clients do not expect.

This should fix issues with Skype.

https://bugzilla.redhat.com/show_bug.cgi?id=554929
2010-02-22 03:22:28 +01:00
Lennart Poettering
b2e9fb6f6e pacat: pass buffer_attr to recording streams too
Pointed out by Colin Guthrie.

https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-February/006698.html
2010-02-21 21:13:02 +01:00
Lennart Poettering
f9b9579cf4 scache: when playing a sample from the cache make sure not queue them up when the sink is suspended
libcanberra already sets the appropriate flags for uncached sample
streams, we now need to make sure to set them for cached samples too.
2010-02-21 17:36:52 +01:00