<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/butler.cc, branch v2.13.44</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.13.44</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.13.44'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-08-20T11:01:34Z</updated>
<entry>
<title>Allow nested butler suspensions.</title>
<updated>2018-08-20T11:01:34Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-20T11:01:34Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a638a231d1cf8d04840b62354911520dab6fb6b3'/>
<id>urn:sha1:a638a231d1cf8d04840b62354911520dab6fb6b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace May/Done/NotDone signal sets with one signal and extend</title>
<updated>2018-08-19T00:29:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-19T00:04:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6c7489e5d778d3e71065d88a094a7383ba2c117d'/>
<id>urn:sha1:6c7489e5d778d3e71065d88a094a7383ba2c117d</id>
<content type='text'>
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().
</content>
</entry>
<entry>
<title>Suspend butler on player may-change as otherwise there's a window</title>
<updated>2018-08-19T00:29:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-18T21:49:46Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9a27d60ea7888d300a5a2414a477091428589b82'/>
<id>urn:sha1:9a27d60ea7888d300a5a2414a477091428589b82</id>
<content type='text'>
between Player::_suspended being set to false and the the butler
requesting a seek, during which the butler may call pass().
</content>
</entry>
<entry>
<title>More fixes for errors / crashes / misbehaviour with content changes</title>
<updated>2018-08-13T23:05:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-13T16:37:52Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1fe6bd7f8ba059322b8357b2210f0fd590567ce2'/>
<id>urn:sha1:1fe6bd7f8ba059322b8357b2210f0fd590567ce2</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Don't seek during timeline drags.</title>
<updated>2018-08-12T21:02:25Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-12T21:02:25Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=b733ff51f0212d02dbf33ccb62e67f07941f5ace'/>
<id>urn:sha1:b733ff51f0212d02dbf33ccb62e67f07941f5ace</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove duplicated stuff from seek_unlocked(); tweak some ordering.</title>
<updated>2018-08-09T21:31:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-08T23:01:49Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=52094ba65baa38dfcedc907cfb4314efb1a549b4'/>
<id>urn:sha1:52094ba65baa38dfcedc907cfb4314efb1a549b4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Get closed caption view data from the butler, rather than the player.</title>
<updated>2018-08-05T00:15:45Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-05T00:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3a7b6acdb993864f319a6ceb3bc4c3fb7d4aaefd'/>
<id>urn:sha1:3a7b6acdb993864f319a6ceb3bc4c3fb7d4aaefd</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Remove unused parameter.</title>
<updated>2018-08-03T23:18:22Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-03T23:18:22Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=984455f1a072b0fa42879d03042e82df0a3cb3bd'/>
<id>urn:sha1:984455f1a072b0fa42879d03042e82df0a3cb3bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Timestamp audio emissions from butler and hence discard very late</title>
<updated>2018-08-03T23:01:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-03T23:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=54e6f206305d4275808cfce36987edcc61a6a779'/>
<id>urn:sha1:54e6f206305d4275808cfce36987edcc61a6a779</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>A variety of changes to improve (but not entirely fix) behaviour</title>
<updated>2018-08-02T22:22:49Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-02T22:22:49Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4fe1a062eb31d680b8b4ac0191b9e2fc2d6aaec3'/>
<id>urn:sha1:4fe1a062eb31d680b8b4ac0191b9e2fc2d6aaec3</id>
<content type='text'>
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.
</content>
</entry>
</feed>
