summaryrefslogtreecommitdiff
path: root/src/lib/butler.h
AgeCommit message (Collapse)Author
2026-02-02Stop doing some more stuff during content drags in the timeline.Carl Hetherington
2025-05-26Remove functors for choosing pixel format output from make_image().Carl Hetherington
2025-04-16White space: butler.{cc,h}Carl Hetherington
2025-03-22Add abstraction of io_{context,service} and use it as appropriate.Carl Hetherington
2022-12-13More header trimming.Carl Hetherington
2022-10-17Remove some more unnecessary use of shared_ptr.Carl Hetherington
2022-10-14Cleanup: add header guards.Carl Hetherington
2022-08-04Cleanup: fix typo in comment.Carl Hetherington
2022-05-26Fix race between the Butler thread starting and audio (perhaps) being disabled.Carl Hetherington
This could cause Butler::audio to be called with _audio_channels = 0 and _disable_audio = false, causing an exception in AudioBuffers when remap() tried to make an AudioBuffers object with a channel count of 0.
2021-10-16Always block waiting for audio when exporting.v2.15.169Carl Hetherington
Otherwise if there is non available we'll insert silence and potentially push the audio out of sync (late). May help with #2098.
2021-10-16Use an enum instead of a bool to specify blocking/non-blocking.Carl Hetherington
2021-10-11Cleanup: use enum class.Carl Hetherington
2021-09-27Replace aligned bool with enum Alignment.Carl Hetherington
2021-09-27Setup Butler::_prepare_only_proxy on construction.Carl Hetherington
2021-09-27When the player is used in OpenGL mode, pass unscaled XYZ data through to ↵Carl Hetherington
the shader and do colourspace conversion there.
2021-05-03C++11 tidying.Carl Hetherington
2021-05-01C++11 tidying.Carl Hetherington
2021-04-29Remove use of boost::noncopyable.Carl Hetherington
2021-01-31Use enum class for Film::Property.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-12-01Changes to crop can be handled with a reset_metadata().Carl Hetherington
While playback is happening we need to do that in the butler's buffers and in the little delay inside Player. This removes the seek on every crop change, making it a lot quicker (#1758).
2020-12-01Give Butler a weak_ptr<Film>Carl Hetherington
2020-11-16Make sure we use limited ("video") range data when exporting.Carl Hetherington
Our export formats all currently use limited range but we weren't making sure data fed to the encoders was limited range. Should fix #1832.
2020-08-17Report better errors when the butler dies.Carl Hetherington
Adapted from d23f55d8cd73adda823d0a2fcabc129b8845a81 in master.
2020-07-05Improve butler error reporting during export.v2.15.88Carl Hetherington
2020-05-17Fix typo in comment.Carl Hetherington
2020-01-30Various thread cleanups.Carl Hetherington
2019-11-05Remove dubious _buffers_mutex and maintain a lock on _mutex forCarl Hetherington
the whole of ::audio. Otherwise changes to pending seeks can be mixed up with audio being put into the ringbuffer.
2019-07-24Optimise the feel of some GUI functions by doing the seek afterCarl Hetherington
many content changes in an idle handler, rather than blocking the UI update until the seek and image redisplay have finished.
2019-05-15Player::playlist_content_change will call setup_pieces() regardlessv2.15.5Carl Hetherington
of the state of frequent, so Butler::player_change must always seek regardless of the state of frequent. Otherwise setup_pieces() results in the next pass() output being at position 0, which causes problems when the audio from that output is pushed into the audio ring buffers.
2019-05-10Put Time types in dcpomatic namespace.Carl Hetherington
2019-03-07Better reporting of errors in Butler::prepare.v2.13.125Carl Hetherington
2018-12-22Fix assumption of 48kHz DCP audio in AudioRingBuffers consistency check (#1436).Carl Hetherington
2018-11-21Tidy and fix logging.Carl Hetherington
2018-11-06Do image crop/scale/window in the butler prepare threads.Carl Hetherington
2018-09-04Allow the butler to say "try again later" when get_video() is calledCarl Hetherington
while it's suspended. Then make the GUI follow that suggestion. Should
2018-08-29Basics of splitting CCAP streams into different assets.Carl Hetherington
2018-08-20Allow nested butler suspensions.Carl Hetherington
2018-08-19Replace May/Done/NotDone signal sets with one signal and extendCarl Hetherington
this treatment to anything that caused Player::setup_pieces. This should fix out-of-sequence Player emissions caused by setup_pieces being called by one thread while the butler is calling pass().
2018-08-19Suspend butler on player may-change as otherwise there's a windowCarl Hetherington
between Player::_suspended being set to false and the the butler requesting a seek, during which the butler may call pass().
2018-08-14More fixes for errors / crashes / misbehaviour with content changesCarl Hetherington
and the butler. Here we signal both before and after a change in content. Before, the player disables itself so that any pass()/seek() will be no-ops. After, the player rebuilds its pieces and the butler re-seeks to get back to where it was before the change.
2018-08-12Don't seek during timeline drags.Carl Hetherington
2018-08-05Get closed caption view data from the butler, rather than the player.Carl Hetherington
You can't introduce the butler (so that the player is ahead of time) and then ask the player what should be in the frame that is being displayed "now"; the player will already have moved on.
2018-08-04Remove unused parameter.Carl Hetherington
2018-08-04Timestamp audio emissions from butler and hence discard very lateCarl Hetherington
audio in FilmViewer. This should help with the case where lots of video frames are rapidly discarded when they are late but the corresponding audio is not, hence audio buffers get overfilled.
2018-08-02A variety of changes to improve (but not entirely fix) behaviourCarl Hetherington
when moving content (or otherwise changing the playlist) while playing. This commit refills the butler when things change in certain ways, and improves locking to cope with Player methods being called from the GUI and butler threads at the same time.
2017-12-29Add basic memory-used stuff for butler and reduce minimum audioCarl Hetherington
readahead quite a bit. This in turn reduces the maximum butler memory usage as it will keep getting audio (and hence video) until the minimum audio readahead is hit.
2017-08-14Remove believed-unnecessary player-changed handler in butler.Carl Hetherington
2017-08-14Remove Film dependency from Butler.Carl Hetherington
2017-07-26Multi-threaded decode of DCP when previewing.Carl Hetherington