On Fri, 11 Jul 2003, Carlo Wood wrote:

>> Total number of fragments allocated for buffering: 64
> Well, you have 64 fragments - I only 2.

Yup, that's because I'm using the snd-ens1371 driver (maximum interrupt 
frequency ~= period size, is driver/card dependent).

>> #fragments, #bytes: 13, 13472
>> Read 1024 bytes.
> You didn't really test it when you stop here.
> 13472 < 64 * 1024.

I increased the size of the loop and eventually managed to reproduce the
same behaviour you are seeing. It happens somewhere around 100-200th
iteration. Hmm, looks strange. I manage to workaround this by change the
test code to:

--cut--
      printf("Read %d bytes.\n", rlen);
      }
    else {
      static struct timespec naptime = { 0, 100000000 };
      nanosleep(&naptime, 0);
    }
--cut--

... hmm, anyways, it's 3:30am already here, so I'll have to call it a day
now.  Good luck in bug hunting, hopefully you can find out the cause.

> You need to wait till you get an overrun (xrun?).

Yups, xruns is a common (ALSA) term for underruns and overruns.

-- 
 http://www.eca.cx
 Audio software for Linux!



-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to