Frame Cache
Video frames kept between passes, so a video is decoded once: the faces pass saves each frame small (shortest side Side, what Smart Search's models look at), the Smart Search pass reads them back and deletes them. Decoding was most of a video's cost (~0.3 s a frame); saving and reading a small JPEG is a few ms. One folder per video; done marks a complete set, so a pass stopped mid-video doesn't leave Smart Search with half its frames.