Skip to content

v0.14.3 — frame rate was wrong by 2x on mixed-format projects

Choose a tag to compare

@DareDev256 DareDev256 released this 04 Aug 09:52

Second bug found dogfooding the same real music video.

A 3840x2160 timeline at 23.98 fps, in a project holding one 25p drone clip, parsed as 50.0 fps. The parser overwrote its frame rate from every <format> in resources, so whichever came last in the file won — it never resolved the sequence's own format attribute.

The wrong header was the visible symptom. The real problem is downstream: Timecode.frame_rate drives total_frames and to_smpte(), so every seconds-to-frames conversion was off by that factor.

164 seconds  ->  8200 frames   (wrong, at 50.0)
164 seconds  ->  3932 frames   (right, at 23.976)

Anything placing a cut or a marker on a specific frame was computing against a rate the timeline never had. Snapping a cut to a beat would have landed on the wrong frame.

The sequence's format is now resolved to its <format> element and that rate wins, applied before any Timecode is constructed. An unresolvable format falls back to the first declared, which is conventionally the sequence's own.

Closes #15.

Full Changelog: v0.14.2...v0.14.3