#define MAXIMUM_AUDIO_READAHEAD (48000 * MAXIMUM_VIDEO_READAHEAD / 24)
/** @param pixel_format Pixel format functor that will be used when calling ::image on PlayerVideos coming out of this
- * butler. This will be used (where possible) to prepare the PlayerVideos so that calling image() on them is quick().
+ * butler. This will be used (where possible) to prepare the PlayerVideos so that calling image() on them is quick.
* @param aligned Same as above for the `aligned' flag.
* @param fast Same as above for the `fast' flag.
*/
Butler::seek (DCPTime position, bool accurate)
{
boost::mutex::scoped_lock lm (_mutex);
+ _awaiting = optional<DCPTime>();
seek_unlocked (position, accurate);
}
}
void
-Butler::prepare (weak_ptr<PlayerVideo> weak_video) const
+Butler::prepare (weak_ptr<PlayerVideo> weak_video)
+try
{
shared_ptr<PlayerVideo> video = weak_video.lock ();
/* If the weak_ptr cannot be locked the video obviously no longer requires any work */
LOG_TIMING("finish-prepare in %1", thread_id());
}
}
+catch (...)
+{
+ store_current ();
+ boost::mutex::scoped_lock lm (_mutex);
+ _died = true;
+}
void
Butler::video (shared_ptr<PlayerVideo> video, DCPTime time)