From e2cf12c4cbdad8aa54072e606d0ffe44a4c24398 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 13 Jan 2016 22:14:22 +0000 Subject: [PATCH] Fix incorrect fades when trim is being used. --- ChangeLog | 4 ++++ src/lib/video_content.cc | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a256181ad..0175c969e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-01-13 Carl Hetherington + + * Fix incorrect fades when trim is being used. + 2016-01-11 Carl Hetherington * Updated nl_NL translation from Rob van Nieuwkerk. diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 7321fc7c5..d104004f2 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -490,16 +490,18 @@ VideoContent::set_video_frame_rate (double r) signal_changed (VideoContentProperty::VIDEO_FRAME_RATE); } +/** @param f Frame index within the whole (untrimmed) content */ optional VideoContent::fade (Frame f) const { DCPOMATIC_ASSERT (f >= 0); - if (f < fade_in()) { - return double (f) / fade_in(); + Frame const ts = trim_start().frames_round(video_frame_rate()); + if ((f - ts) < fade_in()) { + return double (f - ts) / fade_in(); } - Frame fade_out_start = video_length() - fade_out(); + Frame fade_out_start = video_length() - trim_end().frames_round(video_frame_rate()) - fade_out(); if (f >= fade_out_start) { return 1 - double (f - fade_out_start) / fade_out(); } -- 2.30.2