From owner-freebsd-multimedia Sat Jan 16 14:41:24 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA01448 for freebsd-multimedia-outgoing; Sat, 16 Jan 1999 14:41:24 -0800 (PST) (envelope-from owner-freebsd-multimedia@FreeBSD.ORG) Received: from nina.pagesz.net (nina.pagesz.net [208.194.157.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA01428 for ; Sat, 16 Jan 1999 14:41:22 -0800 (PST) (envelope-from rhh@pagesz.net) Received: from stealth.dummynet. (juana-28.pagesz.net [208.213.126.28]) by nina.pagesz.net (8.8.7/8.8.7) with ESMTP id RAA17583; Sat, 16 Jan 1999 17:41:32 -0500 Received: (from rhh@localhost) by stealth.dummynet. (8.9.1/8.8.8) id RAA03496; Sat, 16 Jan 1999 17:41:34 -0500 (EST) (envelope-from rhh) Date: Sat, 16 Jan 1999 17:41:34 -0500 From: Randall Hopper To: Luigi Rizzo Cc: duane@denton.com, multimedia@FreeBSD.ORG Subject: Re: fxtv Message-ID: <19990116174134.A2712@pagesz.net> References: <19990116123615.B11467@pagesz.net> <199901161830.TAA02503@labinfo.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95i In-Reply-To: <199901161830.TAA02503@labinfo.iet.unipi.it>; from Luigi Rizzo on Sat, Jan 16, 1999 at 07:30:53PM +0100 Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Luigi Rizzo: |Randall, i experienced similar problems for a long time on all |systems i have with a bt848. The reason is something i strongly |believe to be a bug in the bt848 driver: | | when for any reason the DMA engine on the Bt848 experiences an | underrun, the interrupt handler in the bt848 driver notices the | problem and decides _not_ to invoke a wakeup() on the sleeping | process. | |If you have this problem you should notice because with full screen |captures you don't have one field and the channel numbers and other |msgs remain partly visible (on the lines corresponding to the missing |field). | |The reason i think this is broken behaviour of the driver is that the |interrupt handler should call wakeup() even in case of errors, just |report the problem to the application in case it bothers to check. That sounds reasonable to me. Then the application could decide whether it wanted to (for example) try N times for a good frame before accepting a dirty one, print an operation failed message, or just take the first frame that comes along. |DMA overruns are easy, especially when (as in my case) one is dumping |to the video RAM of some slow card. Makes sense. In Duane's case though, he's running a 66MHz mem bus and a VRAM video card; shouldn't be a problem AFAIK unless there's some other device on the bus stealing a lot of bandwidth. Alternatively, we may have a marginal signal. That again leads me back to your idea of "reporting the problem" to the application. It'd sure be nice to be able to tell the user in plain English (or Italian :-) why frames captures are failing. Sure beats getting them to turn on driver debugs and deciphering streams of "a058a018 10a38c8b" register dumps. Anyone with some time on their hands? :-) Randall To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message