PNGGIF::VideoSource::Stream
A live, on-demand video decoder: a running ffmpeg whose raw-RGBA frames
are pulled one at a time. Constant memory, fast first paint, re-decodes
from the start on #restart (for looping). Always #close it to reap the
subprocess. Build via Stream.open (returns nil on failure).
Class methods
Instance methods
close
Terminates and reaps the ffmpeg subprocess. Idempotent.
Uses SIGKILL, not SIGTERM: ffmpeg is usually blocked writing to a
back-filled stdout pipe between frames and can't act on a trapped
SIGTERM, which would make wait hang. SIGKILL can't be trapped.
vehicle
A 1-frame PNGGIF::PNG (first frame + true canvas dims) used as the
resampling vehicle (create_cellmap) and dimension source by the
consumer; live per-frame bitmaps come from #next_frame.