X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fplayer.cc;h=bdfa51528deb305c4b72e09b457490012e7f50bb;hp=acde910be24936f7873b03895b59084def5e87d1;hb=bd83f1b0e1d8e7aae0af51376dbbb88d5e3f69d0;hpb=5ccb13d95f4bc29afed393588edff581b748efa7 diff --git a/src/lib/player.cc b/src/lib/player.cc index acde910be..bdfa51528 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -1054,8 +1054,12 @@ Player::seek (DCPTime time, bool accurate) BOOST_FOREACH (shared_ptr i, _pieces) { if (time < i->content->position()) { - /* Before; seek to the start of the content */ - i->decoder->seek (dcp_to_content_time (i, i->content->position()), accurate); + /* Before; seek to the start of the content. Even if this request is for an inaccurate seek + we must seek this (following) content accurately, otherwise when we come to the end of the current + content we may not start right at the beginning of the next, causing a gap (if the next content has + been trimmed to a point between keyframes, or something). + */ + i->decoder->seek (dcp_to_content_time (i, i->content->position()), true); i->done = false; } else if (i->content->position() <= time && time < i->content->end(_film)) { /* During; seek to position */