Files
Agapenor fdfb6f2182 codecs: an MP4 edit rounded to the movie timescale keeps the last frame (#3994)
* codecs: an MP4 edit rounded to the movie timescale keeps the last frame

Edit durations are whole movie-timescale units (milliseconds in ffmpeg,
x264 and FilmCraft's own exports), so a clip whose length is not a whole
number of milliseconds imported one frame short: 320 frames at 24 fps
(13.3333 s, written as 13 333) read as 319. When the last edit plays the
media to the end of its last picture (within one unit), the clip now lasts
exactly that long.

* codecs: an edit exactly one movie-timescale unit short of the media is a trim

Rounding to the movie timescale is always less than one unit off, so a
difference of exactly one unit (a one-frame trim when the movie and track
timescales are equal) keeps the edit's own length.

* codecs: compare the edit with the media exactly, and never across a whole picture

The comparison now runs in the two timescales themselves (Tick flooring
could put a one-unit trim at 23/23 under the bound), and a difference of a
whole last picture or more is a trim even when a coarse movie unit (1/24 s
against 1/30 s pictures) is longer than that.
2026-11-03 00:02:45 -05:00
..