| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-04-20 | Comment tweaks. | Carl Hetherington | |
| 2019-04-19 | Hopefully better errors on large video/audio disagreements. | Carl Hetherington | |
| 2019-03-26 | Unset _awaiting on a regular seek. This fixes bad behaviour in the sequence: | Carl Hetherington | |
| - some player_change; _awaiting is set - regular seek occurs (perhaps to a time much earlier than _awaiting) - another player_change occurs; player_change handler wrongly seeks back to _awaiting May help with #1505. | |||
| 2019-03-07 | Better reporting of errors in Butler::prepare.v2.13.125 | Carl Hetherington | |
| 2019-01-06 | Fix comment typo. | Carl Hetherington | |
| 2018-12-22 | Fix assumption of 48kHz DCP audio in AudioRingBuffers consistency check (#1436). | Carl Hetherington | |
| 2018-11-21 | Tidy and fix logging. | Carl Hetherington | |
| 2018-11-06 | Do image crop/scale/window in the butler prepare threads. | Carl Hetherington | |
| 2018-11-06 | Double up on DCP-decode prepare threads and readahead as I think it provides ↵v2.13.66 | Carl Hetherington | |
| a slight performance improvement for playback. | |||
| 2018-11-06 | Add some code to help with profiling the player. | Carl Hetherington | |
| 2018-09-11 | Store audio/video even when suspended. | Carl Hetherington | |
| This is important for audio. _audio.put() must be called with sequential data, so if you're going to discard audio (as was happening when _suspended) you need to clear _audio before put()ting any more. This happens with seek; when _pending_seek_position is set _audio is cleared and then nothing more is added until the seek is done. _suspended may be set and then reset with no change having happened (type _CANCELLED) so I think you have to keep storing data in this case. It will be discarded when the seek comes around after a _DONE change. | |||
| 2018-09-04 | Allow the butler to say "try again later" when get_video() is called | Carl Hetherington | |
| while it's suspended. Then make the GUI follow that suggestion. Should | |||
| 2018-08-29 | Basics of splitting CCAP streams into different assets. | Carl Hetherington | |
| 2018-08-22 | Await video in get_video() if we are suspended. | Carl Hetherington | |
| Fix player_change to summon the butler if _suspended is changed, and ensure that the butler's Player::Change handler is the first to be called so that suspension is sorted out before any other Player::Change handlers might call get_video(). This is to prevent the sequence 1. player change-pending emitted 2. hence butler suspended -> 1 3. player change-done emitted 4. first handler is something which calls get_video() 5. get_video() awaits video which will never arrive because the butler is suspended. Here there is a pending change-done signal to butler. Ensuring this arrives before the handler which calls get_video() sorts it out. | |||
| 2018-08-20 | Allow nested butler suspensions. | Carl Hetherington | |
| 2018-08-19 | Replace May/Done/NotDone signal sets with one signal and extend | Carl 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-19 | Suspend butler on player may-change as otherwise there's a window | Carl Hetherington | |
| between Player::_suspended being set to false and the the butler requesting a seek, during which the butler may call pass(). | |||
| 2018-08-14 | More fixes for errors / crashes / misbehaviour with content changes | Carl 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-12 | Don't seek during timeline drags. | Carl Hetherington | |
| 2018-08-09 | Remove duplicated stuff from seek_unlocked(); tweak some ordering. | Carl Hetherington | |
| 2018-08-05 | Get 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-04 | Remove unused parameter. | Carl Hetherington | |
| 2018-08-04 | Timestamp audio emissions from butler and hence discard very late | Carl 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-02 | A variety of changes to improve (but not entirely fix) behaviour | Carl 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. | |||
| 2018-07-27 | Remove debug code. | Carl Hetherington | |
| 2018-07-26 | Protect the public API of Player with a mutex, since | Carl Hetherington | |
| seek() and pass() may be called from the Butler thread ad the same time as other Player methods are called from the GUI thread (by FilmViewer and ClosedCaptionViewDialog). | |||
| 2018-06-22 | Add some timing logs for playback. | Carl Hetherington | |
| 2018-06-11 | Throw exceptions when things in the butler get really out of hand.v2.13.31 | Carl Hetherington | |
| 2018-02-18 | Hold lock for the whole of Butler::video(). Fixes jumpy nudge-seek | Carl Hetherington | |
| when playing DCPs. Before, the lock was only held to check _pending_seek_position. With that arrangement, this sequence was possible: 1. video arrives, check _pending_seek_position, decide it's ok, release lock 2. Butler::seek called, sets _pending_seek_position, clears _video 3. video that arrived in #1 is put into _video by ::video() 4. that video is given to an awaiting get_video() call. This clearly subverts the attempts not to accept new video data while a seek is pending. | |||
| 2018-02-16 | Name threads on Linux. | Carl Hetherington | |
| 2018-02-12 | Tone some debug messages down slightly. | Carl Hetherington | |
| 2018-02-07 | Slightly better log message. | Carl Hetherington | |
| 2017-12-29 | Add basic memory-used stuff for butler and reduce minimum audio | Carl 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-12-29 | Reduce the maximum video readahead. | Carl Hetherington | |
| 2017-12-13 | Attempt to prevent a deadlock if audio is full and video empty (or vice versa). | Carl Hetherington | |
| 2017-08-14 | Remove believed-unnecessary player-changed handler in butler. | Carl Hetherington | |
| 2017-08-14 | Missing conditional wakeup. | Carl Hetherington | |
| 2017-08-14 | I think Butler should just clear itself out when the player changes. | Carl Hetherington | |
| Other layers will seek as appropriate, we shouldn't fight them I don't think. | |||
| 2017-08-14 | Remove Film dependency from Butler. | Carl Hetherington | |
| 2017-07-26 | Fix warning. | Carl Hetherington | |
| 2017-07-26 | Multi-threaded decode of DCP when previewing. | Carl Hetherington | |
| 2017-07-12 | Report underruns from Butler::get_audio. | Carl Hetherington | |
| 2017-06-11 | Catch butler runaway when no audio is provided by the player. | Carl Hetherington | |
| 2017-06-01 | Re-add missing audio mapping in butler for preview. | Carl Hetherington | |
| 2017-05-22 | Remove some unused code. | Carl Hetherington | |
| 2017-05-08 | Set _finished to false when requesting a seek so that the next | Carl Hetherington | |
| get_video() calls pass() enough times to get some data. | |||
| 2017-05-05 | Clear _video/_audio when the seek is request, not when it's performed. | Carl Hetherington | |
| Otherwise between the seek request and action there can be a get_video() call which returns "stale" data. | |||
| 2017-04-26 | Nicer fix for previous commit. | Carl Hetherington | |
| 2017-04-26 | Fix video flickering when seeking near the end of the film. | Carl Hetherington | |
| 2017-04-23 | Cope better with the butler thread throwing an exception; give up | Carl Hetherington | |
| on doing anything else with it. Fix thread running waiting for audio when it is disabled. | |||
