From owner-freebsd-multimedia Wed Dec 3 00:48:49 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id AAA21925 for multimedia-outgoing; Wed, 3 Dec 1997 00:48:49 -0800 (PST) (envelope-from owner-freebsd-multimedia) Received: from lassie.eunet.fi (lassie.eunet.fi [192.26.119.7]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id AAA21897 for ; Wed, 3 Dec 1997 00:48:39 -0800 (PST) (envelope-from hannu@opensound.com) Received: from janus.opensound.com (janus.opensound.com [193.94.53.108]) by lassie.eunet.fi (8.8.7/8.8.3) with ESMTP id KAA03526; Wed, 3 Dec 1997 10:48:22 +0200 (EET) Received: from localhost (hannu@localhost) by janus.opensound.com (8.8.5/8.8.5) with SMTP id KAA01115; Wed, 3 Dec 1997 10:51:50 +0200 Date: Wed, 3 Dec 1997 10:51:50 +0200 (EET) From: Hannu Savolainen To: Luigi Rizzo cc: Tristan Savatier , race@exchange.lancs.ac.uk, multimedia@freebsd.org Subject: Re: MpegTV Problems In-Reply-To: <199712030740.IAA17761@labinfo.iet.unipi.it> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-multimedia@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi, The info.ptr value returned by OSS is computed from the DMA residue count. However the old VoxWare driver for FreeBSD doesn't work in this way. Instead it works just on the fragment boundaries. Best regards, Hannu ----- On Wed, 3 Dec 1997, Luigi Rizzo wrote: > > With the OSS driver, currently the only way to > > get accurate delay information is to set the fragment size > > to a relatively small size, and to use GETOSPACE. > ... > > I still have to set the fragment size to small, otherwise > > the information about the data queued would be very inaccurate. > > My understanding is that the driver is called on interrupt > > to setup dma for a fragment. If the fragment is large and > > there is no way to know the current status of a dma transfer > > in process, then the accuracy is limited to one fragment, > > right. In my driver, and i guess amancio has done something similar, > whenever some ioctl() is invoked which needs to know the status of the > transfer, i read the transfer count from the dma registers, so i have > a precise information independent of the fragment size. But of course > to remain OSS compatible you have to set a small fragment size. > > > which may represent more than say 1/30th of a second. This > > would not be acceptable for lipsync. > > actually i am not sure on what is really the maximum acceptable delay > for lipsync (or maybe it is also the jitter which counts). 30ms (which > is the refresh rate of a tv) correspond to the delay between audio and > video when you look at someone speaking at a distance of about 10m. > i guess we are used to such delays... > > luigi > Hannu Savolainen (hannu@opensound.com) http://www.fi.opensound.com/~hannu (personal) http://www.opensound.com/oss.html (Open Sound System (OSS)) http://www.opensound.com/ossfree (OSS Free/TASD/VoxWare)