Fix errors when referencing trimmed DCPs (#2116).
authorCarl Hetherington <cth@carlh.net>
Tue, 2 Nov 2021 13:55:45 +0000 (14:55 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 3 Nov 2021 10:29:02 +0000 (11:29 +0100)
src/lib/player.cc

index df10ec14612f0d348cc27b70eea3d0402bbd7f39..5404dfac4bd3fb9d51b721e83669c5ff0cbc8e1a 100644 (file)
@@ -596,7 +596,7 @@ Player::get_reel_assets ()
                        Frame const reel_trim_start = min(reel_duration, max(int64_t(0), trim_start - offset_from_start));
                        Frame const reel_trim_end =   min(reel_duration, max(int64_t(0), reel_duration - (offset_from_end - trim_end)));
 
-                       auto const from = content->position() + DCPTime::from_frames(offset_from_start, ffr);
+                       auto const from = max(DCPTime(), content->position() + DCPTime::from_frames(offset_from_start, ffr) - DCPTime::from_frames(trim_start, cfr));
                        if (dcp->reference_video()) {
                                maybe_add_asset (reel_assets, reel->main_picture(), reel_trim_start, reel_trim_end, from, ffr);
                        }