From e1afd317dc2660feb121eb1b2ad298c3f3a5b06b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 25 Apr 2021 21:40:14 +0200 Subject: Add Piece::period(). --- src/lib/piece.cc | 7 +++++++ src/lib/piece.h | 1 + src/lib/player.cc | 7 ++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/piece.cc b/src/lib/piece.cc index c0d60a89c..0dbb7173c 100644 --- a/src/lib/piece.cc +++ b/src/lib/piece.cc @@ -269,3 +269,10 @@ Piece::ignore_video_at (DCPTime time) const return _ignore_video && _ignore_video->contains(time); } + +DCPTimePeriod +Piece::period (shared_ptr film) const +{ + return DCPTimePeriod(position(), end(film)); +} + diff --git a/src/lib/piece.h b/src/lib/piece.h index cac059b80..f242ad6bf 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -62,6 +62,7 @@ public: dcpomatic::DCPTime position () const; dcpomatic::DCPTime end (std::shared_ptr film) const; + dcpomatic::DCPTimePeriod period (std::shared_ptr film) const; std::shared_ptr player_video (ContentVideo video, std::shared_ptr film, dcp::Size container_size) const; diff --git a/src/lib/player.cc b/src/lib/player.cc index acf0e0e61..934821449 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -261,12 +261,9 @@ Player::setup_pieces_unlocked () for (auto i = _pieces.begin(); i != _pieces.end(); ++i) { if ((*i)->use_video() && (*i)->video_frame_type() != VideoFrameType::THREE_D_LEFT && (*i)->video_frame_type() != VideoFrameType::THREE_D_RIGHT) { /* Look for content later in the content list with in-use video that overlaps this */ - auto period = DCPTimePeriod((*i)->position(), (*i)->end(_film)); - auto j = i; - ++j; - for (; j != _pieces.end(); ++j) { + for (auto j = std::next(i); j != _pieces.end(); ++j) { if ((*j)->use_video()) { - (*i)->set_ignore_video (DCPTimePeriod((*j)->position(), (*j)->end(_film)).overlap(period)); + (*i)->set_ignore_video ((*j)->period(_film).overlap((*i)->period(_film))); } } } -- cgit v1.2.3