C++11 correctness fix.
Don't break strict aliasing rules.
Safe casting and storage of videosurface pointer
Consistently use size_t over int, squelches some warnings.