Hallo all,

I am working on a enhanced Geode LX driver, and included a video layer. At the moment it is one big hack to see if it works, but now I need some directions on how to implement it properly.

The Geode LX has a overlay that can use a piece of framebuffer memory and display it on the screen while doing YUV->RGB conversion and hardware scaling.

I made a video layer in my DirectFB driver and can get a surface of that video layer, and use that. But the problem is that I want to do video, and need more than one buffer, so here is where the big hack starts (at least I think it is a hack).

I created a surface of 16*H by W and use SetSourceRectangle() to switch the part that has to be displayed. This switching can be done very fast because it is just reprogramming the start offset of the overlay. This means i have a queue of 16 video frame buffers that i can use, and display them without an extra copy. It works but that can't be the way to do it, because i have to recognize that i am requesting such a large surface and not try to actually create a 16*h by w overlay (wich actually works, and looks funny, because you get 16 small pictures of the video).

SO the questions prety much boils down how you can do N-buffering (like in double and triple buffering) for a video overlay layer.

TIA,
Erwin





_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to