Date: Mon, 17 Nov 1997 14:32:36 +0100 (MET) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: henrich@crh.cl.msu.edu (Charles Henrich) Cc: hasty@rah.star-gate.com, freebsd-multimedia@FreeBSD.ORG Subject: Re: ftp://rah.star-gate.com/pub/linux_ioctl-3.0-current.tar.gz Message-ID: <199711171332.OAA17030@labinfo.iet.unipi.it> In-Reply-To: <199711171404.JAA06681@crh.cl.msu.edu> from "Charles Henrich" at Nov 17, 97 09:04:29 am
next in thread | previous in thread | raw e-mail | index | archive | help
> >xquake and the linux real player 5.0 works over here with this version > >of the linux layer. > > Any chance of a 2.2.5 version of these mods? if you are only interested in raplayer, the fixes are quite trivial (the relevant files are in /sys/i386/linux): --- linux.h.orig Tue Dec 3 16:47:28 1996 +++ linux.h Mon Nov 17 00:05:29 1997 @@ -491,6 +491,9 @@ #define LINUX_SNDCTL_DSP_GETOSPACE 0x500C #define LINUX_SNDCTL_DSP_GETISPACE 0x500D #define LINUX_SNDCTL_DSP_NONBLOCK 0x500E +#define LINUX_SNDCTL_DSP_GETCAPS 0x500F +#define LINUX_SNDCTL_DSP_GETIPTR 0x5011 +#define LINUX_SNDCTL_DSP_GETOPTR 0x5012 #define LINUX_SOUND_MIXER_WRITE_VOLUME 0x4d00 #define LINUX_SOUND_MIXER_WRITE_BASS 0x4d01 #define LINUX_SOUND_MIXER_WRITE_TREBLE 0x4d02 --- linux_ioctl.c.orig Sat Nov 9 22:10:15 1996 +++ linux_ioctl.c Mon Nov 17 10:20:14 1997 @@ -691,6 +691,26 @@ args->cmd = SNDCTL_DSP_NONBLOCK; return ioctl(p, (struct ioctl_args *)args, retval); + case LINUX_SNDCTL_DSP_GETCAPS: + args->cmd = SNDCTL_DSP_GETCAPS; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_SNDCTL_DSP_GETIPTR: + args->cmd = SNDCTL_DSP_GETIPTR; + return ioctl(p, (struct ioctl_args *)args, retval); + + case LINUX_SNDCTL_DSP_GETOPTR: + args->cmd = SNDCTL_DSP_GETOPTR; + { int a= ioctl(p, (struct ioctl_args *)args, retval); + struct count_info *p = (struct count_info *)(args->arg); +#if 0 + p->bytes += 128 ; /* if the output sounds choppy... */ + uprintf("GETOPTR bytes %d blk %d ptr %d\n", + p->bytes, p->blocks, p->ptr); +#endif + return a; + } + case LINUX_SOUND_MIXER_WRITE_VOLUME: args->cmd = SOUND_MIXER_WRITE_VOLUME; return ioctl(p, (struct ioctl_args *)args, retval); These changes more or less work with my audio driver (you need support for a few more ioctl() which I have added just yesterday and will make available later today). I notice that rvplayer 5.0 with the sample file (welcome.rm) seems to produce choppy audio output when the "synchronized" option is set -- at least with my driver and my P5-133 at home (with a P6-200 things are much smoother). I am not sure if the same problem exists with guspnp. Unless I have misinterpreted the semantics of GETOPTR (which is quite possible), i suspect the problem is that the application (which seems to be using 128-byte buffers) leaves too little spare data in the play buffer, which expires before rendering of the next video frame has expired. In case, the p->bytes += 128 is there to reduce the problem (it is a dirty hack, i know...) Cheers Luigi -----------------------------+-------------------------------------- Luigi Rizzo | Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it | Universita' di Pisa tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/ _____________________________|______________________________________
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711171332.OAA17030>