i386/x86_64 alsa-lib may need to handle big-endian formats, e.g.
when running via qemu on PPC. The generic dmix code already has
both endian support, so let's use it as fallback.
Enabling the slowptr options does not make snd_pcm_delay() and related
functions much slower than they would have been with a hw device, while
disabling this option greatly reduces the accuracy of those functions,
thus creating more jitter in any media player application that
synchronizes its output to the sound device.
Therefore, it is preferrable to have this option enabled by default.
This patch allows for gain in the softvol plugin, in addition to attenuation.
The plugin now has a "max_dB" parameter (up to 50 dB) as well as the
original "min_dB" parameter (down to -51 dB). max_dB defaults to 0 dB, so
unless max_dB is specified in a device conf, the behavior of the plugin will
be the same as before (attenuation only).
HDA-Intel.conf is also modified to use softvol for its default capture.
So now, capture is filtered through softvol (range -30 to +30 dB) before
being passed on to dsnoop as before.
The softvol plugin allows a range of -51 to +50 dB, so max_dB could be
increased to 50. But eventually samples are going to get clipped. At 40
dB I was beginning to get clipping when recording a sample sound at a
"reasonably soft" volume using a digital mic on the stac9205 HDA codec.
The motivation for this work is that some HDA codecs have no hardware gain
control for some paths. For instance, the stac9205 has support for digital
mics, but there is no gain control widget for this signal before it is placed
on the Azalia link (only a mute). Therefore gain can only be accomplished
via software.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Added --with-configdir and --with-plugindir options to configure
which specify the directories for config files and plugin objects
respectively. The default paths when these options are not
specified are unchanged.
Added --enable-symbolic-functions configure option. This will detect
and pass -Bsymbolic-functions linker option, which gives you better
performance and smaller binary size. Only recent binutils supports
this option.
Change the rate converter type to allow string arrays in addition to
a string. When a string array is given, the rate plugin probes each
string and try to load the converter plugin in the order of the list.
For example, you can set
defaults.pcm.rate_converter [ "samplerate" "linear" ]
so that samplerate plugin is preferred to linear plugin if it's
installed.
This replaces all occurences of alsa-devel@lists.s[ource]f[orge].net
that a simple recursive grep found in the current HG ALSA repos by
alsa-devel@alsa-project.org.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Instead of link_fd, more generic callback link_slaves is introduced.
This is called for linking the slave streams as the source to the
given master stream.
Improve the sample conversion in plug layer for the sample bits
reduction. Use round instead of truncating, which introduces
more quantization noise.
Original patch by Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Check _POSIX_SOURCE for struct timeval definition.
In rare cases, _POSIX_C_SOURCE isn't defined but only _POSIX_SOURCE
is set, and it results in the confliction of timeval definition.
Remove same calls of strdup() that were unnecessary because the
temporary string would not be modified or held longer than the lifetime
of the original string.
Updated emu10k1.h for newer version.
The size of emu10k1_fx8010_control_gpr_t is changed. The apps need to
issue SNDRV_EMU10K1_IOCTL_PVERSION first to switch to the new ABI.