On Fri, 24 Dec 1999 10:39:31 +0900,
  Seigo Tanimura <[EMAIL PROTECTED]> said:

Seigo> players. My sound cards are SB32, SB64 and CS461x, so the problem is
Seigo> likely to be in channel.c or dsp.c.

OK, here is the result of my investigation on RealPlayer 5.0:

RealPlayer 5.0 is an ill-behaving application in two points. First, it
passes a size of 16 to SNDCTL_DSP_SETFRAGMENT. This size is obviously
too small to buffer pcm data. Second, RealPlayer 5.0 often attempts to
write larger pcm data than the block size of the secondary buffer. The
result is to write only a part of pcm data ending up with an error,
and make polling really weird. AFAIK these problems are fixed in
RealPlayer G2.

The following fixes are somewhat klutzy, but seem to work:

- If a device is in nonblocking mode, adapt the block size to the
  pcm data to write.
- Poll the remaining size to write, rather than that of free space.

These fixes are included in:

http://people.freebsd.org/~tanimura/patches/newmidi/2ndbuf-19991225.diff.gz

-- 
Seigo Tanimura <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to