Commit graph

77 commits

Author SHA1 Message Date
Dylan Reid
77a68b56ab alsa: Set return code before printing it.
The error message for snd_pcm_hw_params_set_period_wakeup was
printing "ret", but "ret" wasn't being set.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
2011-10-26 16:19:45 +02:00
Pierre-Louis Bossart
72377fcad5 alsa: fix list of sampling rates
add all standard audio rates

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2011-10-18 09:00:58 +05:30
Arun Raghavan
e67440e220 alsa: Probe sink/source sample rates
This probes sink and source sample rates and uses this information to
validate rate changes and check incoming passthrough formats.
2011-10-17 22:52:47 +05:30
Maarten Bosmans
b4e938e194 Move i18n.[ch] to src/pulsecore
The header is used in files troughout the tree and is not included in the public api,
so it belongs in pulsecore, not in pulse.
2011-08-11 13:23:42 +02:00
Maarten Bosmans
dd9265ac78 Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
Maarten Bosmans
ecf09f2cd6 Fix up according to Coding Style
Only whitespace changes in here
2011-03-11 11:49:35 +00:00
Pierre-Louis Bossart
051d82133f 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>
2011-02-01 09:41:02 +00:00
Arun Raghavan
1cbacead13 alsa: Sprinkle some PA_UNLIKELYs around error checks
This just adds a few PA_UNLIKELY macros around some error paths in
frequently called code.
2010-11-18 08:51:06 +00:00
Pierre-Louis Bossart
13cce22268 alsa: remove redundant call to snd_pcm_nonblock()
The PCM handle is already opened with the SND_PCM_NONBLOCK flag.
This additional call is useless.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
2010-11-16 21:05:22 +00:00
Wim Taymans
f29acfd0e0 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-09 17:03:34 +01:00
Lennart Poettering
0b3d7c637c alsa-util: strip spaces from ALSA card/pcm names
http://pulseaudio.org/ticket/778
2010-02-21 22:00:49 +01:00
Lennart Poettering
6daf112ce0 alsa: fix minor sampling rate deviations before adjusting the buffer size 2009-11-20 20:27:03 +01:00
Lennart Poettering
53b046d5c9 alsa: disable timer-based scheduling inside a VM
In virtual machines sound card clocks and OS scheduling tend to become
unreliable, adding various 'uneven' latencies. The adaptive algorithm
that handles drop-outs does not handle it this well: in contrast to
drop-outs on real machines that are evenly distributed, small and can
easily be encountered via the adpative algorithms, drop-outs in VMs tend
to happen abruptly, and massively, which is not easy to counter.

This patch simply disables timer based scheduling in VMs reverting to
classic IO based scheduling. This should help make PA perform better in
VMs.

https://bugzilla.redhat.com/show_bug.cgi?id=532775
2009-11-05 03:23:08 +01:00
Lennart Poettering
c96d2d1117 alsa: disable period event only with tsched=1 2009-10-06 00:17:54 +02:00
Lennart Poettering
88b777311d alsa: make build gcc clean on 32bit 2009-09-20 03:17:36 +02:00
Lennart Poettering
bb36bb4bbe alsa: properly convert sample buffer sizes 2009-09-11 01:21:46 +02:00
Lennart Poettering
d5f43bd4c6 alsa: disable tsched for software devices before we configure the buffer metrics so that we don't accidently set a buffer size that is suitable for tsched where we don't use tsched 2009-09-09 23:57:49 +02:00
Lennart Poettering
557c429510 alsa: rework buffer/period configuration
- As discussed on alsa-devel it's probably better to initialize the
  buffer size first, followed by the period size. If that fails try the
  other way round. If that fails try to configure only buffer size. If
  that fails try to configure only period size. Finally, try to
  configure neither.

- Don't require integral periods anymore.

Both of these changes should help improving compatibility with various
weirder sound devices, such as TV cards.
2009-09-09 04:28:52 +02:00
Lennart Poettering
f5046759cd llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixes 2009-09-08 23:46:23 +02:00
Lennart Poettering
39aa1cf94d alsa: revert to first set number of periods, then set buffer size
Apparently some ALSA drivers aren't happy with getting the buffer size
configured first followed the period size. So swap the order again and
document this for future reference so that we don't turn that around
again.
2009-07-31 02:07:24 +02:00
Lennart Poettering
348dcd6a31 alsa: unify alsa log handling and snd_config_update_free_global() handling in one place 2009-06-18 21:27:02 +02:00
Lennart Poettering
8fe50b0d7c alsa,core: include mapping name in description strings 2009-06-18 04:38:59 +02:00
Lennart Poettering
334325efd7 alsa: allow placing device id in alsa device strings at arbitrary positions 2009-06-17 04:17:25 +02:00
Lennart Poettering
31575f7766 alsa: rework mixer logic
Completely rework mixer logic. This now allows controlling a full set of
elements from a single sink's volume slider/mute button.

