You *might* be able to achieve better performance if the ordered dither and rotate is moved to the transcoder, and then simply throw the frames at FBInk's
print_raw_data.
As long as the input is actually 8bpp (which ffmpeg can do just fine, IIRC), that boils down to a memcpy, so, very fast.
Alternatively, FBInk can do the dithering for you (and it's relatively cheap). It could technically do the rotation, but not in a cheap way, and not on a Kindle.
EDIT: Well, it can do 16c dithering for you. Which is aimed at quality, not speed. For videos, if you really want speed, you'd possibly want a bitonal dithering and switch to A2 waveform modes.
On some devices, the *kernel* can do that for you, though: c.f.,
https://github.com/NiLuJe/FBInk/blob...nk.h#L237-L240 &
https://github.com/NiLuJe/FBInk/blob....c#L1813-L1820
As for the rotation, an easier solution would be to cheat and rotate the framebuffer to Landscape first w/ fbdepth, that does work on a Kindle.
(c.f., FBInk's doom PoC).