Commit graph

1016 commits

Author SHA1 Message Date
Takashi Iwai
d730ff3556 Fix segfault with PCM rate plugin
Fix segfault with PCM rate plugin (bug#1878)
2006-03-02 17:01:58 +00:00
Clemens Ladisch
09f598e57c allow changing of device directory path
Add configuration options to change the default device path from the
default /dev/snd.  This is useful for embedded systems that do not want
subdirectories in /dev.
2006-02-27 10:03:19 +00:00
Clemens Ladisch
4433248bf3 remove superfluous free() checks
free() correctly handles NULL pointers, so we can omit explicit checks
for that condition.
2006-02-27 09:58:32 +00:00
Clemens Ladisch
45850439b3 Do not abort in snd_xxx_close() functions
Remove several memory leaks by not aborting prematurely from a
snd_xxx_close() function when some operation fails.
This can happen when a USB device was unplugged.
2006-02-27 09:54:57 +00:00
Takashi Iwai
f9c7321670 Fix infinite loop in snd_pcm_wait()
Fix possible infinite loop in snd_pcm_wait() with direct plugins
when XRUN occurs during poll.
2006-02-20 19:34:45 +00:00
Takashi Iwai
43a04650f1 Remove bogus ATTRIBUTE_UNUSED
Removed bogus ATTRIBUTE_UNUSED.
2006-02-20 19:33:53 +00:00
Takashi Iwai
b4f9e5f8e7 Fix plug conversion of non-linear formats
Fix plug conversion of non-linear formats with channel or rate conversion.
2006-02-17 20:50:45 +00:00
Takashi Iwai
c002c69d52 Fix fullduplex with dmix/dsnoop
Fixed the fullduplex of dmix and dsnoop plugins due to confliction of
ipc keys.
2006-02-17 20:50:00 +00:00
Takashi Iwai
67868a886f Fix check of nonblock option
Fix the check of nonblock option for all hw layer.
Instead of passing in asound.conf, check the option in snd_pcm_hw_open()
so that the nonblock option is referred in the case of "type hw ..." style
definition, too.
2006-02-17 20:49:21 +00:00
Jaroslav Kysela
59b598fac0 Fixed snd_pcm_set_params() error code 2006-02-01 06:34:43 +00:00
Jaroslav Kysela
937f396663 snd_pcm_set_params() - added workaround for vortex driver 2006-01-31 09:16:05 +00:00
Takashi Iwai
eccc92a34d Fix infinite parse of recursive definitions
Fixed the infinite parse (and eventually segfault) of recursive definitions.
Also fixed the parse of a string slave PCM of direct plugins.
2006-01-30 14:41:51 +00:00
Nathan Kurz
d9cfe1e9ff pcm_ladspa - setup control outputs all times
It turned out that plugins that had control outputs were not being set
up properly if there was no corresponding "output" section.

Signed-off-by: Nathan Kurz <nate@verse.com>
2006-01-20 08:17:49 +00:00
Clemens Ladisch
9a8a3374a1 LADSPA plugin: fix compilation
Fix a typo in the LADSPA plugin.
2006-01-19 08:23:22 +00:00
Jaroslav Kysela
48d731debf pcm laspa plugin - Added credits to MediaNet AG 2006-01-16 19:01:13 +00:00
Takashi Iwai
7eff603576 Support multi-card/device for direct plugins
- Support multi-card/device for dmix/dsnoop/dshare plugins
  The unique ipc key is calculated based on card/device/sub index

- Clean up and share the code among all d* plugins

- Refer the defaults.pcm.* configuration
  The base ipc_key number, ipc_gid and ipc_perm are referred.
2006-01-16 13:15:32 +00:00
Takashi Iwai
3d0e3e2517 Add "nonblock" option for hw layer
Added a new "nonblock" option for hw layer.  This controls the non-blocking
"open" mode as default.

This option is set to TRUE as the default configuration.  If the old behavior
is preferred, set "defaults.pcm.nonblock" to 0 in /etc/asound.conf.
2006-01-13 11:52:01 +00:00
Takashi Iwai
0e15e6a97a Fix compile warnings
Fix compile warnings about cast signedness.
2006-01-10 11:03:02 +00:00
Takashi Iwai
6333b48061 Fix S24_BE format conversions
Fix S24_BE format conversions by René Rebe <rene@exactcode.de>.
2006-01-09 14:40:08 +00:00
Jaroslav Kysela
23f7e58fa1 implementation of pcm simple helper function
- snd_pcm_recovery()
- snd_pcm_set_params()
- snd_pcm_get_params()
2006-01-06 19:59:56 +00:00
Jaroslav Kysela
b08e01ca9e 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).
2006-01-02 12:16:59 +00:00
Takashi Iwai
eb7d61d08c Fix meter plugin
Fix the wrong mmap with meter plugin.
2005-12-22 16:24:27 +00:00
Clemens Ladisch
2a438a6eec dmix: fix interleaved check
When checking that samples are properly interleaved, use the actual
sample size instead of always assuming 16 bits.
2005-12-19 07:40:15 +00:00
Clemens Ladisch
45f63a8735 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.
2005-12-19 07:39:03 +00:00
Takashi Iwai
76f7af823b Fix compile warnings
Fix trivial compile warnings.
2005-12-16 18:43:49 +00:00
Jaroslav Kysela
aa21cf4d7c ladspa plugin - SIGSEGV fix when label is not specified 2005-12-13 14:25:13 +00:00
Jaroslav Kysela
1f231e2e1a big ALSA LADSPA plugin rewrite for multiple channel LADSPA plugins
This is major rewrite of the LADSPA plugin to satisfy requirements for
the LADSPA plugins with multiple audio inputs and / or outputs.
2005-12-13 14:08:58 +00:00
Jaroslav Kysela
bdfbbed5ca pcm dump() routines update: use spaces to indent texts 2005-12-11 08:24:13 +00:00
Jaroslav Kysela
1439c2be86 pcm_ladspa plugin - more verbose output
Added more verbose output for dump() callback inspired with bug#1554 .
2005-12-05 15:20:28 +00:00
Jaroslav Kysela
8b908f233d direct plugins - fixed ipc_gid initialization when gid specified as number 2005-12-04 09:19:11 +00:00
Takashi Iwai
3ffeaf4cb1 Minor optimization on mmap
Minor optimization on mmap.
2005-11-30 11:39:21 +00:00
Takashi Iwai
db1e39a4e8 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.
2005-11-30 11:38:24 +00:00
Takashi Iwai
79c3d0a1ef Move snd_is_local() to socket.c
Move snd_is_local() to socket.c since it's used in control_shm, too.
2005-11-30 11:31:18 +00:00
Takashi Iwai
d9680921a9 Use snd_user_file() in pcm_ladpsa.c
Use snd_user_file() in pcm_ladpsa.c to get rid of wordexp.
2005-11-29 15:20:07 +00:00
Takashi Iwai
52372e0187 Fix segfault of iec958 plugin with preamble
Fix segfault of iec958 plugin with preamble (bug#1571).
2005-11-23 16:46:39 +00:00
Takashi Iwai
d4bbf241ba Abort from snd_pcm_dshare_drain in XRUN state
Fixed the hang-up in snd_pcm_dshare_drain() when the state is XRUN.
2005-11-21 10:51:43 +00:00
Takashi Iwai
8495f42feb 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.
2005-11-21 10:47:42 +00:00
Clemens Ladisch
5057f8bbea fix compilation with gcc 2
Fix compilation with gcc 2.* by removing a superfluous variable definition.
2005-11-20 14:11:09 +00:00
Takashi Iwai
6b85e23fa3 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.
2005-11-17 12:08:32 +00:00
Jaroslav Kysela
64e9372874 pcm_ladspa - fix locale issues
See bug#1553 for more details.
2005-11-14 09:50:29 +00:00
Jaroslav Kysela
ba21d25808 direct pcm plugins - fixed dump output name for dshare and dsnoop 2005-11-01 13:35:52 +00:00
Takashi Iwai
69194a1f99 Fix channel_info callback of plugins
Fixed channel_info callback of plugins with different src/dest sizes.
2005-10-27 16:58:40 +00:00
Clemens Ladisch
37dee92d73 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.
2005-10-17 16:10:16 +00:00
Takashi Iwai
31e0ea4eed Fix mmap and channel_info of hook plugin
Fix mmap and channel_info of hook plugin.
mmap_shadow must be set for this plugin to work.
2005-10-10 15:17:58 +00:00
Takashi Iwai
2f71b8753b Fix type-punning
Fixed compile warnings on the latest gcc about type-punning.
Removed unnecessary casts.
2005-09-29 19:11:50 +00:00
Jaroslav Kysela
4284d79212 PCM add missing pcm types - DSNOOP, IEC958, IOPLUG, EXTPLUG 2005-09-21 08:23:28 +00:00
Jaroslav Kysela
e38cf30629 pcm - Add SOFTVOL pcm type 2005-09-21 08:20:18 +00:00
Takashi Iwai
5bf3b31cf1 Fix endianess with dmix plugin
Allow different endianess with the generic dmix code, mainly for
big-endian architectures.
2005-09-19 12:37:08 +00:00
Takashi Iwai
5240107559 Removed unused function
Clean up: Removed unused function.
2005-09-12 17:50:57 +00:00
Takashi Iwai
d45d5a1470 Don't return error if chown() fails
Don't take serious even if chown() fails in the creation of direct server.
It happens if a user doesn't belong to the group specified in the config.
2005-09-12 17:50:16 +00:00