From owner-freebsd-multimedia Wed Apr 15 20:48:15 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id UAA18445 for freebsd-multimedia-outgoing; Wed, 15 Apr 1998 20:48:15 -0700 (PDT) (envelope-from owner-freebsd-multimedia@FreeBSD.ORG) Received: from rah.star-gate.com (rah.star-gate.com [209.133.7.234]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id UAA18432 for ; Wed, 15 Apr 1998 20:48:11 -0700 (PDT) (envelope-from hasty@rah.star-gate.com) Received: from rah.star-gate.com (localhost.star-gate.com [127.0.0.1]) by rah.star-gate.com (8.8.8/8.8.8) with ESMTP id UAA16881; Wed, 15 Apr 1998 20:47:55 -0700 (PDT) (envelope-from hasty@rah.star-gate.com) Message-Id: <199804160347.UAA16881@rah.star-gate.com> X-Mailer: exmh version 2.0.2 2/24/98 To: Mark Handley cc: multimedia@FreeBSD.ORG Subject: Re: vic, image corruption with Wincast/TV card In-reply-to: Your message of "Wed, 15 Apr 1998 23:39:31 EDT." <26450.892697971@north.lcs.mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 15 Apr 1998 20:47:55 -0700 From: Amancio Hasty Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Just take out opt_bktr.h for now. Probably, I will submit a minor driver upgrade to fix this problem as well as a couple of minor fixes. What sort of corrupting are you getting and whats your video format: NTSC or PAL ? ---- This is a note which I got from brooktree: ear Amancio, We received your inquiry about the Bt848 PCI-based decoder recently. For your reference, it is repeated below: >> A little while ago I wrote a Bt848 driver from scratch for FreeBSD a public domain unix system. The driver is very popular to be watching TV in a multi tasking operating system and the driver has been ported to BSDI and Linux. More to the point here, my last remaining problem has to deal with setting the frame rate: This is a comment from one of the developers: " The problem: despite the databook's description of how temporal decimation on frames is supposed to work (whole frames are masked as a unit for purposes of synchronization), it appears that the engine is masking out fields, or rotating the enablement of the fields based on the requested number of dropped frames. Anyway, I must be missing something. Could sure use a set of eyes with more bt experience." Also, I have a simple question , what is the behavior of the video engine when it decides to drop a frame? does it report uniquely that it has drop a frame as supposed to reporting that it has dropped a frame due to a pci error? This is the current code in the driver to set the frame rates: static void set_fps( bktr_ptr_t bktr, u_short fps ) { bt848_ptr_t bt848; struct format_params *fp; int i_flag; fp = &format_params[bktr->format_params]; bt848 = bktr->base; switch(bktr->flags & METEOR_ONLY_FIELDS_MASK) { case METEOR_ONLY_EVEN_FIELDS: bktr->flags |= METEOR_WANT_EVEN; i_flag = 1; break; case METEOR_ONLY_ODD_FIELDS: bktr->flags |= METEOR_WANT_ODD; i_flag = 1; break; default: bktr->flags |= METEOR_WANT_MASK; i_flag = 2; break; } bt848->gpio_dma_ctl = FIFO_RISC_DISABLED; bt848->int_stat = ALL_INTS_CLEARED; bktr->fps = fps; bt848->tdec = 0; if (fps < fp->frame_rate) bt848->tdec = i_flag*(fp->frame_rate - fps) & 0x3f; else bt848->tdec = 0; return; } >> It seems as if you understanding of the Bt848's Temporal Decimation process is correct. FYI, this topic is discussed on pages 41, 42, 78-83, and 103 of the Bt848A datasheet. (See attached file: L848A_A.pdf) The Bt848 provides temporal decimation in either a field or a frame basis depending on what value is loaded into the TDEC register. This register is allowed to have a value from 1 to 60 for NTSC and 1 to 50 for PAL and is located in the Local Register section, Memory Mapped location 0x08. The value inserted into this register is the number of fields or frames skipped by the Bt848 during a sequnce of 60 fields for NTSC or 50 fields for PAL. Skipped fields and frames will be considered inactive and this inactivity will de indicated by the ACTIVE pin(# 88 - GPI/O 17) when the Bt848 is in the Digital Video-In Mode or the VACTIVE and HACTIVE pins(GPI/O 17 and GPI/O 21 respectively) when the Bt848 is in the SPI input and output modes. While the Bt848 is in normal operation, these pins will indicate whether a frame has been dropped by the TDEC register setting because each signal will stay low, indicatinmg that no active video information is bing bursted onto the PCI bus. I will have to check on the behavior of the Bt848 when it drops a frame or two unintentionally because of a PCI error. I will send you this answer when I find out myself. Please visit our ftp site. New documentation is available at: ftp://bt848:pcivideo@ftp.brooktree.com/bt848/ Enjoy, Amancio To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message