Let's make a video of my project and share it with the world! How hard could it be?
*Your 10+ year old laptop can't record your project at reasonable frame rate.* Alright, I have full control of the rendering, I'll integrate a video encoder into my project and encode the frames directly. Let's try libtheora, how hard could it be?
*Theora uses a different color space, and conversion rules are specified from it to RGB not the other way around, so you need to solve a set of linear equations*
I learnt how to solve a set of linear equations at school, it was a lot of fun, but alas I vowed to never do homework again. Also solving them and then hard-coding my solution would make it difficult to verify against the original specification, therefore I'll essentially duplicate the specification in code, and then write a program that would solve the equations at compile time and embed the solutions wherever the conversion is necessary.
Why is everything so hard? -_-
*Can't you just use your ~5 year old desktop instead?*
... NO!
but why are those gliders leaving trails? no those are not video artifacts(the discoloration and random red patches are), those are the ancestors!
as promised - theora color conversion spec codified
https://git.qoto.org/namark/neogol/blob/master/source/recorder.cpp#L16-33