diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-05-15 23:52:15 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-15 23:52:15 +0100 |
| commit | c68cf49367957b49a99a9cc04013e9ee5a8c5bfc (patch) | |
| tree | 1cb36ca02f32de05102b1ee603b0ef8c47d0595c | |
| parent | d2ce97f930b53ec7d50c22a11dd03b7264b25039 (diff) | |
Player::playlist_content_change will call setup_pieces() regardlessv2.15.5
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.
| -rw-r--r-- | src/lib/butler.cc | 6 | ||||
| -rw-r--r-- | src/lib/butler.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/butler.cc b/src/lib/butler.cc index 0218c1fb3..8c46d5190 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -82,7 +82,7 @@ Butler::Butler ( /* The butler must hear about things first, otherwise it might not sort out suspensions in time for get_video() to be called in response to this signal. */ - _player_change_connection = _player->Change.connect (bind (&Butler::player_change, this, _1, _3), boost::signals2::at_front); + _player_change_connection = _player->Change.connect (bind (&Butler::player_change, this, _1), boost::signals2::at_front); _thread = new boost::thread (bind (&Butler::thread, this)); #ifdef DCPOMATIC_LINUX pthread_setname_np (_thread->native_handle(), "butler"); @@ -358,7 +358,7 @@ Butler::memory_used () const } void -Butler::player_change (ChangeType type, bool frequent) +Butler::player_change (ChangeType type) { boost::mutex::scoped_lock lm (_mutex); @@ -366,7 +366,7 @@ Butler::player_change (ChangeType type, bool frequent) ++_suspended; } else if (type == CHANGE_TYPE_DONE) { --_suspended; - if (_died || _pending_seek_position || frequent) { + if (_died || _pending_seek_position) { lm.unlock (); _summon.notify_all (); return; diff --git a/src/lib/butler.h b/src/lib/butler.h index f1922d348..09c182f9c 100644 --- a/src/lib/butler.h +++ b/src/lib/butler.h @@ -69,7 +69,7 @@ private: void text (PlayerText pt, TextType type, boost::optional<DCPTextTrack> track, dcpomatic::DCPTimePeriod period); bool should_run () const; void prepare (boost::weak_ptr<PlayerVideo> video); - void player_change (ChangeType type, bool frequent); + void player_change (ChangeType type); void seek_unlocked (dcpomatic::DCPTime position, bool accurate); boost::shared_ptr<Player> _player; |
