List:       linux-video
Subject:    [video4linux] BeOS BeTV is the object of my admiration
From:       "Jeffrey W. Baker" <jwb () tamu ! edu>
Date:       1998-10-20 23:33:33

If anyone needs a goal for how video4linux should operate, I respectfully refer
them to the BeOS and BeTV.  BeTV is a TV program for Bt8x8 tuner cards.  This
application is 100% perfect.  Dragging the window causes no flicker whatever,
and the TV continues to play at full frame.  The TV only displays on the desktop
you start it on.  The app requires no CPU at all.  Basically, it is perfect.

I know the reality for BeOS is a lot different than that for Linux, but it might
be well worth looking into this driver.  The applications are distributed as
source and the driver is free (beer, not speech), so it may be possible to pry
the driver source away from the author, too.  The homepage for BeTV is
http://www.sakoman.com.

Some info about this driver.  Sakoman gave a presentation at the May BeDevCon. 
The transcript is available at
http://www.be.com/developers/may_dev_conf/transcripts/videoandaudio/index.html. 
The most interesting thing here is that he says the Bt848 driver doesn't use
hardware overlay.  A discussion of the capture program is available at
http://www.be.com/aboutbe/benewsletter/Issue93.html#Insight.  Lots of articles,
including sample driver code, can be found by searching the Be Developer
Newsletter and the BeDevList mailing list.

Jeffrey
-- 
Jeffrey William Baker 
jwb@tamu.edu
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    Re: [video4linux] BeOS BeTV is the object of my admiration
From:       Alan Cox <alan () cymru ! net>
Date:       1998-10-20 23:44:33

> I know the reality for BeOS is a lot different than that for Linux, but it might
> be well worth looking into this driver.  The applications are distributed as
> source and the driver is free (beer, not speech), so it may be possible to pry
> the driver source away from the author, too.  The homepage for BeTV is
> http://www.sakoman.com.

The reality is the same. You need the right things from the windowing system
This is in hand. Once an X video extension is in the new Xfree and with
the public you'll have the same performance in Linux

I'm looking forward to this stuff big time. 

Alan
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    Re: [video4linux] BeOS BeTV is the object of my admiration
From:       Erik Walthinsen <omega () cse ! ogi ! edu>
Date:       1998-10-21 5:42:59

On Tue, 20 Oct 1998, Jeffrey W. Baker wrote:

> The most interesting thing here is that he says the Bt848 driver doesn't
> use hardware overlay.

He's right.  It uses what I'll call 'software overlay'.  Hardware overlay
as I understand it works as follows: video card output goes to video
capture card passthrough input, passthrough output goes to monitor.  The
capture card then simply pastes the preview window over the VGA signal as
it passes through the card.

'Software overlay' as done by the bt8x8 is accomplished by having the DMA
controller (a RISC engine) put pixels directly onto linear video memory.
Since the DMA core is programmed by the driver and reads from a pixel
FIFO, you simply grab the pixels and send them to base+((y*width)+x)*bpp/8
with appropriate wrapping...

Obviously this has the advantage of operating independently of the
processor and related X operations, going directly to the video buffer and
possibly avoiding funky artifacts caused by monitor sync frequencies.  On
the other hand, since X is clueless of this intrusion, it makes doing
backing-store for areas obliterated by it a bit more difficult.  If you
drag the video window while it's spewing, you're likely to end up in a
situation where the capture card is still spewing bits to the old window
location that X has 'long since' given up tracking for that window, and
you have less-than-random noise in your framebuffer.

It'll be interesting to see what XFree86 4.0 comes up with...

         Erik Walthinsen <omega@cse.ogi.edu> - Staff Programmer @ OGI
        Quasar project - http://www.cse.ogi.edu/DISC/projects/quasar/
        __
       /  \             SEUL: Simple End-User Linux - http://www.seul.org/
      |    | M E G A           Helping Linux become THE choice
      _\  /_                          for the home or office user

------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    Re: [video4linux] BeOS BeTV is the object of my admiration
From:       Ralph Metzler <rjkm () thp ! uni-koeln ! de>
Date:       1998-10-21 12:23:19

Jeffrey W. Baker writes:
 > If anyone needs a goal for how video4linux should operate, I respectfully refer
 > them to the BeOS and BeTV.  BeTV is a TV program for Bt8x8 tuner cards.  This
 > application is 100% perfect.  Dragging the window causes no flicker whatever,
 > and the TV continues to play at full frame.  The TV only displays on the desktop


The flickering and artifacts can only be fixed by using the Xv extension of
the next Xfree.
Otherwise it is impossible for the user application to synchronize to other
activities by the X server.
The quality of playback at full frame while moving (with opaque moving turned
on of course) depends on which windows manager you use.
With some it works fine.

 > The TV only displays on the desktop you start it on.

