This concept is used for doublebuffered graphical output:

=======================
child of VideoFrameBuffer:
is used for doublebuffering, so it includes some kind of image (data array)
and an implementation of setPixel() where a YUV/RGB frame is painted into.
Whenever the current image should be shown to the display, the 
VideoFrameBuffer::postPaitEvent() is called.

If millions of single setPixel() can be avoided by copying (reusing?) the 
frm->getAU()->payload, this should be implemented in the
 -> VideoRenderer::writeFrame()
ATTENTION: when reusing the ::writeFrame() in conjunction with setPixel(),
you get aspect ratio + scaling for free! so decide wisely!

=======================
child of VideoRenderer: (is-a input/output IO)
open() initializes a displaying label/widget or window
VideoRenderer::writeFrame() paints a received frame into the connected VideoFrameBuffer and
finally calls the (locked) VideoFrameBuffer::postPaintEvent() which should
force the final output to be displayed (eg. bitblt the image to the display)


++++++++++++++++
different implementations:
Qt: RGB only, uses a QLabel to render on, QImage for doublebuffering
X11: RGB only: setPixel() with scaling
SDL: RGB: setPixel() with scaling
     YUV: overlay==efficient, so full YUV buffer is blitted into overlay
       and scaling is done automatically by a YUV_Overlay
			 for YUV, no SDLFrameBuffer is instantiated!
