summaryrefslogtreecommitdiff
path: root/src/lib/butler.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-05-03 11:17:34 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-03 20:18:04 +0200
commit689fa55d1529ad88449ca464e9107c4dcc54d1cb (patch)
treeedd1264941263f2fa25a98d61f98c87876c5b667 /src/lib/butler.cc
parent0aabe4060ea4bad7c7caac633aef0737fccff8c2 (diff)
C++11 tidying.
Diffstat (limited to 'src/lib/butler.cc')
-rw-r--r--src/lib/butler.cc26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc
index b2128efdb..5a8e646aa 100644
--- a/src/lib/butler.cc
+++ b/src/lib/butler.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -18,6 +18,7 @@
*/
+
#include "butler.h"
#include "player.h"
#include "util.h"
@@ -43,6 +44,7 @@ using namespace dcpomatic;
using namespace boost::placeholders;
#endif
+
/** Minimum video readahead in frames */
#define MINIMUM_VIDEO_READAHEAD 10
/** Maximum video readahead in frames; should never be exceeded (by much) unless there are bugs in Player */
@@ -52,6 +54,7 @@ using namespace boost::placeholders;
/** Maximum audio readahead in frames; should never be exceeded (by much) unless there are bugs in Player */
#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.
* @param aligned Same as above for the `aligned' flag.
@@ -69,7 +72,7 @@ Butler::Butler (
)
: _film (film)
, _player (player)
- , _prepare_work (new boost::asio::io_service::work (_prepare_service))
+ , _prepare_work (new boost::asio::io_service::work(_prepare_service))
, _pending_seek_accurate (false)
, _suspended (0)
, _finished (false)
@@ -106,6 +109,7 @@ Butler::Butler (
}
}
+
Butler::~Butler ()
{
boost::this_thread::disable_interruption dis;
@@ -175,6 +179,7 @@ Butler::should_run () const
return (_video.size() < MAXIMUM_VIDEO_READAHEAD) && (_audio.size() < MAXIMUM_AUDIO_READAHEAD);
}
+
void
Butler::thread ()
try
@@ -230,6 +235,7 @@ try
_arrived.notify_all ();
}
+
/** @param blocking true if we should block until video is available. If blocking is false
* 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.
@@ -272,6 +278,7 @@ Butler::get_video (bool blocking, Error* e)
return r;
}
+
optional<TextRingBuffers::Data>
Butler::get_closed_caption ()
{
@@ -279,6 +286,7 @@ Butler::get_closed_caption ()
return _closed_caption.get ();
}
+
void
Butler::seek (DCPTime position, bool accurate)
{
@@ -287,6 +295,7 @@ Butler::seek (DCPTime position, bool accurate)
seek_unlocked (position, accurate);
}
+
void
Butler::seek_unlocked (DCPTime position, bool accurate)
{
@@ -305,6 +314,7 @@ Butler::seek_unlocked (DCPTime position, bool accurate)
_summon.notify_all ();
}
+
void
Butler::prepare (weak_ptr<PlayerVideo> weak_video)
try
@@ -331,6 +341,7 @@ catch (...)
_died = true;
}
+
void
Butler::video (shared_ptr<PlayerVideo> video, DCPTime time)
{
@@ -341,11 +352,12 @@ Butler::video (shared_ptr<PlayerVideo> video, DCPTime time)
return;
}
- _prepare_service.post (bind (&Butler::prepare, this, weak_ptr<PlayerVideo>(video)));
+ _prepare_service.post (bind(&Butler::prepare, this, weak_ptr<PlayerVideo>(video)));
_video.put (video, time);
}
+
void
Butler::audio (shared_ptr<AudioBuffers> audio, DCPTime time, int frame_rate)
{
@@ -355,9 +367,10 @@ Butler::audio (shared_ptr<AudioBuffers> audio, DCPTime time, int frame_rate)
return;
}
- _audio.put (remap (audio, _audio_channels, _audio_mapping), time, frame_rate);
+ _audio.put (remap(audio, _audio_channels, _audio_mapping), time, frame_rate);
}
+
/** Try to get `frames' frames of audio and copy it into `out'. Silence
* will be filled if no audio is available.
* @return time of this audio, or unset if there was a buffer underrun.
@@ -370,6 +383,7 @@ Butler::get_audio (float* out, Frame frames)
return t;
}
+
void
Butler::disable_audio ()
{
@@ -377,6 +391,7 @@ Butler::disable_audio ()
_disable_audio = true;
}
+
pair<size_t, string>
Butler::memory_used () const
{
@@ -384,6 +399,7 @@ Butler::memory_used () const
return _video.memory_used();
}
+
void
Butler::player_change (ChangeType type, int property)
{
@@ -430,6 +446,7 @@ Butler::player_change (ChangeType type, int property)
_summon.notify_all ();
}
+
void
Butler::text (PlayerText pt, TextType type, optional<DCPTextTrack> track, DCPTimePeriod period)
{
@@ -442,6 +459,7 @@ Butler::text (PlayerText pt, TextType type, optional<DCPTextTrack> track, DCPTim
_closed_caption.put (pt, *track, period);
}
+
string
Butler::Error::summary () const
{