SNDCTL_DSP_GETIPTR implementation

Juergen Lock nox at jelal.kn-bremen.de
Tue Apr 26 17:47:59 UTC 2011


On Tue, Apr 26, 2011 at 08:32:52PM +0300, Andriy Gapon wrote:
> on 26/04/2011 19:50 Andriy Gapon said the following:
> > 
> > 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.
> 
> It seems that with this change linux alsa lib with oss plugin works for audio
> recording now.  E.g. in skype.
> Hope I wasn't sloppy with my testing again, so I will re-test.
> 
> Juergen,
> will you be able to test this too?
> 
> > --- 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.

Nice, I'll have a go.

 Thanx!
	Juergen


More information about the freebsd-multimedia mailing list