Jaroslav Kysela [Mon, 2 Jan 2006 12:16:59 +0000 (12:16 +0000)]
pcm - fix the buffer allocation for NONINTERLEAVED mmap access
The previous code did not allocated a separate buffer for all channels
when a NONINTERLEAVED access was used. The result was that only one
"shared" buffer was incorrectly allocated.
Also, the code was a bit cleaned (cosmetic change only).
Clemens Ladisch [Mon, 19 Dec 2005 07:39:03 +0000 (07:39 +0000)]
dmix: add S24_3LE support
Add to the dmix plugin support for the S24_3LE sample format which is
used by 24-bit USB devices.
The optimized assembler version uses only 23 bits for sample data so
that the lowest bit can be used for synchronization because there is no
24-bit cmpxchg instruction.
Playback device is spdif
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
ALSA lib setup.c:549:(add_elem) Cannot obtain info for CTL elem (MIXER,'SPDIF Front',0,0,0): No such file or directory
Playback open error: -2,No such file or directory
Clemens Ladisch [Mon, 12 Dec 2005 09:36:02 +0000 (09:36 +0000)]
seq: reorganize sequencer client numbers
Reduce the maximum possible number of global clients to 16 to make
more numbers available for card clients, and allow dynamically allocated
card client numbers to share the same range as application client
numbers to make sure that all 32 cards can be used at the same time.
Takashi Iwai [Wed, 30 Nov 2005 11:38:24 +0000 (11:38 +0000)]
Allow partial build with selected components
Add --enable-* and --with-pcm-plugins configure options for partial builds.
User can choose the core components (pcm, mixer, rawmidi, hwdep, seq, instr)
via --enable-xxx or --disable-xxx option. As default, all components are
enabled.
The PCM plugins to build can be selected via --with-pcm-plugins option.
For example, to build only rate and linear plugin, pass
--with-pcm-plugins=rate,linear
Passing "all" will select all plugins (it's the default value).
The plug plugin will select linear and copy plugins automatically.
The other auto conversions of plug plugin are enabled only when the
corresponding plugin is selected.
Takashi Iwai [Mon, 21 Nov 2005 10:47:42 +0000 (10:47 +0000)]
abort snd_pcm_dmix_drain when state is SND_PCM_STATE_XRU
From: Sascha Sommer <saschasommer@freenet.de>
this is a fix for bug 0001559.
Unlike my first guesses the real problem is not in the kernel driver but in
alsa-lib. Whenever the current dmix status is xrun and snd_pcm_dmix_drain
gets called the process will hang forever in the poll function. The reason is
that poll gets called even though the timer already stopped.
As described in the bugtracking system this bug was not noticable with alsa
versions that used the old IOCTLS because the SNDRV_TIMER_IOCTL_STOP ioctl
never reached the timer kernel module.
Attached patch fixes this problem for alsa-lib 1.0.10 by simply calling
snd_pcm_dmix_drop when snd_pcm_dmix_drain gets called in the state
SND_PCM_STATE_XRUN.
Takashi Iwai [Thu, 17 Nov 2005 12:08:32 +0000 (12:08 +0000)]
Fix generation of IEC958 subframes
From: Nicolas Boullis <nboullis@debian.org>
While working on an ALSA driver for the audio part of em8300-based MPEG
decoder boards (Sigma Designs' Hollywood+ boards and Creative Labs' DXR3
boards), I think I discovered a bug in the code that generates IEC958
subframes from linear samples (iec958 plugin): M and W preambles are
swapped, and B preambles should only be used on even subframes. The
attached patch fixes this issue.
Clemens Ladisch [Mon, 17 Oct 2005 16:10:16 +0000 (16:10 +0000)]
file plugin: fix various bugs
Initialize wbuf_used_bytes, adjust appl_ptr in the rewind and forward
callbacks, and adjust the offset when a data block straddles the
boundary of the wbuf buffer.
New 'pcm_args_by_class' @func available for using in configuration files.
Returns card, device args list formatted as "CARD=N,DEV=M" by specified
pcm class and index.
Mikael Magnusson [Tue, 13 Sep 2005 10:36:16 +0000 (10:36 +0000)]
emu10k1: Front channels via fxbus 8 and 9
Routes front channels via fxbus 8 and 9 instead of fxbus 0 and 1. This
makes the front and default devices independent of each other, and
"Wave Surround", "Wave Center" and "Wave LFE" don't have to be muted
during 5.1 playback.
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
Jaroslav Kysela [Thu, 8 Sep 2005 06:48:30 +0000 (06:48 +0000)]
direct plugins - change group according ipc_gid for the socket file
This patch fixes problem when ipc_perm are 0660 and you want to share dmix
with more users in the specified group.
Fixed the bug producing silent tones with some combinations of plugins.
The internal buffer handling is now better (cleaner) integrated with
snd_pcm_generic_*().
Jaroslav Kysela [Wed, 24 Aug 2005 10:41:16 +0000 (10:41 +0000)]
mixer API - extend simple enumerated controls for direction tests
Added snd_mixer_selem_is_enum_playback() and
snd_mixer_selem_is_enum_capture() functions.
Jaroslav Kysela [Mon, 22 Aug 2005 12:07:55 +0000 (12:07 +0000)]
moved simple mixer abstraction modules to modules/mixer/simple directory
Compile dynamic modules outside the alsa-lib tree to allow linking them
against libasound.so - proper versions of dynamic symbols.
Jaroslav Kysela [Thu, 18 Aug 2005 10:42:22 +0000 (10:42 +0000)]
PCM direct plugins - handle EINTR in the resource server
The poll() call in the resource server for PCM direct plugins might be
interrupted with an signal. Handle the case gracefuly and don't exit
the server (which brings another problems - cannot connect to socket -
later).
Jaroslav Kysela [Tue, 16 Aug 2005 12:19:15 +0000 (12:19 +0000)]
direct plugins (dmix) - suspend/resume fixes
- this patch adds support for suspend & result for dmix and other
direct plugins
- the timer detection / initialization (TREAD support) was redesigned and
the check for proper driver version was moved to the timer_hw.c
attached is an updated ICE1724.conf - I have added channels X parameters to
the .pcm.surroundXX-fields, because otherwise it's for example not possible
to play a 5.1-stream on surround51 and a stereo-stream on side simultaneous.
I need this feature to do multiroom-sound through one single sound-card (one
room playing a DVD with 5.1, another room playing some MP3s through channels
7 and 8).
I hope you could follow my explanations and will add this to the tree.
Jaroslav Kysela [Sun, 31 Jul 2005 09:08:43 +0000 (09:08 +0000)]
The simple mixer abstraction - more work
- separated the "base library" from ac97.c (dynamically loaded)
- added necessary handling of all private structures
- added selector and sid registration functions and handling code
- added basic code for hda.c (yeah, my notebook has this hw)