summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-05-04 23:37:27 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-07 09:29:59 +0200
commite30651029c7d184ab7bbbd7a6f01d03c0c0ddf7f (patch)
tree5509bb4bc2f1f700aca5b7fed2cbc2a59bbcc20d
parent03ef908bc10616dc7f2b26108b87aa11bd482b5c (diff)
Move some checks from Player to Piece.
-rw-r--r--src/lib/piece.cc23
-rw-r--r--src/lib/piece.h2
-rw-r--r--src/lib/player.cc14
3 files changed, 16 insertions, 23 deletions
diff --git a/src/lib/piece.cc b/src/lib/piece.cc
index 65699a47b..7c360fbe8 100644
--- a/src/lib/piece.cc
+++ b/src/lib/piece.cc
@@ -86,7 +86,21 @@ Piece::Piece (weak_ptr<const Film> film, shared_ptr<Content> content, shared_ptr
void
Piece::video (shared_ptr<const ImageProxy> image, Frame frame, Eyes eyes, Part part)
{
- Video (PieceVideo(image, frame, content_video_to_dcp(frame), eyes, part));
+ if (!use_video()) {
+ return;
+ }
+
+ if (_frc.skip && (frame % 2) == 1) {
+ return;
+ }
+
+ auto const time = content_video_to_dcp (frame);
+
+ if (_ignore_video && _ignore_video->contains(time)) {
+ return;
+ }
+
+ Video (PieceVideo(image, frame, time, eyes, part));
}
@@ -389,13 +403,6 @@ Piece::fonts () const
}
-bool
-Piece::ignore_video_at (DCPTime time) const
-{
- return _ignore_video && _ignore_video->contains(time);
-}
-
-
DCPTimePeriod
Piece::period () const
{
diff --git a/src/lib/piece.h b/src/lib/piece.h
index 7abacbef7..e3e7ee5bb 100644
--- a/src/lib/piece.h
+++ b/src/lib/piece.h
@@ -84,8 +84,6 @@ public:
_ignore_video = period;
}
- bool ignore_video_at (dcpomatic::DCPTime time) const;
-
boost::signals2::signal<void (PieceVideo)> Video;
boost::signals2::signal<void (PieceAudio)> Audio;
boost::signals2::signal<void (PieceBitmapTextStart)> BitmapTextStart;
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 35a08629e..6261b200a 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -812,15 +812,6 @@ Player::video (weak_ptr<Piece> wp, PieceVideo video)
return;
}
- if (!piece->use_video()) {
- return;
- }
-
- auto frc = piece->frame_rate_change();
- if (frc.skip && (video.frame % 2) == 1) {
- return;
- }
-
LOG_DEBUG_PLAYER("Received video frame %1 at %2", video.frame, to_string(video.time));
/* Discard if it's before the content's period or the last accurate seek. We can't discard
@@ -831,10 +822,6 @@ Player::video (weak_ptr<Piece> wp, PieceVideo video)
return;
}
- if (piece->ignore_video_at(video.time)) {
- return;
- }
-
/* Fill gaps that we discover now that we have some video which needs to be emitted.
This is where we need to fill to.
*/
@@ -890,6 +877,7 @@ Player::video (weak_ptr<Piece> wp, PieceVideo video)
_last_video[wp] = piece->player_video (video, _video_container_size);
DCPTime t = video.time;
+ auto const frc = piece->frame_rate_change();
for (int i = 0; i < frc.repeat; ++i) {
if (t < piece->end()) {
emit_video (_last_video[wp], t);