On Thu, Feb 04, 2010 at 09:07:18PM +0100, Alexandre Ratchov wrote: > On Thu, Feb 04, 2010 at 08:08:32PM +0100, Alexandre Ratchov wrote: > > On Thu, Feb 04, 2010 at 02:42:33PM +0000, Jacob Meuser wrote: > > > On Thu, Feb 04, 2010 at 10:20:40AM +0100, Alexandre Ratchov wrote: > > > > On Wed, Feb 03, 2010 at 04:10:48PM +0000, Jacob Meuser wrote: > > > > > I wonder if these problems would go away if jack support were dropped > > > > > from portaudio. only working with 32-bit sounds suspicious. > > > > > > > > > > > > > that's easy to check by disabling it, I'll try it.. > > > > > > > > AFAIU, ALSA supports any format and seldom triggers > > > > conversion code of audacity and/or portaudio. > > > > > > > > sndio backend uses sio_getacap() to return native parameters > > > > and lets portaudio/audacity do the necessary conversions, > > > > since it claims it can. As far as I understand portaudio > > > > internals, this is the ``right thing''. So I bet we trigger > > > > various bugs. > > > > > > > > I don't exclude there's a bug in sndio backend though. But, > > > > I wonder whether we shouldn't just claim that any format is > > > > supported and stop using sio_getcap() here. > > > > > > that might cause other problems if aucat isn't used? > > > > that shouldn't be a problem. Portaudio exposes the result of > > sio_getpar() to allow the app to display a nice drop-down > > list with the supported parameters. > > > > But if sio_setpar() fails, it will setup the appropriate > > conversion layer. > > > > AFAIU, audacity is misusing this mechanism. Not sure yet. > > I'm trying this right now... > > > > Indeed removing sio_getcap() fixes all these problems. If I > try to record mono on a stereo only device, it just displays > a pop-up with ``format not supported''. > > With this diff, I don't observe hangs caused by sample rate > mismatch anymore.
cool, thanks :) > @@ -81,7 +80,7 @@ sndioOnMove(void *addr, int delta) > } > > /* > - * convert PA encoding to libsndio encoding, retrun true on success > + * convert PA encoding to sndio encoding, retrun true on success s/retrun/return/ > */ > static int > sndioSetFmt(struct sio_par *sio, PaSampleFormat fmt) > @@ -118,7 +117,7 @@ sndioSetFmt(struct sio_par *sio, PaSampl > } > > /* > - * convert libsndio encoding to PA encoding, retrun true on success > + * convert sndio encoding to PA encoding, retrun true on success here too ;) -- jake...@sdf.lonestar.org SDF Public Access UNIX System - http://sdf.lonestar.org