summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-10-15 22:26:47 +0200
committerCarl Hetherington <cth@carlh.net>2021-10-16 10:12:09 +0200
commit0e896f9f37db001f34c876ed5fc50e874f96ae09 (patch)
tree29e97f6e86204885fa1a1e55f2726e878313296c /src/lib
parentb5d3e588919ba89e4dca9cf302b3b29cda5f136c (diff)
Use an enum instead of a bool to specify blocking/non-blocking.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/butler.cc6
-rw-r--r--src/lib/butler.h7
-rw-r--r--src/lib/ffmpeg_encoder.cc2
3 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc
index 6f7349b5f..f19e1e080 100644
--- a/src/lib/butler.cc
+++ b/src/lib/butler.cc
@@ -238,12 +238,12 @@ try
}
-/** @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);
@@ -260,7 +260,7 @@ Butler::get_video (bool blocking, Error* e)
}
};
- if (_video.empty() && (_finished || _died || (_suspended && !blocking))) {
+ if (_video.empty() && (_finished || _died || (_suspended && behaviour == Behaviour::NON_BLOCKING))) {
setup_error (e, Error::Code::AGAIN);
return make_pair(shared_ptr<PlayerVideo>(), DCPTime());
}
diff --git a/src/lib/butler.h b/src/lib/butler.h
index 498af8d86..529b7383d 100644
--- a/src/lib/butler.h
+++ b/src/lib/butler.h
@@ -72,7 +72,12 @@ public:
std::string summary () const;
};
- std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get_video (bool blocking, Error* e = 0);
+ enum class Behaviour {
+ BLOCKING,
+ NON_BLOCKING
+ };
+
+ std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get_video (Behaviour behaviour, Error* e = nullptr);
boost::optional<dcpomatic::DCPTime> get_audio (float* out, Frame frames);
boost::optional<TextRingBuffers::Data> get_closed_caption ();
diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc
index 5db3e31a6..e1081f518 100644
--- a/src/lib/ffmpeg_encoder.cc
+++ b/src/lib/ffmpeg_encoder.cc
@@ -176,7 +176,7 @@ FFmpegEncoder::go ()
for (int j = 0; j < gets_per_frame; ++j) {
Butler::Error e;
- auto v = _butler->get_video (true, &e);
+ auto v = _butler->get_video (Butler::Behaviour::BLOCKING, &e);
_butler->rethrow ();
if (v.first) {
auto fe = encoder->get (v.first->eyes());