Date: Tue, 11 Feb 1997 23:25:48 -0500 From: Randall Hopper <rhh@ct.picker.com> To: multimedia@freebsd.org Cc: Amancio Hasty <hasty@rah.star-gate.com> Subject: Bt848 driver & Wincast -- some success Message-ID: <19970211232548.58351@ct.picker.com>
index | next in thread | raw e-mail
Got the latest Bt848 driver linked into 2.2-ALPHA this evening and had
some success with Luigi's 8-bit TV on the new Wincast TV/dbx. I got sound
and the 320x240 image was updating at a reasonable speed, but only the even
scan lines (or frames) were updating with every refresh. The odd scan
lines (or frames) seemed to update somewhat randomly with a frequency of
1-10 seconds, giving the image a strange ghosting look to it.
I could still easily see the effect when I beefed the size up to
640x480. It was much less prominent though if I ran xmag or some program
that dogged the X server, slowing down the frame rate.
I haven't looked at the driver code yet so I don't know what all the
ioctls do, but does this:
i = METEOR_CAP_SINGLE ; /* buffer up 1 frame */
ioctl(video, METEORCAPTUR, &i)
start assembling a single "frame" into the mmap driver buffer (as the
comment suggests), or a single "image" (2 adjacent frames). I'm guessing
its the former and I think that would explain the behavior I'm seeing. If
the CAP_SINGLE submissions were just happening to coincide closely with the
2x the frame rate, I'd only be getting one frame updated most of the time.
I flipped into CONTINUOUS mode, and though that got rid of the
odd-frame ghosting, but now there was dancing noise in the image. I guess
this might be because TV's reading while the driver's writing into the
buffer.
Question: what happens when a CAP_SINGLE is sent to the driver when
the previous CAP_SINGLE is still running. Is it queued or ignored?
Gotta hang it up for this evening. If anyone has suggestions of
things I should try next to improve my "reception", please send e-mail.
I'm thinking of memcpying the data out of the mmap buffer before
processing; maybe that'll clear up some of the static in a CONTINUOUS run.
Alternatively, is there a "capture two adjacent frames" function (something
like a CAP_DOUBLE) in the bktr driver? That'd be useful. Also, is there
any asynchronous notification from the driver when a frame has been
assembled.
After trying that, I'll look at getting the 15-/24-bit TV working in
the 16-/32-bit modes my card supports. From what little I've looked at the
code, I think this is just be a matter of shuffling the RGB bits when
building the image.
Another question. Does the bktr driver support bus-mastered DMA
straight to the video card memory if it supports linear addressing? I
think you mentioned that TV doesn't use this capability now, but I wasn't
clear as to whether the device driver supported that or not.
Thanks for the driver Amancio, for the TV updates Luigi, and for the
help getting started.
Randall
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970211232548.58351>
