Whenever movie frame encoding needs to be in non-RGBA format (pretty
much always, e.g. H.264 uses YUV etc.), the ffmpeg code has been
sws_scale() since 2007. But that one is completely single threaded.
It can be multi-threaded by passing "threads" option to SwsContext
(in a cumbersome way), and using `sws_scale_frame` API instead. Which
however requires frame data buffers to be allocated via AVBuffer
machinery.
Rendering a 300-frame part of Sprite Fright Edit (target H.264 Medium),
on Windows Ryzen 5950X: 16.1 -> 12.0 seconds (generate_video_frame
part 4.7 -> 0.7 sec).