use VideoRenderer::handlePaintEvent() for the render logic

TODO:
1. needUpdateBackground() not virtual. use widget_holder &&
widget_hoder.rect() etc.
2. needDrawFrame() not pure, always !data.isEmpty()
3. handlePaintEvent() parameter can be empty
4. mutex scope. d2d need a larger scope