Fwd: SNDCTL_DSP_GETIPTR implementation

Andriy Gapon avg at FreeBSD.org
Fri Apr 29 05:59:42 UTC 2011


I intend to commit the following change soon and MFC it after a short period of
time.  Please test it if you use multimedia applications, both native and Linux,
especially if they deal with audio recording/capture.

Thank you.

-------- Original Message --------
Message-ID: <4DB6F7BA.4070808 at FreeBSD.org>
Date: Tue, 26 Apr 2011 19:50:02 +0300
From: Andriy Gapon <avg at FreeBSD.org>
To: multimedia at freebsd.org
Subject: SNDCTL_DSP_GETIPTR implementation

Guys,

I reading this http://manuals.opensound.com/developer/SNDCTL_DSP_GETOPTR.html
It says: "In mmap mode (only) the ptr field tells the location where the next
sample will be recorded."
In my opinion that means that we have a mistake in our code and the following
patch should be applied.  But I am not sufficiently familiar with this code.

--- a/sys/dev/sound/pcm/dsp.c
+++ b/sys/dev/sound/pcm/dsp.c
@@ -1655,7 +1655,7 @@ dsp_ioctl
 				/* XXX abusive DMA update: chn_rdupdate(rdch); */
 	        		a->bytes = sndbuf_gettotal(bs);
 	        		a->blocks = sndbuf_getblocks(bs) - rdch->blocks;
-	        		a->ptr = sndbuf_getreadyptr(bs);
+	        		a->ptr = sndbuf_getfreeptr(bs);
 				rdch->blocks = sndbuf_getblocks(bs);
 				CHN_UNLOCK(rdch);
 	    		} else

P.S. leading (indenting) whitespace in this file is a mess.

-- 
Andriy Gapon


More information about the freebsd-current mailing list