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