summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-25 19:40:52 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-07 09:29:59 +0200
commitb005364b093cb92d07f36df384dd9c663a549993 (patch)
treec48f53cc52784f1c643a828faa83a87a0fbefd36
parent46e8c91b2ce7648e7f1b8d192e8b3d5f5255cb3c (diff)
Make Piece::ignore_video private.
-rw-r--r--src/lib/piece.cc7
-rw-r--r--src/lib/piece.h7
-rw-r--r--src/lib/player.cc4
-rw-r--r--test/overlap_video_test.cc4
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<dcpomatic::DCPTime> decoder_before(std::shared_ptr<const Film> film, boost::optional<dcpomatic::DCPTime> time);
std::vector<dcpomatic::FontData> fonts () const;
- boost::optional<dcpomatic::DCPTimePeriod> ignore_video;
+ void set_ignore_video (boost::optional<dcpomatic::DCPTimePeriod> 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> _decoder;
FrameRateChange _frc;
bool _done = false;
+ boost::optional<dcpomatic::DCPTimePeriod> _ignore_video;
std::map<AudioStreamPtr, dcpomatic::DCPTime> _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<Piece> 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());