From d78278fd980976885f49dfe8454dbf58e8377df9 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 23 Jun 2020 23:08:39 +0200 Subject: FrameRateChange and video_use. --- src/lib/piece.cc | 7 +++++++ src/lib/piece.h | 5 +++++ src/lib/player.cc | 6 +++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/lib/piece.cc b/src/lib/piece.cc index ba5da7f78..9fcf40834 100644 --- a/src/lib/piece.cc +++ b/src/lib/piece.cc @@ -174,3 +174,10 @@ Piece::reference_audio () const shared_ptr dcp = dynamic_pointer_cast(_content[0]); return dcp && dcp->reference_audio(); } + + +bool +Piece::video_use () const +{ + return _content[0]->video && _content[0]->video->use(); +} diff --git a/src/lib/piece.h b/src/lib/piece.h index cd0d3f8fc..845b7fbdc 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -45,6 +45,11 @@ public: dcpomatic::DCPTime position () const; dcpomatic::DCPTime end (boost::shared_ptr film) const; + FrameRateChange frame_rate_change () const { + return _frc; + } + + bool video_use () const; dcpomatic::DCPTime content_video_to_dcp (Frame f) const; dcpomatic::DCPTime resampled_audio_to_dcp (boost::shared_ptr film, Frame f) const; diff --git a/src/lib/player.cc b/src/lib/player.cc index 26bcd7df8..0af9f286f 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -737,17 +737,17 @@ Player::video (weak_ptr wp, ContentVideo video) return; } - if (!piece->content->video->use()) { + if (!piece->video_use()) { return; } - FrameRateChange frc (_film, piece->content); + FrameRateChange const frc = piece->frame_rate_change(); if (frc.skip && (video.frame % 2) == 1) { return; } /* Time of the first frame we will emit */ - DCPTime const time = content_video_to_dcp (piece, video.frame); + DCPTime const time = piece->content_video_to_dcp (video.frame); LOG_DEBUG_PLAYER("Received video frame %1 at %2", video.frame, to_string(time)); /* Discard if it's before the content's period or the last accurate seek. We can't discard -- cgit v1.2.3