From b005364b093cb92d07f36df384dd9c663a549993 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 25 Apr 2021 19:40:52 +0200 Subject: Make Piece::ignore_video private. --- src/lib/piece.cc | 7 +++++++ src/lib/piece.h | 7 ++++++- src/lib/player.cc | 4 ++-- test/overlap_video_test.cc | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/lib/piece.cc b/src/lib/piece.cc index 454608b82..c0d60a89c 100644 --- a/src/lib/piece.cc +++ b/src/lib/piece.cc @@ -262,3 +262,10 @@ Piece::fonts () const return _decoder->fonts(); } + +bool +Piece::ignore_video_at (DCPTime time) const +{ + return _ignore_video && _ignore_video->contains(time); +} + diff --git a/src/lib/piece.h b/src/lib/piece.h index e25ce7f2f..cac059b80 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -75,7 +75,11 @@ public: boost::optional decoder_before(std::shared_ptr film, boost::optional time); std::vector fonts () const; - boost::optional ignore_video; + void set_ignore_video (boost::optional period) { + _ignore_video = period; + } + + bool ignore_video_at (dcpomatic::DCPTime time) const; private: friend struct overlap_video_test1; @@ -85,6 +89,7 @@ private: std::shared_ptr _decoder; FrameRateChange _frc; bool _done = false; + boost::optional _ignore_video; std::map _stream_last_push_end; }; diff --git a/src/lib/player.cc b/src/lib/player.cc index 4f81f51f3..acf0e0e61 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -266,7 +266,7 @@ Player::setup_pieces_unlocked () ++j; for (; j != _pieces.end(); ++j) { if ((*j)->use_video()) { - (*i)->ignore_video = DCPTimePeriod((*j)->position(), (*j)->end(_film)).overlap(period); + (*i)->set_ignore_video (DCPTimePeriod((*j)->position(), (*j)->end(_film)).overlap(period)); } } } @@ -795,7 +795,7 @@ Player::video (weak_ptr wp, ContentVideo video) return; } - if (piece->ignore_video && piece->ignore_video->contains(time)) { + if (piece->ignore_video_at(time)) { return; } diff --git a/test/overlap_video_test.cc b/test/overlap_video_test.cc index 9402821c4..3516e8a67 100644 --- a/test/overlap_video_test.cc +++ b/test/overlap_video_test.cc @@ -62,8 +62,8 @@ BOOST_AUTO_TEST_CASE (overlap_video_test1) BOOST_REQUIRE_EQUAL (pieces.size(), 2U); BOOST_CHECK_EQUAL (pieces.front()->_content, A); BOOST_CHECK_EQUAL (pieces.back()->_content, B); - BOOST_CHECK (pieces.front()->ignore_video); - BOOST_CHECK (pieces.front()->ignore_video.get() == dcpomatic::DCPTimePeriod(dcpomatic::DCPTime::from_seconds(1), dcpomatic::DCPTime::from_seconds(1) + B->length_after_trim(film))); + BOOST_CHECK (pieces.front()->_ignore_video); + BOOST_CHECK (pieces.front()->_ignore_video.get() == dcpomatic::DCPTimePeriod(dcpomatic::DCPTime::from_seconds(1), dcpomatic::DCPTime::from_seconds(1) + B->length_after_trim(film))); BOOST_CHECK (player->_black.done()); -- cgit v1.2.3