cvs commit: src/sys/dev/sound/pcm channel.c channel_if.m feeder_fmt.c

Ariff Abdullah ariff at
Fri Mar 16 17:16:28 UTC 2007

ariff       2007-03-16 17:16:24 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/sound/pcm    channel.c channel_if.m feeder_fmt.c 
  [stage: 5/9]
   - Macros cleanups, prefer inlined min() over MIN().
   - Rework chn_read()/chn_write() for better dead interrupt detection
     policy. Reduce scheduling overhead by doing pure 5 seconds sleep
     before giving up, instead of several cycle of brute micro sleeping.
   - Avoid calling wakeup_one() for non-sleeping channel (for example,
     vchan parent channel).
   - Fix possible divide-by-zero panic on chn_sync().
   - Re-enforce ^2 blocksize policy, since there are too many broken
     userland apps that blindly assume it without even trying to do
     serious calculations.
   - New channel method - CHANNEL_SETFRAGMENTS(), a refined version of
     CHANNEL_SETBLOCKSIZE(). It accept _both_ blocksize and blockcount
     arguments, so the driver internals will have better hints for
     buffering and timing calculations.
   - Hook FEEDER_SWAPLR into feederchain building process.
  - Unified version of various filters, avoiding duplications.
  - malloc()less feeder_fmt. Informations can be retrieved dynamically
    by doing table lookup on static data. For cases such as converting
    from stereo to mono or reducing bit depth where input data is larger
    than output, cycle remaining available free space until it has been
    exhausted and start kicking 8 bytes reservoir space from there to
    complete the remaining requested count.
  - Introduce FEEDER_SWAPLR. Few super broken hardwares (found on several
    extremely cheap uaudio stick, possibly others) mistakenly wired left
    and right channels wrongly, screwing output or input.
  Revision  Changes     Path
  1.115     +286 -197   src/sys/dev/sound/pcm/channel.c
  1.7       +13 -0      src/sys/dev/sound/pcm/channel_if.m
  1.22      +928 -1057  src/sys/dev/sound/pcm/feeder_fmt.c

More information about the cvs-src mailing list