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

Reply via email to