Jaroslav Kysela [Mon, 3 Jan 2000 10:25:56 +0000 (10:25 +0000)]
Takashi Iwai <iwai@ww.uni-erlangen.de>
Mon, 03 Jan 2000 10:47:02 +0100
- bugfix: proper handling of exclusive subscription
- bugfix and update: alsa-lib/test/seq* stuff
- minor updates (long option support, etc) of aconnect and aseqnet
- man pages for aconnect and aseqnet are added
Jaroslav Kysela [Thu, 30 Dec 1999 15:21:52 +0000 (15:21 +0000)]
Takashi Iwai <iwai@ww.uni-erlangen.de>
Thu, 30 Dec 1999 16:07:12 +0100
- fix of memory leak in seq_midi
- snd_seq_extract_output() accepts NULL ev_res argument (for removing the
error event without malloc).
- addition of snd_seq_drain_input_buffer() and snd_seq_drain_output_buffer()
functions in alsa-lib
Jaroslav Kysela [Wed, 22 Dec 1999 15:05:51 +0000 (15:05 +0000)]
Takashi Iwai <iwai@ww.uni-erlangen.de>
Wed, 22 Dec 1999 15:51:37 +0100
Changes in alsa-driver:
1. SND_SEQ_DEST_DIRECT was removed. For direct dispatching, specify
the scheduling queue as SND_SEQ_QUEUE_DIRECT.
Source compatibility is kept if alsa-lib functions are used to set
or check direct mode.
Tested: pmidi, playmidi1, aconnect, aseqview, OSS emulation
2. The error event can be bounced to the sender as an encapsulated
event with SND_SEQ_EVENT_BOUNCE type. If the orignal event is
variable length (like SYSEX), the data body is added after the
copied event data. (To access to it, use
snd_seq_event_bounce_ext_data() macro.)
This feature is enabled only when the sender is opened with read
flag and has a client-filter flag SND_SEQ_FILTER_BOUNCE, so that
as default it is disabled.
3. Maximum size of VARIABLE length event is defined as 2048 bytes.
Larger events will be refused.
Note that this is not the size of VARUSR nor VARIPC event.
4. Return error code was revised.
Possible errors for read():
-ENXIO invalid client or file open mode
-ENOSPC FIFO overflow (the flag is cleared after this error report)
-EINVAL no enough user-space buffer to write the whole event
-EFAULT seg. fault during copy to user space
Possible errors for write():
-ENXIO invalid client or file open mode
-ENOMEM malloc failed
-EFAULT seg. fault during copy from user space
-EINVAL invalid event
-EAGAIN no space in output pool
-EINTR interrupts while sleep
-EMLINK too many hops
others depends on return value from driver event_input callback
Changes in alsa-lib:
5. Behavior of snd_seq_flush_output() was changed.
It flushes data in output buffer as much as possible. This has
two advantages. One is that most data can be sent at one call,
and another is that the error in write() can be detected directly
from this function.
The demerit of this implementation is that in non-blocking mode, it
tries twice write() even if write pool of sequencer is full, which
is not actually error. In this case, flush_output() always returns
-EAGAIN error code.
After an error is detected (except for -EAGAIN in non-blocking
mode), you should remove the error event via
snd_seq_extract_output() as below. Otherwise, it'll remain in
output buffer and cause the same error again.
6. Some functions were added:
snd_seq_exract_output(seq, &event)
This extracts the first event on *output* buffer. This will
be useful to know (and remove) the event which causes error in
write().
snd_seq_event_input_pending(seq, fetch)
Retunrs the number of events on input buffer.
If no events exist in input buffer, it fetches from sequencer
(only when flag is true).
snd_seq_event_input_selective(seq, &ev, type, blocking)
Retrieve the event from input with the given event type.
If blocking is true, it waits until the target event is
received. It'll be useful for checking bounced error or
waiting for hand-shake results (eg. loading insruments).
Jaroslav Kysela [Sun, 12 Dec 1999 17:26:13 +0000 (17:26 +0000)]
Uros Bizjak <uros@kss-loka.si>
Sun, 12 Dec 1999 17:30:00 +0100 (CET)
Submitted adpcm.c has messed source - it is OK, but 'indent' wrapped all
long lines. I corrected that, and please find a patch to current CVS which
cleans this mess.
Jaroslav Kysela [Sun, 12 Dec 1999 17:23:44 +0000 (17:23 +0000)]
Abramo Bagnara <abramo@alsa-project.org>
- cleaned oss capture
- fixed conversion plugin insertion
card share:
- fixed bugs in group control
- give to OSS mixer a chance to control as more elements as possible
Jaroslav Kysela [Sat, 11 Dec 1999 20:21:55 +0000 (20:21 +0000)]
Uros Bizjak <uros@kss-loka.si>
Sat, 11 Dec 1999 19:16:00 +0100 (CET)
Attached is a diff for new adpcm implementation. Sun's CCITT g721 adpcm
codec is NOT IMA adpcm. IMA codec is very simple and better than g721, so
I replaced g721 with included one. Implementation has been tested against
some test files which I got, and should work according to IMA
specification.
Jaroslav Kysela [Sat, 11 Dec 1999 11:46:05 +0000 (11:46 +0000)]
Abramo Bagnara <abramo@alsa-project.org>
Sat, 11 Dec 1999 08:45:24 +0100
- changed lowlevel drivers to use pcm_misc.c functions
- fixed some bugs in pcm_plugin_build
- the plugin code is shared between alsa-lib and alsa-driver
Jaroslav Kysela [Thu, 9 Dec 1999 09:21:56 +0000 (09:21 +0000)]
Abramo Bagnara <abramo@alsa-project.org>
Thu, 09 Dec 1999 09:56:47 +0100
Rate plugin is now ready for optimizations (I've verified reading asm
generated that loop unrolling is not fully satisfactory, I'll try
another solution later today).
Jaroslav Kysela [Tue, 7 Dec 1999 10:10:07 +0000 (10:10 +0000)]
Abramo Bagnara <abramo@alsa-project.org>
Tue, 07 Dec 1999 08:44:05 +0100
- pcm mixer elements splitted for subchannel handling
- small fix to pcm device element
Jaroslav Kysela [Wed, 1 Dec 1999 19:44:14 +0000 (19:44 +0000)]
Wed, 1 Dec 1999 19:46:33 +0100 (CET)
Uros Bizjak <uros@kss-loka.si>
Included in this message, you will find a diff to alsa-lib, which
implements g721 adpcm codec. It works well (only consumes a lot of CPU),
and it plays back the same data as is recorded.
Also added is CSP patch, which adds noise suppression when CSP is
started or stopped (A few TODOs less :) Also changed is copyright for
mulaw, alaw and adpcm codecs (Based on sun implementation ... + I added
myself - if you don't mind. Please check this copyright, if it is OK)