std::vector's reserve func was somehow optimised into providing non-stack data which emplace_back wasn't playing nice with!? What even is the point of these optimisations if a very basic call dies like that
- This fixes a video recording crash that manifested
randomly, but more often when repeatedly quickly
starting and stopping a recording
- The first video frame had uninitialized memory that left
it up to chance whether an internal buffer was correctly
sized (SIGSEGV)
Content of commit was originally written by Sal, but as a monolithic commit. The author of this commit is chunking it up for easier review.
Simple inversion on the face of things, but with a long tail of consequences, including 19 changed files.
Forced uppercase has been applied in a handful of locations where it was aesthetically imperative. Most menus will follow in another commit, so that that may be reverted if we change the default menu font.
- real time monitoring of duration and esimated file size
- estimated frame rate of final video (encoder speed)
- print brief details of audio and video tracks upon
starting recording
- print exact file size and duration once recording is
finished
This is only necessary since HWR2's framebuffer is window
size (monitor resolution in fullscreen mode).
Once the framebuffer is changed to be native game
resolution, this commit should be reverted and a new
interface should be implemented to directly copy the
framebuffer's pixels into video frames.