Set the viewport properly on video frame draw.

Fixes #3771, video frames being drawn at the wrong size at non-1x.
Update fbos even if they're not the display.

But only when coming from a video or other safe source, to ensure we don't
hurt speed.  Although, might be interesting to do it always?

With the previous commit, fixes #4273.
Merge pull request #4321 from unknownbrackets/fbo-minor

Fix some video -> framebuffer issues