Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Nov 1999 19:41:45 +0900 (JST)
From:      sanpei@sanpei.org (MIHIRA Yoshiro)
To:        dmmiller@cvzoom.net
Cc:        rbezuide@oskar.dev.nanoteq.co.za, dfr@nlsystems.com, current@FreeBSD.ORG, sanpei@sanpei.org, fwkg7679@mb.infoweb.ne.jp
Subject:   Re: ESS sound drivers and 4.0-current
Message-ID:  <199911011041.TAA28726@lavender.yy.cs.keio.ac.jp>
In-Reply-To: Your message of "Mon, 1 Nov 1999 19:19:53 JST". <Pine.BSF.4.20.9911010514400.1496-100000@lcm202.cvzoom.net>

next in thread | previous in thread | raw e-mail | index | archive | help

>> 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
<fwkg7679@mb.infoweb.ne.jp>.

--- 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911011041.TAA28726>