This also introduces sink and source "ports" that can be used to choose
different input or output ports with the UI. (i.e. "mic"/"line-in" or
"speaker"/"headphones".

The mixer paths and device maps are now configered in external
configuration files and can be tweaked as necessary.
2009-06-17 03:45:14 +02:00
Lennart Poettering
1e8a374f2f alsa: fix bad memory access for devices that lack a mixer 2009-06-10 23:22:12 +02:00
Lennart Poettering
0cb383717e alsa: be a bit more verbose when a hwparam call fails 2009-05-14 01:25:07 +02:00
Lennart Poettering
dfd6b61cd1 alsa: include mixer name in sink/source properties 2009-05-12 22:55:50 +02:00
Lennart Poettering
4bffc7849f alsa: initialize buffer size before number of periods to improve compat with some backends 2009-05-01 04:16:17 +02:00
Lennart Poettering
d8710711fb alsa: allow configuration of fallback device strings in profiles
This has the benefit that we can properly support ALSA devices where
only the raw 'hw' device exists but no 'front' although it's a proper
2ch stereo device.
2009-04-29 01:58:18 +02:00
Lennart Poettering
ad2a0ab40b alsa: remove debug code 2009-04-19 19:25:42 +02:00
Lennart Poettering
98a25c506e alsa: properly convert return values of snd_strerror() to utf8 2009-04-19 19:22:51 +02:00
Lennart Poettering
49dcf0940e alsa: include the alsa mixer control that is used in the property list 2009-04-13 22:56:25 +02:00
Lennart Poettering
6fd8fd18c2 alsa: store mixer controls to use in profile data
This allows us to easily use different mixer controls for analog and
spdif output.
2009-04-13 22:56:19 +02:00
Lennart Poettering
89f74cb858 alsa: when passing emptry mixer control name, force sw volume 2009-04-13 22:45:31 +02:00
Lennart Poettering
5388b44b9a alsa: when printing warning about bogus data from alsa include snd_pcm_dump() 2009-04-10 01:58:39 +02:00
Lennart Poettering
77a1e3876b refuse to initialize on modem devices 2009-04-04 04:12:42 +02:00
Maarten Bosmans
8bcb9c6910 various spelling fixes 2009-04-04 02:27:13 +02:00
Lennart Poettering
143e1ba739 downgrade a few messages 2009-04-03 17:49:05 +02:00
Kyle Cronan
92ae5f1a74 Specifying ALSA mixer control
On Fri, Mar 27, 2009 at 7:21 AM, Lennart Poettering <lennart@poettering.net> wrote:

>> I tried installing the latest git sources on my Ubuntu Jaunty box but
>> it just broke sound in all my applications.  For my own purposes, I'm
>> going to need to start with the Ubuntu-patched 0.9.14.  However, if
>> you are willing to accept this patch I will forward port it so that it
>> applies to the latest sources.  It's a completely harmless change, so
>> why not apply it?
>
> Yes, I am happy to apply it. Could you please update it for current git?
>

Great.  An updated patch is attached.  For symmetry, I added this
option to the alsa source module as well.

The Ubuntu folks have customized pulse so much that it is difficult
for me to get this version working on my system.  For this patch I
have only made sure that it compiles.  But it does pretty much the
same thing as the one for 0.9.14, which is working great for me.

Thanks,
Kyle
2009-03-31 00:56:41 +02:00
Lennart Poettering
e3f15104cf don't enabled tsched on software ALSA devices 2009-03-30 18:00:23 +02:00
Lennart Poettering
025107876c fix channel mapping for a52 devices. Closes #508 2009-03-20 14:15:18 +01:00
Colin Guthrie
86dee05aec Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
Lennart Poettering
671b927955 add logic for initializing a useful icon name 2009-03-01 21:38:27 +01:00
Lennart Poettering
784ac5b0da get additional device data from udev 2009-03-01 21:38:22 +01:00
Lennart Poettering
03ac71bcad don't put both the card and the pcm name in the description of a device if one contains the other 2009-02-24 11:29:11 +01:00
Lennart Poettering
c341010304 implement device reservation scheme 2009-02-24 06:13:39 +01:00
Lennart Poettering
ec9f8f10f3 if ALSA gives us nonsensical data at least try to fix it up a little 2009-02-24 06:06:04 +01:00
Lennart Poettering
33601afbb1 print driver name when we encounter driver bugs 2009-02-23 22:56:09 +01:00
Lennart Poettering
557a90c487 add new wrapper pa_alsa_safe_delay() around snd_pcm_delay() 2009-02-23 22:55:33 +01:00
Lennart Poettering
5cc9d970c8 add new function pa_alsa_get_driver_name_by_pcm() 2009-02-23 22:54:28 +01:00