fn gif_frames(source: Cursor<&[u8]>, budget: u64) -> Result<(Frames<'_>, u64)>
Builds a bounded GIF frame iterator.
The canvas is checked before limits are installed or the decoder advances.