Re: [GnomeMeeting-devel-list] Full Screen Mode



Stefan Brüns wrote:
>>-----Original Message-----
>>From: gnomemeeting-devel-list-bounces gnome org 
>>[mailto:gnomemeeting-devel-list-bounces gnome org] On Behalf 
>>Of Dan Sandberg
>>Sent: Wednesday, 7 June 2006 6:46 AM
>>To: GnomeMeeting development mailing list
>>Subject: Re: [GnomeMeeting-devel-list] Full Screen Mode
>>
>>I could be wrong, but I believe that video overlay moves the 
>>data direct 
>>>from a capture card to the video card, bypassing the CPU.  
>>Since we're 
>>trying to display images that come from over the network, 
>>there's no way 
>>to bypass the CPU.  And doing a nice looking resize from 176x144 to 
>>640x480 is quite slow.  Then you have to copy the whole 
>>640x480 image to 
>>the display card, which is slow.  With OpenGL you just copy 
>>the 176x144 
>>image to the video card, and have it do the resize.
> 
> 
> Just to clarify some things:
> 
> Video overlay over XV support scaling in hardware, and colorspace
> transforms.

are You sure? ive some display apps here which can switch between XV 
and "real overlay". kvdr, tvtime, xawtv...
XV can use significant high cpu load in my experience here...

> 
> Unfortunately, most graphic cards support only one overlay at a time.

not sure about this, too. all the chips i had since ati mach64 supported 
at least 2 overlays at a time. kvdr supports even up to 4 overlays(?) 
on modern cards respectively. http://www.s.netic.de/gfiala/ 

> In
> case you only have a single video, this is fine, but as soon as you have
> multiple (local/remote, maybe conference anytime in the future), you have to
> do the compositing before uploading the image to the card. In case of
> Picture in Picture, this means that you 
> 
> a) Scale the to be small video down, compose it into the large one, and
> upload the composed image. Drawback: Also the small image may end up as
> large as an unscaled CIF image, it will have a lower resolution, due to the
> downscaling.
> 
> or
> b) Scale the to be large image up, and compose the small image into it. Also
> the small image will have its full resolution (it may be a CIF (352x288)
> image on a 1024x768 or larger screen), the upscaling of the large image adds
> a lot of burden to the CPU and memory transfers.
> 
> On the other hand, if you use OpenGL textures, you have all the benefits:
> - You can upload every video to a different texture, every video ends up on
> the screen with all the available resolution, all the scaling is done on the
> GPU (which is very efficient for this).
> - Most cards support YUV colorspaces for textures, so color transform can be
> done on the card.
> - As the different videos stream end up on different textures, you may have
> the local video with full 25fps framerate, and the remote with something
> like 10fps.
> - Superimposing any text (Chat, callers name, new incoming call ...) comes
> down to putting the text into just another texture. This may be easily alpha
> blended, with full screen resolution (if you superimpose text on the video
> directly, you can only use the videos resolution, and edges may look really
> strange due to the UV subsampling).
> - You may due almost arbitrary transforms on the video, without burdening
> the CPU (have a look at the Conference feature of iChat AV to see what I
> mean).
> 
> Greetings,
> 

is there no standard "network video class" for the application layer somewhere?

> Stefan

tom



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]