DirectFB - Home of the pragmatist Roadmap


[directfb-dev] Re: [directfb-users] PyMedi CLE266 DVD player blitting pr
Mailing List archive

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

[directfb-dev] Re: [directfb-users] PyMedi CLE266 DVD player blitting problems



Quoting Dmitry Borisov:
> Guys,
> I just finished HW MPEG decoder for CLE266 chipset under PyMedia project. It
> uses pydfb wrapper to allocate vram and display the movie.
> The decoder works just fine, 100fps with no problem. But when I enable
> blitting the HW surface to the overlay it slows down to 25fps.
> Here's what I do:
>     Initialize directfb
>     Create primary surface( layer 0 )
>     Create layer 1( overlay ) with type PF_YV12
>     Create 4 Surfaces with type PF_YV12
>     When HW decoder is completed I do overlay->blit( surface[ i ] )
> So my questions are:
>   1. Is it the right way of getting HW YUV surface to be displayed ?
>   2. Is there any way to do HW blitting instead of reading VRAM on CLE266 ?

I'm not sure if the CLE266 driver implements blitting from YUV to YUV,
but it should be simple to add as, apart from the number of bytes per pixel,
the precise format doesn't matter if the chip just has to copy pixels.

The most effective way would be to not use blitting, but have the overlay
surface containing the four buffers. As each frame is decoded, the surface
would be flipped which just rotates the buffers and makes the previously
filled one visible. You shouldn't have any noticable CPU usage with this
method (<0.1%).

-- 
Best regards,
  Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

                            Convergence GmbH




Home | Main Index | Thread Index


directfb.org / Development / Old Archives