get_readers ();
}
-void
+bool
DCPDecoder::pass ()
{
if (_reel == _reels.end () || !_dcp_content->can_be_played ()) {
- return;
+ return true;
}
double const vfr = _dcp_content->active_video_frame_rate ();
}
}
- video->set_position (_next);
- audio->set_position (_dcp_content->audio->stream(), _next);
- subtitle->set_position (_next);
_next += ContentTime::from_frames (1, vfr);
if ((*_reel)->main_picture ()) {
_next = ContentTime ();
}
}
+
+ return false;
}
void
}
void
-DCPDecoder::seek (ContentTime t, bool)
+DCPDecoder::seek (ContentTime t, bool accurate)
{
+ Decoder::seek (t, accurate);
+
_reel = _reels.begin ();
_offset = 0;
get_readers ();