summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/empty.cc8
-rw-r--r--src/lib/empty.h5
-rw-r--r--src/lib/player.cc12
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;