Fixed
- EOF freezes are now caught. freezedetect never prints
freeze_durationwhen a freeze runs to end of file (the classic stalled-generator render — last frame cloned to EOF).freeze_detectnow pairs the orphanfreeze_startwith the probed duration and emits a reconstructedfailevent:frozen frames 5.04s at t=2.96s (ran to end of file).engine.pywiresprobe_result.duration_sthrough. - Mid-stream freeze pairing fixed too. freezedetect emits each event as separate single-key lines (
freeze_start/freeze_duration/freeze_end), so the old same-record parser dropped real events. Now a proper pairing state machine. - No false positives: clean clips still produce zero freeze issues (regression-tested).
Tests
40 passed (was 37): new frozen_tail_clip EOF regression, clean-clip guard, mid-stream pairing test.