From e2cf12c4cbdad8aa54072e606d0ffe44a4c24398 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 13 Jan 2016 22:14:22 +0000 Subject: Fix incorrect fades when trim is being used. --- src/lib/video_content.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/lib') 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(); } -- cgit v1.2.3