* usb-audio @ 2003-10-27 18:03 Antonio Willy Malara 2003-10-27 18:16 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Antonio Willy Malara @ 2003-10-27 18:03 UTC (permalink / raw) To: alsa-devel When is it planned the fix of the usb-audio driver for big endian machines? I'm refferring particularly to that: /* FIXME: correct endianess and sign? */ (in function parse_audio_format_i_type (); at line 1990 in file alsa- kernel/usb/usbaudio.c version 1.67) Willy ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-27 18:03 usb-audio Antonio Willy Malara @ 2003-10-27 18:16 ` Takashi Iwai 2003-10-27 19:53 ` usb-audio Antonio Willy Malara 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-27 18:16 UTC (permalink / raw) To: Antonio Willy Malara; +Cc: alsa-devel At Mon, 27 Oct 2003 19:03:00 +0100, Antonio Willy Malara wrote: > > When is it planned the fix of the usb-audio driver for big endian > machines? I'm refferring particularly to that: > > /* FIXME: correct endianess and sign? */ > > (in function parse_audio_format_i_type (); at line 1990 in file alsa- > kernel/usb/usbaudio.c version 1.67) could you give more information: which program, which device and what format doesn't it work? Takashi ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-27 18:16 ` usb-audio Takashi Iwai @ 2003-10-27 19:53 ` Antonio Willy Malara 2003-10-28 10:11 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Antonio Willy Malara @ 2003-10-27 19:53 UTC (permalink / raw) To: alsa-devel On 2003.10.27 19:16, Takashi Iwai wrote: > > /* FIXME: correct endianess and sign? */ > could you give more information: > which program, which device and what format doesn't it work? the system is a powermac, the device is a Griffin iMic, the app is jack version 0.80, the output is: Sorry. The audio interface "hw:1"doesn't support either of the two hardware sample formats that jack can use. that is raised from here (sorry for the wordwrap): if ((err = snd_pcm_hw_params_set_format (handle, hw_params, SND_PCM_FORMAT_S32)) < 0) { if ((err = snd_pcm_hw_params_set_format (handle, hw_params, SND_PCM_FORMAT_S16)) < 0) { jack_error ("Sorry. The audio interface \"%s\"" "doesn't support either of the two hardware sample formats that jack can use.", device_name); return -1; } } (/drivers/alsa/alsa_driver.c line 293 from the jack 0.80 tree) i made this test: if i change the SND_PCM_FORMAT_S32 to _S32_LE the app goes forward but alsalib will raise many broken pipe errors and got no sound hope this will help > Takashi willy ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-27 19:53 ` usb-audio Antonio Willy Malara @ 2003-10-28 10:11 ` Takashi Iwai 2003-10-28 10:41 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-28 10:11 UTC (permalink / raw) To: Antonio Willy Malara; +Cc: alsa-devel At Mon, 27 Oct 2003 20:53:08 +0100, Antonio Willy Malara wrote: > > On 2003.10.27 19:16, Takashi Iwai wrote: > > > /* FIXME: correct endianess and sign? */ > > could you give more information: > > which program, which device and what format doesn't it work? > > the system is a powermac, the device is a Griffin iMic, the app is jack > version 0.80, the output is: > > Sorry. The audio interface "hw:1"doesn't support either of the two > hardware sample formats that jack can use. then it's a problem of JACK, not ALSA. the hardware doesn't support 32bit integer but only 24bit packed in 3 bytes. try plughw:1 instead of hw:1. (you might need to define the ctl for that, too.) ciao, Takashi ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 10:11 ` usb-audio Takashi Iwai @ 2003-10-28 10:41 ` Niklas Werner 2003-10-28 11:10 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-28 10:41 UTC (permalink / raw) To: alsa-devel Am Dienstag, 28. Oktober 2003 11:11 schrieb Takashi Iwai: > At Mon, 27 Oct 2003 20:53:08 +0100, > > Antonio Willy Malara wrote: > > On 2003.10.27 19:16, Takashi Iwai wrote: > > > > /* FIXME: correct endianess and sign? */ > > > > > > could you give more information: > > > which program, which device and what format doesn't it work? > > > > the system is a powermac, the device is a Griffin iMic, the app is > > jack version 0.80, the output is: > > > > Sorry. The audio interface "hw:1"doesn't support either of the two > > hardware sample formats that jack can use. > > then it's a problem of JACK, not ALSA. > the hardware doesn't support 32bit integer but only 24bit packed in 3 > bytes. No, I don't think it is. I get similar problems with my emi 2|6 and alsaplayer, mplayer, xmms, ... My impression is that ALSA assumes that the connected interfaces _always_ allow for the same Endianess as the system. This, of course, isn't always so. Mplayer: Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... AF_pre: af format: 2 bps, 2 ch, 44100 hz, big endian signed int AF_pre: 44100Hz 2ch Signed 16-bit (Big-Endian) alsa-init: requested format: 44100 Hz, 2 channels, Signed 16-bit (Big-Endian) alsa-init: soundcard set to emi alsa-init: format Signed 16-bit (Big-Endian) are not supported by hardware, trying default alsa9: 44100 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian AO: [alsa9] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps) alsaplayer either dies with "FIXME: f_unsynchronization is set.Please contact alsaplayer team." or produces static noise. aplay does get this right, so it seems to use a different method of querying the device. Have fun* Niklas ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 10:41 ` usb-audio Niklas Werner @ 2003-10-28 11:10 ` Takashi Iwai 2003-10-28 11:48 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-28 11:10 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Tue, 28 Oct 2003 11:41:07 +0100, Niklas Werner wrote: > > Am Dienstag, 28. Oktober 2003 11:11 schrieb Takashi Iwai: > > At Mon, 27 Oct 2003 20:53:08 +0100, > > > > Antonio Willy Malara wrote: > > > On 2003.10.27 19:16, Takashi Iwai wrote: > > > > > /* FIXME: correct endianess and sign? */ > > > > > > > > could you give more information: > > > > which program, which device and what format doesn't it work? > > > > > > the system is a powermac, the device is a Griffin iMic, the app is > > > jack version 0.80, the output is: > > > > > > Sorry. The audio interface "hw:1"doesn't support either of the two > > > hardware sample formats that jack can use. > > > > then it's a problem of JACK, not ALSA. > > the hardware doesn't support 32bit integer but only 24bit packed in 3 > > bytes. > No, I don't think it is. > I get similar problems with my emi 2|6 and alsaplayer, mplayer, xmms, ... did you use plughw instead of hw in all cases? otherwise they won't work always. > My impression is that ALSA assumes that the connected interfaces _always_ > allow for the same Endianess as the system. This, of course, isn't always > so. > Mplayer: > > Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... > AF_pre: af format: 2 bps, 2 ch, 44100 hz, big endian signed int > AF_pre: 44100Hz 2ch Signed 16-bit (Big-Endian) > alsa-init: requested format: 44100 Hz, 2 channels, Signed 16-bit > (Big-Endian) > alsa-init: soundcard set to emi > alsa-init: format Signed 16-bit (Big-Endian) are not supported by > hardware, trying default so, mplayer likely uses hw layer. mplayer has an option to specify the device name. it'd be better to define a new pcm in ~/.asoundrc such as pcm.emi26 { type plug slave.pcm "hw:0" } (where "hw:0" should be changed to the corresponding one) and run like % mplayer -ao alsa9:emi26 ... > alsa9: 44100 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little > Endian > AO: [alsa9] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps) > > alsaplayer either dies with "FIXME: f_unsynchronization is set.Please > contact alsaplayer team." or produces static noise. it sounds like a different one. but, at least, the above FIXME should be the alsaplayer problem. > aplay does get this right, so it seems to use a different method of > querying the device. then i guess using plug layer would solve the problem in most cases. Takashi ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 11:10 ` usb-audio Takashi Iwai @ 2003-10-28 11:48 ` Niklas Werner 2003-10-28 12:13 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-28 11:48 UTC (permalink / raw) To: alsa-devel Am Dienstag, 28. Oktober 2003 12:10 schrieb Takashi Iwai: > > > No, I don't think it is. > > I get similar problems with my emi 2|6 and alsaplayer, mplayer, xmms, > > ... > > did you use plughw instead of hw in all cases? > otherwise they won't work always. plughw doesn't work at all! > mplayer has an option to specify the device name. > it'd be better to define a new pcm in ~/.asoundrc such as > > pcm.emi26 { > type plug > slave.pcm "hw:0" > } > > (where "hw:0" should be changed to the corresponding one) > > and run like > > % mplayer -ao alsa9:emi26 ... > gives: Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... AF_pre: af format: 2 bps, 2 ch, 44100 hz, big endian signed int AF_pre: 44100Hz 2ch Signed 16-bit (Big-Endian) alsa-init: requested format: 44100 Hz, 2 channels, Signed 16-bit (Big-Endian) alsa-init: soundcard set to emi26 alsa9: 44100 Hz/2 channels/2 bpf/32768 bytes buffer/Signed 16 bit Big Endian AO: [alsa9] 44100Hz 2ch Signed 16-bit (Big-Endian) (2 bps) Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... Video: no video Starting playback... MPlayer interrupted by signal 11 in module: play_audio and no sound, whereas accessing hw:1 directly at least produces output. playing through plug-hw with aplay works, though alsaplayer doesn't like the card with plug-layer. (alsaplayer seems to have deeper problems, since its doesn't work on the internal snapper, as well. (Oh: kernel 2.6-test8-benh from bitkeeper, if that is of any interest) Have fun* Niklas ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 11:48 ` usb-audio Niklas Werner @ 2003-10-28 12:13 ` Takashi Iwai 2003-10-28 12:42 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-28 12:13 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Tue, 28 Oct 2003 12:48:17 +0100, Niklas Werner wrote: > > Am Dienstag, 28. Oktober 2003 12:10 schrieb Takashi Iwai: > > > > > No, I don't think it is. > > > I get similar problems with my emi 2|6 and alsaplayer, mplayer, xmms, > > > ... > > > > did you use plughw instead of hw in all cases? > > otherwise they won't work always. > plughw doesn't work at all! for xmms, too? > > mplayer has an option to specify the device name. > > it'd be better to define a new pcm in ~/.asoundrc such as > > > > pcm.emi26 { > > type plug > > slave.pcm "hw:0" > > } > > > > (where "hw:0" should be changed to the corresponding one) > > > > and run like > > > > % mplayer -ao alsa9:emi26 ... > > > gives: > Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... > AF_pre: af format: 2 bps, 2 ch, 44100 hz, big endian signed int > AF_pre: 44100Hz 2ch Signed 16-bit (Big-Endian) > alsa-init: requested format: 44100 Hz, 2 channels, Signed 16-bit > (Big-Endian) > alsa-init: soundcard set to emi26 > alsa9: 44100 Hz/2 channels/2 bpf/32768 bytes buffer/Signed 16 bit Big > Endian > AO: [alsa9] 44100Hz 2ch Signed 16-bit (Big-Endian) (2 bps) > Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... > Video: no video > Starting playback... > > > MPlayer interrupted by signal 11 in module: play_audio it's segfault. likely a bug in the mplayer's alsa9 output routine. to be sure, try to start mplayer on gdb and check what is broken. tracing via strace woule help, too. Takashi ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 12:13 ` usb-audio Takashi Iwai @ 2003-10-28 12:42 ` Niklas Werner 2003-10-28 13:28 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-28 12:42 UTC (permalink / raw) To: alsa-devel [-- Attachment #1: Type: text/plain, Size: 1611 bytes --] Am Dienstag, 28. Oktober 2003 13:13 wurde geschrieben: > At Tue, 28 Oct 2003 12:48:17 +0100, > > Niklas Werner wrote: > > Am Dienstag, 28. Oktober 2003 12:10 schrieb Takashi Iwai: > > > > No, I don't think it is. > > > > I get similar problems with my emi 2|6 and alsaplayer, mplayer, > > > > xmms, ... > > > > > > did you use plughw instead of hw in all cases? > > > otherwise they won't work always. > > > > plughw doesn't work at all! > > for xmms, too? oops, sorry, forgot. xmms works! except for adjusting the PCM-Volume, such is life... (this works on Intel, btw) Is there any special trick regarding the ctl.* for plughw? alsa-xmms is probably the newest one, I am using gentoo... i tried using diefferent mixer-card settings, but none did work. > > to be sure, try to start mplayer on gdb and check what is broken. > tracing via strace woule help, too. gdb: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 28218)] 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 (gdb) bt #0 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 #1 0x0fd47b00 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 #2 0x0fd4643c in snd_pcm_plugin_write_areas () from /usr/lib/ libasound.so.2 #3 0x0fd3ce54 in snd_pcm_write_areas () from /usr/lib/libasound.so.2 #4 0x0fd467bc in snd_pcm_plugin_writei () from /usr/lib/libasound.so.2 #5 0x0fd3615c in snd_pcm_writei () from /usr/lib/libasound.so.2 #6 0x10078718 in outputaudio () #7 0x1007837c in outputaudio () #8 0x1002ed74 in main () strace: see attached file. have fun* Niklas [-- Attachment #2: mplayer-alsa9-plughw-strace.log.gz --] [-- Type: application/x-gzip, Size: 9995 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 12:42 ` usb-audio Niklas Werner @ 2003-10-28 13:28 ` Takashi Iwai 2003-10-28 18:25 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-28 13:28 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Tue, 28 Oct 2003 13:42:15 +0100, Niklas Werner wrote: > > [1 <text/plain; us-ascii (7bit)>] > Am Dienstag, 28. Oktober 2003 13:13 wurde geschrieben: > > At Tue, 28 Oct 2003 12:48:17 +0100, > > > > Niklas Werner wrote: > > > Am Dienstag, 28. Oktober 2003 12:10 schrieb Takashi Iwai: > > > > > No, I don't think it is. > > > > > I get similar problems with my emi 2|6 and alsaplayer, mplayer, > > > > > xmms, ... > > > > > > > > did you use plughw instead of hw in all cases? > > > > otherwise they won't work always. > > > > > > plughw doesn't work at all! > > > > for xmms, too? > oops, sorry, forgot. xmms works! except for adjusting the PCM-Volume, such > is life... (this works on Intel, btw) i don't know your emi26 device has PCM volume. if not, assign another existing control in the config of alsa-xmms plugin. > Is there any special trick regarding the ctl.* for plughw? it has nothing to do with plughw abstraction. it's the difference of hardware. > alsa-xmms is probably the newest one, I am using gentoo... i tried using > diefferent mixer-card settings, but none did work. > > > > to be sure, try to start mplayer on gdb and check what is broken. > > tracing via strace woule help, too. > gdb: > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 16384 (LWP 28218)] > 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > (gdb) bt > #0 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > #1 0x0fd47b00 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > #2 0x0fd4643c in snd_pcm_plugin_write_areas () from /usr/lib/ > libasound.so.2 > #3 0x0fd3ce54 in snd_pcm_write_areas () from /usr/lib/libasound.so.2 > #4 0x0fd467bc in snd_pcm_plugin_writei () from /usr/lib/libasound.so.2 > #5 0x0fd3615c in snd_pcm_writei () from /usr/lib/libasound.so.2 > #6 0x10078718 in outputaudio () > #7 0x1007837c in outputaudio () > #8 0x1002ed74 in main () hmm, then something wrong in the converter routine... needs to take a deeper look. Takashi ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 13:28 ` usb-audio Takashi Iwai @ 2003-10-28 18:25 ` Takashi Iwai 2003-10-28 19:18 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-28 18:25 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel [-- Attachment #1: Type: text/plain, Size: 1238 bytes --] At Tue, 28 Oct 2003 14:28:57 +0100, I wrote: > > > gdb: > > > > Program received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 16384 (LWP 28218)] > > 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > > (gdb) bt > > #0 0x0fd47d64 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > > #1 0x0fd47b00 in snd_pcm_linear_convert () from /usr/lib/libasound.so.2 > > #2 0x0fd4643c in snd_pcm_plugin_write_areas () from /usr/lib/ > > libasound.so.2 > > #3 0x0fd3ce54 in snd_pcm_write_areas () from /usr/lib/libasound.so.2 > > #4 0x0fd467bc in snd_pcm_plugin_writei () from /usr/lib/libasound.so.2 > > #5 0x0fd3615c in snd_pcm_writei () from /usr/lib/libasound.so.2 > > #6 0x10078718 in outputaudio () > > #7 0x1007837c in outputaudio () > > #8 0x1002ed74 in main () > > hmm, then something wrong in the converter routine... > needs to take a deeper look. i found a bug regarding the plugin but it must be another bug from the above problem. segfault is a bit puzzling. could you try the attached patch to see the parameters? or, even better, check the values in gdb's backtrace. also, what happens if running mplayer with mmap option, i.e. % mplayer -ao alsa9:emi26:mmap ? Takashi [-- Attachment #2: linear-debug.dif --] [-- Type: application/octet-stream, Size: 999 bytes --] Index: alsa-lib/src/pcm/pcm_linear.c =================================================================== RCS file: /suse/tiwai/cvs/alsa/alsa-lib/src/pcm/pcm_linear.c,v retrieving revision 1.41 diff -u -r1.41 pcm_linear.c --- alsa-lib/src/pcm/pcm_linear.c 25 Jul 2003 16:56:36 -0000 1.41 +++ alsa-lib/src/pcm/pcm_linear.c 28 Oct 2003 18:23:41 -0000 @@ -167,6 +167,7 @@ #undef CONV_LABELS void *conv = conv_labels[convidx]; unsigned int channel; + fprintf(stderr, "XXX linear_convert: dst=%p/%d, src=%p/%d, ch=%d, frames=%d, idx=%d\n", dst_areas, (int)dst_offset, src_areas, (int)src_offset, channels, (int)frames, convidx); for (channel = 0; channel < channels; ++channel) { const char *src; char *dst; @@ -339,6 +340,8 @@ linear->conv_idx = snd_pcm_linear_convert_index(linear->sformat, format); } + fprintf(stderr, "XXX linear: hw_params getput=%d (get=%d,put=%d,conv=%d)\n", + linear->use_getput, linear->get_idx, linear->put_idx, linear->conv_idx); return 0; } ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 18:25 ` usb-audio Takashi Iwai @ 2003-10-28 19:18 ` Niklas Werner 2003-10-29 18:24 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-28 19:18 UTC (permalink / raw) To: alsa-devel Here we go again, Am Dienstag, 28. Oktober 2003 19:25 schrieb Takashi Iwai: > > hmm, then something wrong in the converter routine... > > needs to take a deeper look. > > i found a bug regarding the plugin but it must be another bug from the > above problem. > > segfault is a bit puzzling. could you try the attached patch to see > the parameters? or, even better, check the values in gdb's > backtrace. Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... Video: no video Starting playback... XXX linear_convert: dst=0x104d3dc0/0, src=0x7fffc020/0, ch=2, frames=16384, idx=35 =========== gdb: Starting playback... XXX linear_convert: dst=0x104d1f18/0, src=0x7fffcf40/0, ch=2, frames=16384, idx= 35 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 14666)] snd_pcm_linear_convert (dst_areas=0x104d1f18, dst_offset=0, src_areas=0x7fffcf40, src_offset=0, channels=2, frames=16384, convidx=35) at plugin_ops.h:299 299 conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto CONV_EN D; (gdb) bt #0 snd_pcm_linear_convert (dst_areas=0x104d1f18, dst_offset=0, src_areas=0x7fffcf40, src_offset=0, channels=2, frames=16384, convidx=35) at plugin_ops.h:299 #1 0x0fd4326c in snd_pcm_linear_convert (dst_areas=0x104d1f18, dst_offset=0, src_areas=0x7fffcf40, src_offset=0, channels=2, frames=16384, convidx=35) at pcm_linear.c:170 #2 0x0fd41838 in snd_pcm_plugin_write_areas (pcm=0x0, areas=0x7fffcf40, offset=2, size=2147471168) at pcm_plugin.c:365 #3 0x0fd37dc4 in snd_pcm_write_areas (pcm=0x23, areas=0x104db86c, offset=2, size=2147471168, func=0) at pcm.c:6206 #4 0x0fd41c44 in snd_pcm_plugin_writei (pcm=0x104d1f18, buffer=0x4, size=2147471168) at pcm_plugin.c:436 #5 0x0fd30c6c in snd_pcm_writei (pcm=0x0, buffer=0x0, size=0) at pcm_local.h:368 #6 0x10078718 in outputaudio () #7 0x1007837c in outputaudio () #8 0x1002ed74 in main () ================================== > > > also, what happens if running mplayer with mmap option, i.e. > > % mplayer -ao alsa9:emi26:mmap > horrible, distorted sound: (sounds like computer is too slow to deliver the samples) ALSA lib pcm_hw.c:494:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed: Die Dateizugriffsnummer ist ein schlechter Verfassung meaning: "File descriptor in bad state" (whoever sneaked in this translation...) Have fun Niklas ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-28 19:18 ` usb-audio Niklas Werner @ 2003-10-29 18:24 ` Takashi Iwai 2003-10-29 22:26 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-29 18:24 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Tue, 28 Oct 2003 20:18:35 +0100, Niklas Werner wrote: > > Here we go again, > > Am Dienstag, 28. Oktober 2003 19:25 schrieb Takashi Iwai: > > > > hmm, then something wrong in the converter routine... > > > needs to take a deeper look. > > > > i found a bug regarding the plugin but it must be another bug from the > > above problem. > > > > segfault is a bit puzzling. could you try the attached patch to see > > the parameters? or, even better, check the values in gdb's > > backtrace. > > Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... > Video: no video > Starting playback... > XXX linear_convert: dst=0x104d3dc0/0, src=0x7fffc020/0, ch=2, > frames=16384, idx=35 > > =========== > gdb: > > Starting playback... > XXX linear_convert: dst=0x104d1f18/0, src=0x7fffcf40/0, ch=2, > frames=16384, idx= 35 > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 16384 (LWP 14666)] > snd_pcm_linear_convert (dst_areas=0x104d1f18, dst_offset=0, > src_areas=0x7fffcf40, src_offset=0, channels=2, frames=16384, > convidx=35) > at plugin_ops.h:299 > 299 conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto > CONV_EN D; hmm, it seems that a wrong label is used. the label should be conv_xx12_xx21 (= conv_labels[35]). something is really broken. could you check stepwise the loop there? > > > > > > also, what happens if running mplayer with mmap option, i.e. > > > > % mplayer -ao alsa9:emi26:mmap > > > horrible, distorted sound: (sounds like computer is too slow to deliver > the samples) > ALSA lib pcm_hw.c:494:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed: Die > Dateizugriffsnummer ist ein schlechter Verfassung > > meaning: "File descriptor in bad state" (whoever sneaked in this > translation...) (well, good to learn german, at least ;) thanks for check. can you hear a clear sound with aplay -M ? Takashi ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-29 18:24 ` usb-audio Takashi Iwai @ 2003-10-29 22:26 ` Niklas Werner 2003-10-30 12:17 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-29 22:26 UTC (permalink / raw) To: alsa-devel Am Mittwoch, 29. Oktober 2003 19:24 wurde geschrieben: > At Tue, 28 Oct 2003 20:18:35 +0100, > > > hmm, it seems that a wrong label is used. the label should be > conv_xx12_xx21 (= conv_labels[35]). something is really broken. > > could you check stepwise the loop there? > still checking (any tips on speeding this up (I'm trying "step 80000" atm?), seems to happen after the first set of frames (=16384) is processed. the label stays wrong throughout the whole loop, the convidx stays 35 > thanks for check. > can you hear a clear sound with aplay -M ? > Yes :-) Niklas ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-29 22:26 ` usb-audio Niklas Werner @ 2003-10-30 12:17 ` Takashi Iwai 2003-10-30 12:42 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-30 12:17 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Wed, 29 Oct 2003 23:26:07 +0100, Niklas Werner wrote: > > Am Mittwoch, 29. Oktober 2003 19:24 wurde geschrieben: > > At Tue, 28 Oct 2003 20:18:35 +0100, > > > > > > hmm, it seems that a wrong label is used. the label should be > > conv_xx12_xx21 (= conv_labels[35]). something is really broken. > > > > could you check stepwise the loop there? > > > > still checking (any tips on speeding this up (I'm trying "step 80000" > atm?), seems to happen after the first set of frames (=16384) is > processed. in the first process, did it go to conv_xx12_xx21 properly? > the label stays wrong throughout the whole loop, the convidx stays 35 > > > > thanks for check. > > can you hear a clear sound with aplay -M ? > > > Yes :-) at least, something still good :) Takashi ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-30 12:17 ` usb-audio Takashi Iwai @ 2003-10-30 12:42 ` Niklas Werner 2003-10-30 19:46 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-30 12:42 UTC (permalink / raw) To: alsa-devel Am Donnerstag, 30. Oktober 2003 13:17 schrieb Takashi Iwai: > At Wed, 29 Oct 2003 23:26:07 +0100, > > Niklas Werner wrote: > > Am Mittwoch, 29. Oktober 2003 19:24 wurde geschrieben: > > > At Tue, 28 Oct 2003 20:18:35 +0100, > > > > > > > > > hmm, it seems that a wrong label is used. the label should be > > > conv_xx12_xx21 (= conv_labels[35]). something is really broken. > > > > > > could you check stepwise the loop there? > > > > still checking (any tips on speeding this up (I'm trying "step 80000" > > atm?), seems to happen after the first set of frames (=16384) is > > processed. > > in the first process, did it go to conv_xx12_xx21 properly? nope: 0x0fd422f4 184 goto *conv; (gdb) si 299 conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto CONV_END; (gdb) si 0x0fd424c0 299 conv_1234_xx21: as_u16(dst) = bswap_16 (as_u32c(src) >> 16); goto CONV_END; (gdb) si 0x0fd424c4 299 conv_1234_xx21: as_u16(dst) = bswap_16 (as_u32c(src) >> 16); goto CONV_END; (gdb) si 0x0fd424c8 299 conv_1234_xx21: as_u16(dst) = bswap_16 (as_u32c(src) >> 16); goto CONV_END; (gdb) si 0x0fd424cc 299 conv_1234_xx21: as_u16(dst) = bswap_16 (as_u32c(src) >> 16); goto CONV_END; (gdb) si 0x0fd4235c 230 conv_xxx1_xx10: as_u16(dst) = (u_int16_t)as_u8c(src) << 8; goto CONV_END; (gdb) si 0x0fd42360 230 conv_xxx1_xx10: as_u16(dst) = (u_int16_t)as_u8c(src) << 8; goto CONV_END; (gdb) si 190 dst += dst_step; Niklas ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-30 12:42 ` usb-audio Niklas Werner @ 2003-10-30 19:46 ` Takashi Iwai 2003-10-31 8:23 ` usb-audio Niklas Werner 0 siblings, 1 reply; 19+ messages in thread From: Takashi Iwai @ 2003-10-30 19:46 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel [-- Attachment #1: Type: text/plain, Size: 1045 bytes --] At Thu, 30 Oct 2003 13:42:14 +0100, Niklas Werner wrote: > > Am Donnerstag, 30. Oktober 2003 13:17 schrieb Takashi Iwai: > > At Wed, 29 Oct 2003 23:26:07 +0100, > > > > Niklas Werner wrote: > > > Am Mittwoch, 29. Oktober 2003 19:24 wurde geschrieben: > > > > At Tue, 28 Oct 2003 20:18:35 +0100, > > > > > > > > > > > > hmm, it seems that a wrong label is used. the label should be > > > > conv_xx12_xx21 (= conv_labels[35]). something is really broken. > > > > > > > > could you check stepwise the loop there? > > > > > > still checking (any tips on speeding this up (I'm trying "step 80000" > > > atm?), seems to happen after the first set of frames (=16384) is > > > processed. > > > > in the first process, did it go to conv_xx12_xx21 properly? > > nope: > > 0x0fd422f4 184 goto *conv; > (gdb) si > 299 conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto hmm, really weird. meanwhile, i rewrote snd_pcm_linear_convert() without goto trick. could you try the attached patch? Takashi [-- Attachment #2: pcm_linear_flatten.dif --] [-- Type: application/octet-stream, Size: 20401 bytes --] Index: alsa-lib/src/pcm/pcm_linear.c =================================================================== RCS file: /suse/tiwai/cvs/alsa/alsa-lib/src/pcm/pcm_linear.c,v retrieving revision 1.41 diff -u -r1.41 pcm_linear.c --- alsa-lib/src/pcm/pcm_linear.c 25 Jul 2003 16:56:36 -0000 1.41 +++ alsa-lib/src/pcm/pcm_linear.c 30 Oct 2003 19:41:54 -0000 @@ -157,37 +157,396 @@ } } +#define as_u8(ptr) (*(u_int8_t*)(ptr)) +#define as_u16(ptr) (*(u_int16_t*)(ptr)) +#define as_u32(ptr) (*(u_int32_t*)(ptr)) +#define as_u64(ptr) (*(u_int64_t*)(ptr)) +#define as_s8(ptr) (*(int8_t*)(ptr)) +#define as_s16(ptr) (*(int16_t*)(ptr)) +#define as_s32(ptr) (*(int32_t*)(ptr)) +#define as_s64(ptr) (*(int64_t*)(ptr)) +#define as_float(ptr) (*(float_t*)(ptr)) +#define as_double(ptr) (*(double_t*)(ptr)) + +#define as_u8c(ptr) (*(const u_int8_t*)(ptr)) +#define as_u16c(ptr) (*(const u_int16_t*)(ptr)) +#define as_u32c(ptr) (*(const u_int32_t*)(ptr)) +#define as_u64c(ptr) (*(const u_int64_t*)(ptr)) +#define as_s8c(ptr) (*(const int8_t*)(ptr)) +#define as_s16c(ptr) (*(const int16_t*)(ptr)) +#define as_s32c(ptr) (*(const int32_t*)(ptr)) +#define as_s64c(ptr) (*(const int64_t*)(ptr)) +#define as_floatc(ptr) (*(const float_t*)(ptr)) +#define as_doublec(ptr) (*(const double_t*)(ptr)) + +#define l_conv_xxx1_xxx1 (as_u8(dst) = as_u8c(src)) +#define l_conv_xxx1_xx10 (as_u16(dst) = (u_int16_t)as_u8c(src) << 8) +#define l_conv_xxx1_xx01 (as_u16(dst) = (u_int16_t)as_u8c(src)) +#define l_conv_xxx1_x100 (as_u32(dst) = (u_int32_t)as_u8c(src)) +#define l_conv_xxx1_001x (as_u32(dst) = (u_int32_t)as_u8c(src) << 8) +#define l_conv_xxx1_1000 (as_u32(dst) = (u_int32_t)as_u8c(src) << 24) +#define l_conv_xxx1_0001 (as_u32(dst) = (u_int32_t)as_u8c(src)) +#define l_conv_xxx1_xxx9 (as_u8(dst) = as_u8c(src) ^ 0x80) +#define l_conv_xxx1_xx90 (as_u16(dst) = (u_int16_t)(as_u8c(src) ^ 0x80) << 8) +#define l_conv_xxx1_xx09 (as_u16(dst) = (u_int16_t)(as_u8c(src) ^ 0x80)) +#define l_conv_xxx1_x900 (as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 16) +#define l_conv_xxx1_009x (as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 8) +#define l_conv_xxx1_9000 (as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 24) +#define l_conv_xxx1_0009 (as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80)) +#define l_conv_xx12_xxx1 (as_u8(dst) = as_u16c(src) >> 8) +#define l_conv_xx12_xx12 (as_u16(dst) = as_u16c(src)) +#define l_conv_xx12_xx21 (as_u16(dst) = bswap_16(as_u16c(src))) +#define l_conv_xx12_x120 (as_u32(dst) = (u_int32_t)as_u16c(src) << 8) +#define l_conv_xx12_021x (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)) << 8) +#define l_conv_xx12_1200 (as_u32(dst) = (u_int32_t)as_u16c(src) << 16) +#define l_conv_xx12_0021 (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src))) +#define l_conv_xx12_xxx9 (as_u8(dst) = (as_u16c(src) >> 8) ^ 0x80) +#define l_conv_xx12_xx92 (as_u16(dst) = as_u16c(src) ^ 0x8000) +#define l_conv_xx12_xx29 (as_u16(dst) = bswap_16(as_u16c(src)) ^ 0x80) +#define l_conv_xx12_x920 (as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x8000) << 8) +#define l_conv_xx12_029x (as_u32(dst) = (u_int32_t)(bswap_16(as_u16c(src)) ^ 0x80) << 8) +#define l_conv_xx12_9200 (as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x8000) << 16) +#define l_conv_xx12_0029 (as_u32(dst) = (u_int32_t)(bswap_16(as_u16c(src)) ^ 0x80)) +#define l_conv_xx12_xxx2 (as_u8(dst) = as_u16c(src) & 0xff) +#define l_conv_xx12_x210 (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)) << 8) +#define l_conv_xx12_012x (as_u32(dst) = (u_int32_t)as_u16c(src) << 8) +#define l_conv_xx12_2100 (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)) << 16) +#define l_conv_xx12_0012 (as_u32(dst) = (u_int32_t)as_u16c(src)) +#define l_conv_xx12_xxxA (as_u8(dst) = (as_u16c(src) ^ 0x80) & 0xff) +#define l_conv_xx12_xxA1 (as_u16(dst) = bswap_16(as_u16c(src) ^ 0x80)) +#define l_conv_xx12_xx1A (as_u16(dst) = as_u16c(src) ^ 0x80) +#define l_conv_xx12_xA10 (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 8) +#define l_conv_xx12_01Ax (as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80) << 8) +#define l_conv_xx12_A100 (as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16) +#define l_conv_xx12_001A (as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80)) +#define l_conv_x123_xxx1 (as_u8(dst) = as_u32c(src) >> 16) +#define l_conv_x123_xx12 (as_u16(dst) = as_u32c(src) >> 8) +#define l_conv_x123_xx21 (as_u16(dst) = bswap_16(as_u32c(src) >> 8)) +#define l_conv_x123_x123 (as_u32(dst) = as_u32c(src)) +#define l_conv_x123_321x (as_u32(dst) = bswap_32(as_u32c(src))) +#define l_conv_x123_1230 (as_u32(dst) = as_u32c(src) << 8) +#define l_conv_x123_0321 (as_u32(dst) = bswap_32(as_u32c(src)) >> 8) +#define l_conv_x123_xxx9 (as_u8(dst) = (as_u32c(src) >> 16) ^ 0x80) +#define l_conv_x123_xx92 (as_u16(dst) = (as_u32c(src) >> 8) ^ 0x8000) +#define l_conv_x123_xx29 (as_u16(dst) = bswap_16(as_u32c(src) >> 8) ^ 0x80) +#define l_conv_x123_x923 (as_u32(dst) = as_u32c(src) ^ 0x800000) +#define l_conv_x123_329x (as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x8000) +#define l_conv_x123_9230 (as_u32(dst) = (as_u32c(src) ^ 0x800000) << 8) +#define l_conv_x123_0329 (as_u32(dst) = (bswap_32(as_u32c(src)) >> 8) ^ 0x80) +#define l_conv_123x_xxx3 (as_u8(dst) = (as_u32c(src) >> 8) & 0xff) +#define l_conv_123x_xx32 (as_u16(dst) = bswap_16(as_u32c(src) >> 8)) +#define l_conv_123x_xx23 (as_u16(dst) = (as_u32c(src) >> 8) & 0xffff) +#define l_conv_123x_x321 (as_u32(dst) = bswap_32(as_u32c(src))) +#define l_conv_123x_123x (as_u32(dst) = as_u32c(src)) +#define l_conv_123x_3210 (as_u32(dst) = bswap_32(as_u32c(src)) << 8) +#define l_conv_123x_0123 (as_u32(dst) = as_u32c(src) >> 8) +#define l_conv_123x_xxxB (as_u8(dst) = ((as_u32c(src) >> 8) & 0xff) ^ 0x80) +#define l_conv_123x_xxB2 (as_u16(dst) = bswap_16((as_u32c(src) >> 8) ^ 0x80)) +#define l_conv_123x_xx2B (as_u16(dst) = ((as_u32c(src) >> 8) & 0xffff) ^ 0x80) +#define l_conv_123x_xB21 (as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x800000) +#define l_conv_123x_12Bx (as_u32(dst) = as_u32c(src) ^ 0x8000) +#define l_conv_123x_B210 (as_u32(dst) = bswap_32(as_u32c(src) ^ 0x8000) << 8) +#define l_conv_123x_012B (as_u32(dst) = (as_u32c(src) >> 8) ^ 0x80) +#define l_conv_1234_xxx1 (as_u8(dst) = as_u32c(src) >> 24) +#define l_conv_1234_xx12 (as_u16(dst) = as_u32c(src) >> 16) +#define l_conv_1234_xx21 (as_u16(dst) = bswap_16(as_u32c(src) >> 16)) +#define l_conv_1234_x123 (as_u32(dst) = as_u32c(src) >> 8) +#define l_conv_1234_321x (as_u32(dst) = bswap_32(as_u32c(src)) << 8) +#define l_conv_1234_1234 (as_u32(dst) = as_u32c(src)) +#define l_conv_1234_4321 (as_u32(dst) = bswap_32(as_u32c(src))) +#define l_conv_1234_xxx9 (as_u8(dst) = (as_u32c(src) >> 24) ^ 0x80) +#define l_conv_1234_xx92 (as_u16(dst) = (as_u32c(src) >> 16) ^ 0x8000) +#define l_conv_1234_xx29 (as_u16(dst) = bswap_16(as_u32c(src) >> 16) ^ 0x80) +#define l_conv_1234_x923 (as_u32(dst) = (as_u32c(src) >> 8) ^ 0x800000) +#define l_conv_1234_329x (as_u32(dst) = (bswap_32(as_u32c(src)) ^ 0x80) << 8) +#define l_conv_1234_9234 (as_u32(dst) = as_u32c(src) ^ 0x80000000) +#define l_conv_1234_4329 (as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x80) +#define l_conv_1234_xxx4 (as_u8(dst) = as_u32c(src) & 0xff) +#define l_conv_1234_xx43 (as_u16(dst) = bswap_16(as_u32c(src))) +#define l_conv_1234_xx34 (as_u16(dst) = as_u32c(src) & 0xffff) +#define l_conv_1234_x432 (as_u32(dst) = bswap_32(as_u32c(src)) >> 8) +#define l_conv_1234_234x (as_u32(dst) = as_u32c(src) << 8) +#define l_conv_1234_xxxC (as_u8(dst) = (as_u32c(src) & 0xff) ^ 0x80) +#define l_conv_1234_xxC3 (as_u16(dst) = bswap_16(as_u32c(src) ^ 0x80)) +#define l_conv_1234_xx3C (as_u16(dst) = (as_u32c(src) & 0xffff) ^ 0x80) +#define l_conv_1234_xC32 (as_u32(dst) = (bswap_32(as_u32c(src)) >> 8) ^ 0x800000) +#define l_conv_1234_23Cx (as_u32(dst) = (as_u32c(src) ^ 0x80) << 8) +#define l_conv_1234_C321 (as_u32(dst) = bswap_32(as_u32c(src) ^ 0x80)) +#define l_conv_1234_123C (as_u32(dst) = as_u32c(src) ^ 0x80) + +#define DEF_CONV(cname,convertor) \ +static void snd_pcm_linear_##cname(const char *src, char *dst, int src_step, int dst_step, int frames) \ +{ \ + while (frames-- > 0) { \ + convertor; \ + src += src_step; \ + dst += dst_step; \ + }\ +} + +DEF_CONV(conv_xxx1_xxx1,l_conv_xxx1_xxx1); +DEF_CONV(conv_xxx1_xx10,l_conv_xxx1_xx10); +DEF_CONV(conv_xxx1_xx01,l_conv_xxx1_xx01); +DEF_CONV(conv_xxx1_x100,l_conv_xxx1_x100); +DEF_CONV(conv_xxx1_001x,l_conv_xxx1_001x); +DEF_CONV(conv_xxx1_1000,l_conv_xxx1_1000); +DEF_CONV(conv_xxx1_0001,l_conv_xxx1_0001); +DEF_CONV(conv_xxx1_xxx9,l_conv_xxx1_xxx9); +DEF_CONV(conv_xxx1_xx90,l_conv_xxx1_xx90); +DEF_CONV(conv_xxx1_xx09,l_conv_xxx1_xx09); +DEF_CONV(conv_xxx1_x900,l_conv_xxx1_x900); +DEF_CONV(conv_xxx1_009x,l_conv_xxx1_009x); +DEF_CONV(conv_xxx1_9000,l_conv_xxx1_9000); +DEF_CONV(conv_xxx1_0009,l_conv_xxx1_0009); +DEF_CONV(conv_xx12_xxx1,l_conv_xx12_xxx1); +DEF_CONV(conv_xx12_xx12,l_conv_xx12_xx12); +DEF_CONV(conv_xx12_xx21,l_conv_xx12_xx21); +DEF_CONV(conv_xx12_x120,l_conv_xx12_x120); +DEF_CONV(conv_xx12_021x,l_conv_xx12_021x); +DEF_CONV(conv_xx12_1200,l_conv_xx12_1200); +DEF_CONV(conv_xx12_0021,l_conv_xx12_0021); +DEF_CONV(conv_xx12_xxx9,l_conv_xx12_xxx9); +DEF_CONV(conv_xx12_xx92,l_conv_xx12_xx92); +DEF_CONV(conv_xx12_xx29,l_conv_xx12_xx29); +DEF_CONV(conv_xx12_x920,l_conv_xx12_x920); +DEF_CONV(conv_xx12_029x,l_conv_xx12_029x); +DEF_CONV(conv_xx12_9200,l_conv_xx12_9200); +DEF_CONV(conv_xx12_0029,l_conv_xx12_0029); +DEF_CONV(conv_xx12_xxx2,l_conv_xx12_xxx2); +DEF_CONV(conv_xx12_x210,l_conv_xx12_x210); +DEF_CONV(conv_xx12_012x,l_conv_xx12_012x); +DEF_CONV(conv_xx12_2100,l_conv_xx12_2100); +DEF_CONV(conv_xx12_0012,l_conv_xx12_0012); +DEF_CONV(conv_xx12_xxxA,l_conv_xx12_xxxA); +DEF_CONV(conv_xx12_xxA1,l_conv_xx12_xxA1); +DEF_CONV(conv_xx12_xx1A,l_conv_xx12_xx1A); +DEF_CONV(conv_xx12_xA10,l_conv_xx12_xA10); +DEF_CONV(conv_xx12_01Ax,l_conv_xx12_01Ax); +DEF_CONV(conv_xx12_A100,l_conv_xx12_A100); +DEF_CONV(conv_xx12_001A,l_conv_xx12_001A); +DEF_CONV(conv_x123_xxx1,l_conv_x123_xxx1); +DEF_CONV(conv_x123_xx12,l_conv_x123_xx12); +DEF_CONV(conv_x123_xx21,l_conv_x123_xx21); +DEF_CONV(conv_x123_x123,l_conv_x123_x123); +DEF_CONV(conv_x123_321x,l_conv_x123_321x); +DEF_CONV(conv_x123_1230,l_conv_x123_1230); +DEF_CONV(conv_x123_0321,l_conv_x123_0321); +DEF_CONV(conv_x123_xxx9,l_conv_x123_xxx9); +DEF_CONV(conv_x123_xx92,l_conv_x123_xx92); +DEF_CONV(conv_x123_xx29,l_conv_x123_xx29); +DEF_CONV(conv_x123_x923,l_conv_x123_x923); +DEF_CONV(conv_x123_329x,l_conv_x123_329x); +DEF_CONV(conv_x123_9230,l_conv_x123_9230); +DEF_CONV(conv_x123_0329,l_conv_x123_0329); +DEF_CONV(conv_123x_xxx3,l_conv_123x_xxx3); +DEF_CONV(conv_123x_xx32,l_conv_123x_xx32); +DEF_CONV(conv_123x_xx23,l_conv_123x_xx23); +DEF_CONV(conv_123x_x321,l_conv_123x_x321); +DEF_CONV(conv_123x_123x,l_conv_123x_123x); +DEF_CONV(conv_123x_3210,l_conv_123x_3210); +DEF_CONV(conv_123x_0123,l_conv_123x_0123); +DEF_CONV(conv_123x_xxxB,l_conv_123x_xxxB); +DEF_CONV(conv_123x_xxB2,l_conv_123x_xxB2); +DEF_CONV(conv_123x_xx2B,l_conv_123x_xx2B); +DEF_CONV(conv_123x_xB21,l_conv_123x_xB21); +DEF_CONV(conv_123x_12Bx,l_conv_123x_12Bx); +DEF_CONV(conv_123x_B210,l_conv_123x_B210); +DEF_CONV(conv_123x_012B,l_conv_123x_012B); +DEF_CONV(conv_1234_xxx1,l_conv_1234_xxx1); +DEF_CONV(conv_1234_xx12,l_conv_1234_xx12); +DEF_CONV(conv_1234_xx21,l_conv_1234_xx21); +DEF_CONV(conv_1234_x123,l_conv_1234_x123); +DEF_CONV(conv_1234_321x,l_conv_1234_321x); +DEF_CONV(conv_1234_1234,l_conv_1234_1234); +DEF_CONV(conv_1234_4321,l_conv_1234_4321); +DEF_CONV(conv_1234_xxx9,l_conv_1234_xxx9); +DEF_CONV(conv_1234_xx92,l_conv_1234_xx92); +DEF_CONV(conv_1234_xx29,l_conv_1234_xx29); +DEF_CONV(conv_1234_x923,l_conv_1234_x923); +DEF_CONV(conv_1234_329x,l_conv_1234_329x); +DEF_CONV(conv_1234_9234,l_conv_1234_9234); +DEF_CONV(conv_1234_4329,l_conv_1234_4329); +DEF_CONV(conv_1234_xxx4,l_conv_1234_xxx4); +DEF_CONV(conv_1234_xx43,l_conv_1234_xx43); +DEF_CONV(conv_1234_xx34,l_conv_1234_xx34); +DEF_CONV(conv_1234_x432,l_conv_1234_x432); +DEF_CONV(conv_1234_234x,l_conv_1234_234x); +DEF_CONV(conv_1234_xxxC,l_conv_1234_xxxC); +DEF_CONV(conv_1234_xxC3,l_conv_1234_xxC3); +DEF_CONV(conv_1234_xx3C,l_conv_1234_xx3C); +DEF_CONV(conv_1234_xC32,l_conv_1234_xC32); +DEF_CONV(conv_1234_23Cx,l_conv_1234_23Cx); +DEF_CONV(conv_1234_C321,l_conv_1234_C321); +DEF_CONV(conv_1234_123C,l_conv_1234_123C); + +#undef as_u8 +#undef as_u16 +#undef as_u32 +#undef as_s8 +#undef as_s16 +#undef as_s32 +#undef as_float +#undef as_double + +#undef as_u8c +#undef as_u16c +#undef as_u32c +#undef as_s8c +#undef as_s16c +#undef as_s32c +#undef as_floatc +#undef as_doublec + +typedef void (*snd_pcm_linear_conv_t)(const char *, char *, int, int, int); +static snd_pcm_linear_conv_t linear_conv_table[4 * 2 * 2 * 4 * 2] = { + snd_pcm_linear_conv_xxx1_xxx1, /* 8h -> 8h */ + snd_pcm_linear_conv_xxx1_xxx1, /* 8h -> 8s */ + snd_pcm_linear_conv_xxx1_xx10, /* 8h -> 16h */ + snd_pcm_linear_conv_xxx1_xx01, /* 8h -> 16s */ + snd_pcm_linear_conv_xxx1_x100, /* 8h -> 24h */ + snd_pcm_linear_conv_xxx1_001x, /* 8h -> 24s */ + snd_pcm_linear_conv_xxx1_1000, /* 8h -> 32h */ + snd_pcm_linear_conv_xxx1_0001, /* 8h -> 32s */ + snd_pcm_linear_conv_xxx1_xxx9, /* 8h ^> 8h */ + snd_pcm_linear_conv_xxx1_xxx9, /* 8h ^> 8s */ + snd_pcm_linear_conv_xxx1_xx90, /* 8h ^> 16h */ + snd_pcm_linear_conv_xxx1_xx09, /* 8h ^> 16s */ + snd_pcm_linear_conv_xxx1_x900, /* 8h ^> 24h */ + snd_pcm_linear_conv_xxx1_009x, /* 8h ^> 24s */ + snd_pcm_linear_conv_xxx1_9000, /* 8h ^> 32h */ + snd_pcm_linear_conv_xxx1_0009, /* 8h ^> 32s */ + snd_pcm_linear_conv_xxx1_xxx1, /* 8s -> 8h */ + snd_pcm_linear_conv_xxx1_xxx1, /* 8s -> 8s */ + snd_pcm_linear_conv_xxx1_xx10, /* 8s -> 16h */ + snd_pcm_linear_conv_xxx1_xx01, /* 8s -> 16s */ + snd_pcm_linear_conv_xxx1_x100, /* 8s -> 24h */ + snd_pcm_linear_conv_xxx1_001x, /* 8s -> 24s */ + snd_pcm_linear_conv_xxx1_1000, /* 8s -> 32h */ + snd_pcm_linear_conv_xxx1_0001, /* 8s -> 32s */ + snd_pcm_linear_conv_xxx1_xxx9, /* 8s ^> 8h */ + snd_pcm_linear_conv_xxx1_xxx9, /* 8s ^> 8s */ + snd_pcm_linear_conv_xxx1_xx90, /* 8s ^> 16h */ + snd_pcm_linear_conv_xxx1_xx09, /* 8s ^> 16s */ + snd_pcm_linear_conv_xxx1_x900, /* 8s ^> 24h */ + snd_pcm_linear_conv_xxx1_009x, /* 8s ^> 24s */ + snd_pcm_linear_conv_xxx1_9000, /* 8s ^> 32h */ + snd_pcm_linear_conv_xxx1_0009, /* 8s ^> 32s */ + snd_pcm_linear_conv_xx12_xxx1, /* 16h -> 8h */ + snd_pcm_linear_conv_xx12_xxx1, /* 16h -> 8s */ + snd_pcm_linear_conv_xx12_xx12, /* 16h -> 16h */ + snd_pcm_linear_conv_xx12_xx21, /* 16h -> 16s */ + snd_pcm_linear_conv_xx12_x120, /* 16h -> 24h */ + snd_pcm_linear_conv_xx12_021x, /* 16h -> 24s */ + snd_pcm_linear_conv_xx12_1200, /* 16h -> 32h */ + snd_pcm_linear_conv_xx12_0021, /* 16h -> 32s */ + snd_pcm_linear_conv_xx12_xxx9, /* 16h ^> 8h */ + snd_pcm_linear_conv_xx12_xxx9, /* 16h ^> 8s */ + snd_pcm_linear_conv_xx12_xx92, /* 16h ^> 16h */ + snd_pcm_linear_conv_xx12_xx29, /* 16h ^> 16s */ + snd_pcm_linear_conv_xx12_x920, /* 16h ^> 24h */ + snd_pcm_linear_conv_xx12_029x, /* 16h ^> 24s */ + snd_pcm_linear_conv_xx12_9200, /* 16h ^> 32h */ + snd_pcm_linear_conv_xx12_0029, /* 16h ^> 32s */ + snd_pcm_linear_conv_xx12_xxx2, /* 16s -> 8h */ + snd_pcm_linear_conv_xx12_xxx2, /* 16s -> 8s */ + snd_pcm_linear_conv_xx12_xx21, /* 16s -> 16h */ + snd_pcm_linear_conv_xx12_xx12, /* 16s -> 16s */ + snd_pcm_linear_conv_xx12_x210, /* 16s -> 24h */ + snd_pcm_linear_conv_xx12_012x, /* 16s -> 24s */ + snd_pcm_linear_conv_xx12_2100, /* 16s -> 32h */ + snd_pcm_linear_conv_xx12_0012, /* 16s -> 32s */ + snd_pcm_linear_conv_xx12_xxxA, /* 16s ^> 8h */ + snd_pcm_linear_conv_xx12_xxxA, /* 16s ^> 8s */ + snd_pcm_linear_conv_xx12_xxA1, /* 16s ^> 16h */ + snd_pcm_linear_conv_xx12_xx1A, /* 16s ^> 16s */ + snd_pcm_linear_conv_xx12_xA10, /* 16s ^> 24h */ + snd_pcm_linear_conv_xx12_01Ax, /* 16s ^> 24s */ + snd_pcm_linear_conv_xx12_A100, /* 16s ^> 32h */ + snd_pcm_linear_conv_xx12_001A, /* 16s ^> 32s */ + snd_pcm_linear_conv_x123_xxx1, /* 24h -> 8h */ + snd_pcm_linear_conv_x123_xxx1, /* 24h -> 8s */ + snd_pcm_linear_conv_x123_xx12, /* 24h -> 16h */ + snd_pcm_linear_conv_x123_xx21, /* 24h -> 16s */ + snd_pcm_linear_conv_x123_x123, /* 24h -> 24h */ + snd_pcm_linear_conv_x123_321x, /* 24h -> 24s */ + snd_pcm_linear_conv_x123_1230, /* 24h -> 32h */ + snd_pcm_linear_conv_x123_0321, /* 24h -> 32s */ + snd_pcm_linear_conv_x123_xxx9, /* 24h ^> 8h */ + snd_pcm_linear_conv_x123_xxx9, /* 24h ^> 8s */ + snd_pcm_linear_conv_x123_xx92, /* 24h ^> 16h */ + snd_pcm_linear_conv_x123_xx29, /* 24h ^> 16s */ + snd_pcm_linear_conv_x123_x923, /* 24h ^> 24h */ + snd_pcm_linear_conv_x123_329x, /* 24h ^> 24s */ + snd_pcm_linear_conv_x123_9230, /* 24h ^> 32h */ + snd_pcm_linear_conv_x123_0329, /* 24h ^> 32s */ + snd_pcm_linear_conv_123x_xxx3, /* 24s -> 8h */ + snd_pcm_linear_conv_123x_xxx3, /* 24s -> 8s */ + snd_pcm_linear_conv_123x_xx32, /* 24s -> 16h */ + snd_pcm_linear_conv_123x_xx23, /* 24s -> 16s */ + snd_pcm_linear_conv_123x_x321, /* 24s -> 24h */ + snd_pcm_linear_conv_123x_123x, /* 24s -> 24s */ + snd_pcm_linear_conv_123x_3210, /* 24s -> 32h */ + snd_pcm_linear_conv_123x_0123, /* 24s -> 32s */ + snd_pcm_linear_conv_123x_xxxB, /* 24s ^> 8h */ + snd_pcm_linear_conv_123x_xxxB, /* 24s ^> 8s */ + snd_pcm_linear_conv_123x_xxB2, /* 24s ^> 16h */ + snd_pcm_linear_conv_123x_xx2B, /* 24s ^> 16s */ + snd_pcm_linear_conv_123x_xB21, /* 24s ^> 24h */ + snd_pcm_linear_conv_123x_12Bx, /* 24s ^> 24s */ + snd_pcm_linear_conv_123x_B210, /* 24s ^> 32h */ + snd_pcm_linear_conv_123x_012B, /* 24s ^> 32s */ + snd_pcm_linear_conv_1234_xxx1, /* 32h -> 8h */ + snd_pcm_linear_conv_1234_xxx1, /* 32h -> 8s */ + snd_pcm_linear_conv_1234_xx12, /* 32h -> 16h */ + snd_pcm_linear_conv_1234_xx21, /* 32h -> 16s */ + snd_pcm_linear_conv_1234_x123, /* 32h -> 24h */ + snd_pcm_linear_conv_1234_321x, /* 32h -> 24s */ + snd_pcm_linear_conv_1234_1234, /* 32h -> 32h */ + snd_pcm_linear_conv_1234_4321, /* 32h -> 32s */ + snd_pcm_linear_conv_1234_xxx9, /* 32h ^> 8h */ + snd_pcm_linear_conv_1234_xxx9, /* 32h ^> 8s */ + snd_pcm_linear_conv_1234_xx92, /* 32h ^> 16h */ + snd_pcm_linear_conv_1234_xx29, /* 32h ^> 16s */ + snd_pcm_linear_conv_1234_x923, /* 32h ^> 24h */ + snd_pcm_linear_conv_1234_329x, /* 32h ^> 24s */ + snd_pcm_linear_conv_1234_9234, /* 32h ^> 32h */ + snd_pcm_linear_conv_1234_4329, /* 32h ^> 32s */ + snd_pcm_linear_conv_1234_xxx4, /* 32s -> 8h */ + snd_pcm_linear_conv_1234_xxx4, /* 32s -> 8s */ + snd_pcm_linear_conv_1234_xx43, /* 32s -> 16h */ + snd_pcm_linear_conv_1234_xx34, /* 32s -> 16s */ + snd_pcm_linear_conv_1234_x432, /* 32s -> 24h */ + snd_pcm_linear_conv_1234_234x, /* 32s -> 24s */ + snd_pcm_linear_conv_1234_4321, /* 32s -> 32h */ + snd_pcm_linear_conv_1234_1234, /* 32s -> 32s */ + snd_pcm_linear_conv_1234_xxxC, /* 32s ^> 8h */ + snd_pcm_linear_conv_1234_xxxC, /* 32s ^> 8s */ + snd_pcm_linear_conv_1234_xxC3, /* 32s ^> 16h */ + snd_pcm_linear_conv_1234_xx3C, /* 32s ^> 16s */ + snd_pcm_linear_conv_1234_xC32, /* 32s ^> 24h */ + snd_pcm_linear_conv_1234_23Cx, /* 32s ^> 24s */ + snd_pcm_linear_conv_1234_C321, /* 32s ^> 32h */ + snd_pcm_linear_conv_1234_123C, /* 32s ^> 32s */ +}; + void snd_pcm_linear_convert(const snd_pcm_channel_area_t *dst_areas, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t *src_areas, snd_pcm_uframes_t src_offset, unsigned int channels, snd_pcm_uframes_t frames, unsigned int convidx) { -#define CONV_LABELS -#include "plugin_ops.h" -#undef CONV_LABELS - void *conv = conv_labels[convidx]; unsigned int channel; + snd_pcm_linear_conv_t func = linear_conv_table[convidx]; for (channel = 0; channel < channels; ++channel) { const char *src; char *dst; int src_step, dst_step; - snd_pcm_uframes_t frames1; const snd_pcm_channel_area_t *src_area = &src_areas[channel]; const snd_pcm_channel_area_t *dst_area = &dst_areas[channel]; src = snd_pcm_channel_area_addr(src_area, src_offset); dst = snd_pcm_channel_area_addr(dst_area, dst_offset); src_step = snd_pcm_channel_area_step(src_area); dst_step = snd_pcm_channel_area_step(dst_area); - frames1 = frames; - while (frames1-- > 0) { - goto *conv; -#define CONV_END after -#include "plugin_ops.h" -#undef CONV_END - after: - src += src_step; - dst += dst_step; - } + func(src, dst, src_step, dst_step, frames); } } ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-30 19:46 ` usb-audio Takashi Iwai @ 2003-10-31 8:23 ` Niklas Werner 2003-10-31 11:02 ` usb-audio Takashi Iwai 0 siblings, 1 reply; 19+ messages in thread From: Niklas Werner @ 2003-10-31 8:23 UTC (permalink / raw) To: alsa-devel Am Donnerstag, 30. Oktober 2003 20:46 wurde geschrieben: > At Thu, 30 Oct 2003 13:42:14 +0100, > > hmm, really weird. > > meanwhile, i rewrote snd_pcm_linear_convert() without goto trick. > could you try the attached patch? ... you don't really want to know... Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 22147)] 0x0fd41564 in snd_pcm_linear_conv_xx12_xx21 ( src=0x104e4000 <Address 0x104e4000 out of bounds>, dst=0x30c28590 "", src_step=4, dst_step=4, frames=7835) at pcm_linear.c:303 303 DEF_CONV(conv_xx12_xx21,l_conv_xx12_xx21); (gdb) bt #0 0x0fd41564 in snd_pcm_linear_conv_xx12_xx21 ( src=0x104e4000 <Address 0x104e4000 out of bounds>, dst=0x30c28590 "", src_step=4, dst_step=4, frames=7835) at pcm_linear.c:303 #1 0x0fd429f4 in snd_pcm_linear_convert (dst_areas=0x104d1f18, dst_offset=0, src_areas=0x7fffcf10, src_offset=0, channels=2, frames=16384, convidx=0) at pcm_local.h:362 #2 0x0fd435a0 in snd_pcm_linear_write_areas (pcm=0x0, areas=0x1, offset=2147471120, size=12, slave_areas=0x0, slave_offset=1140885572, slave_sizep=0xfdb408c) at pcm_linear.c:722 #3 0x0fd3f808 in snd_pcm_plugin_write_areas (pcm=0x2, areas=0x7fffcf10, offset=0, size=273489688) at pcm_plugin.c:365 #4 0x0fd35d94 in snd_pcm_write_areas (pcm=0x104db890, areas=0xfd41554, offset=0, size=273489688, func=0) at pcm.c:6206 #5 0x0fd3fc14 in snd_pcm_plugin_writei (pcm=0x104db600, buffer=0x30c28590, size=273489688) at pcm_plugin.c:436 #6 0x0fd2ec3c in snd_pcm_writei (pcm=0x0, buffer=0x0, size=0) at pcm_local.h:368 #7 0x10078718 in outputaudio () #8 0x1007837c in outputaudio () #9 0x1002ed74 in main () Niklas -- ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: usb-audio 2003-10-31 8:23 ` usb-audio Niklas Werner @ 2003-10-31 11:02 ` Takashi Iwai 0 siblings, 0 replies; 19+ messages in thread From: Takashi Iwai @ 2003-10-31 11:02 UTC (permalink / raw) To: Niklas Werner; +Cc: alsa-devel At Fri, 31 Oct 2003 09:23:02 +0100, Niklas Werner wrote: > > Am Donnerstag, 30. Oktober 2003 20:46 wurde geschrieben: > > At Thu, 30 Oct 2003 13:42:14 +0100, > > > > > hmm, really weird. > > > > meanwhile, i rewrote snd_pcm_linear_convert() without goto trick. > > could you try the attached patch? > ... you don't really want to know... yes, i do want to know that :) at least, it spots out the real segfault place. > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 16384 (LWP 22147)] > 0x0fd41564 in snd_pcm_linear_conv_xx12_xx21 ( > src=0x104e4000 <Address 0x104e4000 out of bounds>, dst=0x30c28590 "", > src_step=4, dst_step=4, frames=7835) at pcm_linear.c:303 > 303 DEF_CONV(conv_xx12_xx21,l_conv_xx12_xx21); that's it: the source address is bogus. i should have asked you to check that... Takashi ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2003-10-31 11:02 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-10-27 18:03 usb-audio Antonio Willy Malara 2003-10-27 18:16 ` usb-audio Takashi Iwai 2003-10-27 19:53 ` usb-audio Antonio Willy Malara 2003-10-28 10:11 ` usb-audio Takashi Iwai 2003-10-28 10:41 ` usb-audio Niklas Werner 2003-10-28 11:10 ` usb-audio Takashi Iwai 2003-10-28 11:48 ` usb-audio Niklas Werner 2003-10-28 12:13 ` usb-audio Takashi Iwai 2003-10-28 12:42 ` usb-audio Niklas Werner 2003-10-28 13:28 ` usb-audio Takashi Iwai 2003-10-28 18:25 ` usb-audio Takashi Iwai 2003-10-28 19:18 ` usb-audio Niklas Werner 2003-10-29 18:24 ` usb-audio Takashi Iwai 2003-10-29 22:26 ` usb-audio Niklas Werner 2003-10-30 12:17 ` usb-audio Takashi Iwai 2003-10-30 12:42 ` usb-audio Niklas Werner 2003-10-30 19:46 ` usb-audio Takashi Iwai 2003-10-31 8:23 ` usb-audio Niklas Werner 2003-10-31 11:02 ` usb-audio Takashi Iwai
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.