Where else does the display appear for you???

 > The app requires no CPU at all.  Basically, it is perfect.
 > 
 > I know the reality for BeOS is a lot different than that for Linux, but it might
 > be well worth looking into this driver.  The applications are distributed as
 > source and the driver is free (beer, not speech), so it may be possible to pry
 > the driver source away from the author, too.  The homepage for BeTV is
 > http://www.sakoman.com.
 > 
 > Some info about this driver.  Sakoman gave a presentation at the May BeDevCon. 
 > The transcript is available at
 > http://www.be.com/developers/may_dev_conf/transcripts/videoandaudio/index.html. 
 > The most interesting thing here is that he says the Bt848 driver doesn't use
 > hardware overlay.  A discussion of the capture program is available at

Hardware overlay would be having different frame buffers for the desktop
and the picture and the video hardware doing the mixing in real time.
This can only be done if the video card driver supports it.
I don't think any of the XFree drivers do?!
Also not all video cards can do this. 
But it has some nice advantages.
The overlay picture is normally expected to be in YUV format and is converted
by the video hardware during the overlay process in realtime.
So, you get the full color resolution independent of the color depth of the
desktop.

Bttv (like the BeTV driver it seems) write directly INTO the frame buffer.
In the case of bttv the X server does not know anything about this.
It looks like BeOS already has the kind of "DirectX" support which Xv will
provide.

Ralph
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    Re: [video4linux] BeOS BeTV is the object of my admiration
From:       "Jeffrey W. Baker" <jwb () tamu ! edu>
Date:       1998-10-21 13:57:55

Ralph Metzler wrote:
> 
> Jeffrey W. Baker writes:
>  > If anyone needs a goal for how video4linux should operate, I respectfully refer
>  > them to the BeOS and BeTV.  BeTV is a TV program for Bt8x8 tuner cards.  This
>  > application is 100% perfect.  Dragging the window causes no flicker whatever,
>  > and the TV continues to play at full frame.  The TV only displays on the desktop
> 
> The flickering and artifacts can only be fixed by using the Xv extension of
> the next Xfree.
> Otherwise it is impossible for the user application to synchronize to other
> activities by the X server.
> The quality of playback at full frame while moving (with opaque moving turned
> on of course) depends on which windows manager you use.
> With some it works fine.
> 
>  > The TV only displays on the desktop you start it on.
> 
> Where else does the display appear for you???

The TV display appears on all virtual screens for me.  The window decorations
appear in only the screen that I start it in, but the TV is shown everywhere. 
In addition, I cannot put any window in front of the TV on any of the screens
except the screen where I start xawtv.  This only happens using overlay mode. 
In grabdisplay mode, it works as expected.

My window manager is Window Maker.  Maybe I will try this with fvwm later. 

> Bttv (like the BeTV driver it seems) write directly INTO the frame buffer.
> In the case of bttv the X server does not know anything about this.
> It looks like BeOS already has the kind of "DirectX" support which Xv will
> provide.

Yes, it is handled by the BDirectWindow class.  If the video extensions for X
are going to provide this sort of functionality, then I am pretty geeked about
them.

Thanks for all the useful info.  BTW, it seems that the grabdisplay mode of
xawtv behaves in the desired fashion, except that it gobbles 1/2 to 3/4 of my
CPU.  Sizing/dragging/clipping the window produces no artifacts in grabdisplay
mode.

Cheers,
Jeffrey
-- 
Jeffrey William Baker 
jwb@tamu.edu
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] Re: BeOS BeTV is the object of my admiration
From:       Derek Fawcus <derek () spider ! com>
Date:       1998-10-21 10:42:52

On Tue, Oct 20, 1998 at 10:42:59PM -0700, Erik Walthinsen wrote:
> On Tue, 20 Oct 1998, Jeffrey W. Baker wrote:
> 
> > The most interesting thing here is that he says the Bt848 driver doesn't
> > use hardware overlay.
> 
> He's right.  It uses what I'll call 'software overlay'.  Hardware overlay
> as I understand it works as follows: video card output goes to video
> capture card passthrough input, passthrough output goes to monitor.  The
> capture card then simply pastes the preview window over the VGA signal as
> it passes through the card.
> 
> 'Software overlay' as done by the bt8x8 is accomplished by having the DMA
> controller (a RISC engine) put pixels directly onto linear video memory.
> Since the DMA core is programmed by the driver and reads from a pixel
> FIFO, you simply grab the pixels and send them to base+((y*width)+x)*bpp/8
> with appropriate wrapping...

  There is a sort of mixed option that should be doable with some card
combinations.  One has the bt8x8 transfer into an off screen area of the
frame buffer,  and then use the graphic chip's video overlay capability.

  In this case,  moving the overlay window will simply be a case of
reprogramming the display position,  and should not cause any funny
effect.

DF
-- 
Derek Fawcus                                                    derek@spider.com
Spider Software Ltd.                                        +44 (0) 131 475 7034
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.