| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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. | |||
| 2017-04-21 | Throw exceptions raised while waiting for the butler to deliver video. | Carl Hetherington | |
| 2017-04-19 | Config option to disable preview audio. | Carl Hetherington | |
| 2017-04-19 | No-op; white space. | Carl Hetherington | |
| 2017-04-19 | Should clear audio too when seeking. | Carl Hetherington | |
| 2017-04-19 | Tidy up slightly. | Carl Hetherington | |
| 2017-04-19 | Don't return 'no video' from get_video() until the player has finished and ↵ | Carl Hetherington | |
| we have exhausted our store. | |||
| 2017-04-19 | Clear out ring buffers when the player's output changes. | Carl Hetherington | |
| 2017-04-19 | Handle butler thread exceptions properly. | Carl Hetherington | |
| 2017-04-19 | Remove redundant cast. | Carl Hetherington | |
| 2017-04-19 | More audio readahead. | Carl Hetherington | |
| 2017-04-19 | Several fixes to audio. | Carl Hetherington | |
| 2017-04-19 | Try to stop Butler deadlocking on quit. | Carl Hetherington | |
| 2017-04-19 | First bits of audio support. | Carl Hetherington | |
