/** @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.
- * @param aligned Same as above for the `aligned' flag.
+ * @param alignment Same as above for the `alignment' value.
* @param fast Same as above for the `fast' flag.
*/
Butler::Butler (
int audio_channels,
function<AVPixelFormat (AVPixelFormat)> pixel_format,
VideoRange video_range,
- bool aligned,
+ Image::Alignment alignment,
bool fast,
bool prepare_only_proxy
)
, _disable_audio (false)
, _pixel_format (pixel_format)
, _video_range (video_range)
- , _aligned (aligned)
+ , _alignment (alignment)
, _fast (fast)
, _prepare_only_proxy (prepare_only_proxy)
{
}
-/** @param blocking true if we should block until video is available. If blocking is false
+/** @param behaviour BLOCKING if we should block until video is available. If behaviour is NON_BLOCKING
* and no video is immediately available the method will return a 0 PlayerVideo and the error AGAIN.
* @param e if non-0 this is filled with an error code (if an error occurs) or is untouched if no error occurs.
*/
pair<shared_ptr<PlayerVideo>, DCPTime>
-Butler::get_video (bool blocking, Error* e)
+Butler::get_video (Behaviour behaviour, Error* e)
{
boost::mutex::scoped_lock lm (_mutex);
auto setup_error = [this](Error* e, Error::Code fallback) {
if (e) {
if (_died) {
- e->code = Error::DIED;
+ e->code = Error::Code::DIED;
e->message = _died_message;
} else if (_finished) {
- e->code = Error::FINISHED;
+ e->code = Error::Code::FINISHED;
} else {
e->code = fallback;
}
}
};
- if (_video.empty() && (_finished || _died || (_suspended && !blocking))) {
- setup_error (e, Error::AGAIN);
+ if (_video.empty() && (_finished || _died || (_suspended && behaviour == Behaviour::NON_BLOCKING))) {
+ setup_error (e, Error::Code::AGAIN);
return make_pair(shared_ptr<PlayerVideo>(), DCPTime());
}
}
if (_video.empty()) {
- setup_error (e, Error::NONE);
+ setup_error (e, Error::Code::NONE);
return make_pair(shared_ptr<PlayerVideo>(), DCPTime());
}
/* If the weak_ptr cannot be locked the video obviously no longer requires any work */
if (video) {
LOG_TIMING("start-prepare in %1", thread_id());
- video->prepare (_pixel_format, _video_range, _aligned, _fast, _prepare_only_proxy);
+ video->prepare (_pixel_format, _video_range, _alignment, _fast, _prepare_only_proxy);
LOG_TIMING("finish-prepare in %1", thread_id());
}
}
{
switch (code)
{
- case Error::NONE:
+ case Error::Code::NONE:
return "No error registered";
- case Error::AGAIN:
+ case Error::Code::AGAIN:
return "Butler not ready";
- case Error::DIED:
+ case Error::Code::DIED:
return String::compose("Butler died (%1)", message);
- case Error::FINISHED:
+ case Error::Code::FINISHED:
return "Butler finished";
}