>> Thanks for the patch;  I'll try it.  I have the ESS 1868 isa card.  The
>> problem I'm having isn't really volume problems.  When I use RealPlayer
>> 5.0, certain realaudio clips play through extremely fast, and I can hear
>> the sound in bursts along the way.  The speed/sample rate itself doesn't
>> increase, but the entire clip whizzes by extremely fast, and I hear
>> short bursts of the clip.  Maybe the clip isn't being memory mapped
>> properly?

try below patch for -current which was written by Kurosawa-san
<[EMAIL PROTECTED]>.

--- sys/dev/pcm/isa/sb.c.org    Tue Sep  7 17:42:44 1999
+++ sys/dev/pcm/isa/sb.c        Mon Sep 13 23:38:45 1999
@@ -880,9 +880,9 @@
 ess_format(struct sb_chinfo *ch, u_int32_t format)
 {
        struct sb_info *sb = ch->parent;
-       int play = (ch->dir == PCMDIR_PLAY)? 1 : 0;
-       int b16 = (ch->fmt & AFMT_S16_LE)? 1 : 0;
-       int stereo = (ch->fmt & AFMT_STEREO)? 1 : 0;
+       int play = (format == PCMDIR_PLAY)? 1 : 0;
+       int b16 = (format & AFMT_S16_LE)? 1 : 0;
+       int stereo = (format & AFMT_STEREO)? 1 : 0;
        u_char c;
        ch->fmt = format;
        sb_reset_dsp(sb);
--- sys/dev/pcm/dsp.c.orig      Sun Sep  5 02:03:59 1999
+++ sys/dev/pcm/dsp.c   Mon Sep 13 23:40:10 1999
@@ -54,8 +54,18 @@
        if ((d->flags & SD_F_PRIO_SET) == SD_F_PRIO_SET)
                panic("read and write both prioritised");
        if (d->flags & SD_F_SIMPLEX) {
+#if 0
                *rdch = (d->flags & SD_F_PRIO_RD)? d->arec[chan] : &d->fakechan;
                *wrch = (d->flags & SD_F_PRIO_WR)? d->aplay[chan] : &d->fakechan;
+#else
+               if (!(d->flags & SD_F_PRIO_SET)) {
+                       *rdch = d->arec[chan]? d->arec[chan] : &d->fakechan;
+                       *wrch = d->aplay[chan]? d->aplay[chan] : &d->fakechan;
+               } else {
+                       *rdch = (d->flags & SD_F_PRIO_RD)? d->arec[chan] : 
+&d->fakechan;
+                       *wrch = (d->flags & SD_F_PRIO_WR)? d->aplay[chan] : 
+&d->fakechan;
+               }
+#endif
        } else {
                *rdch = d->arec[chan];
                *wrch = d->aplay[chan];


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

Reply via email to