Hi,
as some people have asked about aloop bugs and developments, I started
working on it a bit. The fact is that aloop is buggy per design in
two points:
- Sharing the same buffer for both playback and capture doesn't
work. The playback app may change the "available" buffer area
at any time. It can update the last played period very quickly.
OTOH, the capture needs to read the last period. So, it obviously
conflicts.
- We needs to synchronize both playback and capture streams. In the
current implementation, both streams are updated individually.
For example, the capture can start in the middle of the playback
period. This results in the partial available samples.
So, I wrote the code and got almost another shape of the driver. The
result is found in my alsa-driver-build git tree
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/alsa-driver-build.git
and the snapshot tarball
ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
Let me know whether this works for you. Once after confirmed to work
well enough, we should push this to the upstream -- or abandon if the
driver is conceptually wrong...
thanks,
Takashi