diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/empty.cc | 8 | ||||
| -rw-r--r-- | src/lib/empty.h | 5 | ||||
| -rw-r--r-- | src/lib/player.cc | 12 |
3 files changed, 13 insertions, 12 deletions
diff --git a/src/lib/empty.cc b/src/lib/empty.cc index 206acfdb0..71bf3aa95 100644 --- a/src/lib/empty.cc +++ b/src/lib/empty.cc @@ -36,16 +36,16 @@ using boost::dynamic_pointer_cast; using boost::function; using namespace dcpomatic; -Empty::Empty (shared_ptr<const Film> film, list<shared_ptr<Piece> > pieces, function<bool (shared_ptr<Piece>)> part) +Empty::Empty (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist, function<bool (shared_ptr<const Content>)> part) { list<DCPTimePeriod> full; - BOOST_FOREACH (shared_ptr<Piece> i, pieces) { + BOOST_FOREACH (shared_ptr<Content> i, playlist->content()) { if (part(i)) { - full.push_back (DCPTimePeriod (i->content->position(), i->content->end(film))); + full.push_back (DCPTimePeriod (i->position(), i->end(film))); } } - _periods = subtract (DCPTimePeriod(DCPTime(), film->length()), coalesce(full)); + _periods = subtract (DCPTimePeriod(DCPTime(), playlist->length(film)), coalesce(full)); if (!_periods.empty ()) { _position = _periods.front().from; diff --git a/src/lib/empty.h b/src/lib/empty.h index bd295206e..abd6fdef0 100644 --- a/src/lib/empty.h +++ b/src/lib/empty.h @@ -28,14 +28,14 @@ struct empty_test1; struct empty_test2; +struct empty_test3; struct player_subframe_test; -class Piece; class Empty { public: Empty () {} - Empty (boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Piece> > pieces, boost::function<bool (boost::shared_ptr<Piece>)> part); + Empty (boost::shared_ptr<const Film> film, boost::shared_ptr<const Playlist> playlist, boost::function<bool (boost::shared_ptr<const Content>)> part); dcpomatic::DCPTime position () const { return _position; @@ -50,6 +50,7 @@ public: private: friend struct ::empty_test1; friend struct ::empty_test2; + friend struct ::empty_test3; friend struct ::player_subframe_test; std::list<dcpomatic::DCPTimePeriod> _periods; diff --git a/src/lib/player.cc b/src/lib/player.cc index d5a558184..3202c1b85 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -125,15 +125,15 @@ Player::setup_pieces () } bool -have_video (shared_ptr<Piece> piece) +have_video (shared_ptr<const Content> content) { - return piece->decoder && piece->decoder->video; + return static_cast<bool>(content->video); } bool -have_audio (shared_ptr<Piece> piece) +have_audio (shared_ptr<const Content> content) { - return piece->decoder && piece->decoder->audio; + return static_cast<bool>(content->audio); } void @@ -237,8 +237,8 @@ Player::setup_pieces_unlocked () } } - _black = Empty (_film, _pieces, bind(&have_video, _1)); - _silent = Empty (_film, _pieces, bind(&have_audio, _1)); + _black = Empty (_film, _playlist, bind(&have_video, _1)); + _silent = Empty (_film, _playlist, bind(&have_audio, _1)); _last_video_time = DCPTime (); _last_video_eyes = EYES_BOTH; |
