1.7.0 — 2026-11-02
Added
- The public transcoder bin forwards one
{:transcoder_exited, details}notification per observed FFmpeg exit. Details include the decoded exit reason and whether input EOS had reached the FFmpeg filter when it observed the exit. - Lifecycle documentation distinguishes process exit from downstream completion and leaves recovery and drain deadlines with the parent application.
Fixed
- Decode erlexec wait statuses correctly for nonzero exits and signals.
- Drain subtitle readers before emitting output EOS, including when FFmpeg fails before opening its subtitle FIFO.
- Isolate subtitle FIFOs between concurrent runs and clean up their reader process groups and FIFOs on normal completion or graph teardown.
- Avoid duplicate output EOS when input ends after FFmpeg has already exited.
- Avoid crashing while logging a dropped binary buffer after FFmpeg exits.
Output EOS remains available after normal and abnormal FFmpeg exits. The bin does not restart FFmpeg internally. Internal reader/element faults still propagate through OTP, and exit notifications are not guaranteed during bin teardown/crash. Consumers must tolerate either arrival order for the notification and output EOS.
Development
- Pin the FFmpeg version and check required test codecs before starting pipelines.
- Shorten the video fixture and forced-exit test grace period, retain failure diagnostics without passing-test log noise, and verify SCTE cue contents/timing.
- Add lifecycle, concurrent-subtitle, late-reader-output and resource-cleanup regressions while retaining damaged-final-frame EOF tolerance.
1.6.2 — 2026-10-30
Published as a Git tag; not present in the Hex registry. Included in 1.7.0.
- Monitor the erlexec process from ResourceGuard cleanup so exit is observed in the cleanup task, with a six-second stop timeout and seven-second guard timeout covering FFmpeg's five-second termination grace period.