On Thu, Jul 01, 2004 at 02:31:56PM +0200, Kristof Pelckmans wrote:
> Hello,
> 
> Can anyone give me any tips how to setup your surfaces to do hardware
> deinterlacing for the following situation :
> 
> input:
> A yv12 buffer where even lines represent one field and uneven lines represent
> another field of an interlaced video. It is currently stored in a regular yv12
> surface allocated in system memory. This stream comes from an mpeg interlaced
> encoder for SDTV - [EMAIL PROTECTED]
> 
> output:
> A yv12 surface on the bes layer of my matrox card. The resulting output should
> be a progressive signal.
> 
> How do I have to setup the bes surface so I can blit from the buffered surface
> to the output surface in a way that the bes layer does the deinterlacing ? Do I
> have to pay attention to vsync ?
> 
> I had a look at the docs, but it is not quite clear how I have to fill the
> fields of the surface and how I enable hardware deinterlacing. Maybe I have to
> speed up to 50 fields per second ?

Sounds like your source surface has the correct format already so you can 
just blit the data to the BES surface.

You enable the deinterlacing with DLOP_DEINTERLACING. And yes you need to 
double the original frame rate because the BES only displayes one field at 
a time. You select the active field with IDirectFBSurface::SetField(). The 
deinterlacing process itself consists of shifting the bottom field 
vertically by half a line.

-- 
Ville Syrj�l�
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/


Reply via email to