On Tue, 3 Feb 2004, Stephen Stocker wrote:
> On Tue, 3 Feb 2004, Jaroslav Kysela wrote:
>
> > On Tue, 3 Feb 2004, Stephen Stocker wrote:
> >
> > > Hi,
> > >
> > > I've just got a Soundblaster 16 (Vibra16C, isapnp). Sure seems like
> > > something about it's wrong, although it'll record/play S16_LE at 44.1 kHZ
> > > maximum. The computer's an old 200MHz Pentium MMX, running Slackware, if
> > > that helps.
> > >
> > > Really, it's a small issue, but it'd be so great to figure out how to do
> > > this without ESD or whatever. Thanks again.
> >
> > At first: Set "16-bit DMA Allocation" to "Playback" using alsamixer or
> > amixer. It will force the playback to use the 16-bit sample resolution.
> >
> > The other stream (capture) will have only 8-bit resolution (it's
> > limitation of hardware). Then add 'format U8' to your dsnoop pcm
> > definition (slave.pcm section) to inform the dsnoop plugin to use the
> > 8-bit capture stream.
> >
> > Jaroslav
>
> That's it, and I should've thought of it. I've still got an error,
> because dsnoop doesn't support 8-bit, but I understand that!
Oops. It was typo in our sources. dsnoop support all PCM formats, but dmix
is restricted to s16 and s32 formats.
> $ arecord -Dduplex test.wav
> ALSA lib pcm_dsnoop.c:843:(_snd_pcm_dsnoop_open) invalid format, specify s16 or
> s32
> arecord: main:502: audio open error: Invalid argument
This is wrong. Thank you for this report. This patch should fix it:
Index: pcm_dmix.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dmix.c,v
retrieving revision 1.50
diff -u -r1.50 pcm_dmix.c
--- pcm_dmix.c 24 Jan 2004 16:35:11 -0000 1.50
+++ pcm_dmix.c 3 Feb 2004 14:42:23 -0000
@@ -1215,6 +1215,14 @@
if (err < 0)
return err;
+ /* sorry, limited features */
+ if (params.format != SND_PCM_FORMAT_S16 &&
+ params.format != SND_PCM_FORMAT_S32) {
+ SNDERR("invalid format, specify s16 or s32");
+ snd_config_delete(sconf);
+ return -EINVAL;
+ }
+
params.period_size = psize;
params.buffer_size = bsize;
Index: pcm_dsnoop.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dsnoop.c,v
retrieving revision 1.15
diff -u -r1.15 pcm_dsnoop.c
--- pcm_dsnoop.c 23 Jan 2004 13:05:20 -0000 1.15
+++ pcm_dsnoop.c 3 Feb 2004 14:42:23 -0000
@@ -837,14 +837,6 @@
if (err < 0)
return err;
- /* sorry, limited features */
- if (params.format != SND_PCM_FORMAT_S16 &&
- params.format != SND_PCM_FORMAT_S32) {
- SNDERR("invalid format, specify s16 or s32");
- snd_config_delete(sconf);
- return -EINVAL;
- }
-
params.period_size = psize;
params.buffer_size = bsize;
err = snd_pcm_dsnoop_open(pcmp, name, ipc_key, ipc_perm, ¶ms, bindings,
slowptr, root, sconf, stream, mode);
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user