+ _finished = false;
+ _pending_seek_position = position;
+ _pending_seek_accurate = accurate;
+ _summon.notify_all ();
+}
+
+void
+Butler::video (shared_ptr<PlayerVideo> video, DCPTime time)
+{
+ {
+ boost::mutex::scoped_lock lm (_mutex);
+ if (_pending_seek_position) {
+ /* Don't store any video while a seek is pending */
+ return;
+ }
+ }
+
+ _video.put (video, time);
+}
+
+void
+Butler::player_changed ()
+{
+ optional<DCPTime> t;