From 48841aa4a4aa4704e1e054b294bac23996be6dd0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 20 May 2020 20:20:47 +0200 Subject: Round the length of video-containing content to the nearest frame. It seems reasonable, and is in the spirit of how positions are rounded to frame boundaries. It also fixes problems with unnecessary frames of black being created at the end of trimmed files, where there can be rounding-error-based confusion about where the content stops and the black begins. --- src/lib/content.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/content.cc b/src/lib/content.cc index 2593c01df..4242477d4 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -303,7 +303,11 @@ Content::technical_summary () const DCPTime Content::length_after_trim (shared_ptr film) const { - return max(DCPTime(), full_length(film) - DCPTime(trim_start() + trim_end(), film->active_frame_rate_change(position()))).round(film->video_frame_rate()); + DCPTime length = max(DCPTime(), full_length(film) - DCPTime(trim_start() + trim_end(), film->active_frame_rate_change(position()))); + if (video) { + length = length.round(film->video_frame_rate()); + } + return length; } /** @return string which changes when something about this content changes which affects -- cgit v1.2.3