summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/player.cc')
-rw-r--r--src/lib/player.cc20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 5951e179d..91d429708 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -598,22 +598,10 @@ Player::pass ()
optional<DCPTime> earliest_time;
for (auto i: _pieces) {
- if (i->done) {
- continue;
- }
-
- auto const t = i->decoder_position ();
- if (t > i->end(_film)) {
- i->done = true;
- } else {
-
- /* Given two choices at the same time, pick the one with texts so we see it before
- the video.
- */
- if (!earliest_time || t < *earliest_time || (t == *earliest_time && i->has_text())) {
- earliest_time = t;
- earliest_content = i;
- }
+ auto time = i->decoder_before(_film, earliest_time);
+ if (time) {
+ earliest_time = *time;
+ earliest_content = i;
}
}