<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/butler.cc, branch disk-opt</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=disk-opt</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=disk-opt'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2021-02-15T09:56:14Z</updated>
<entry>
<title>Don't keep returning AGAIN from the butler when it is already dead/finished.</title>
<updated>2021-02-15T09:56:14Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-02-15T01:50:03Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=34119b89c286fc486e9035007066e01462afb8c3'/>
<id>urn:sha1:34119b89c286fc486e9035007066e01462afb8c3</id>
<content type='text'>
This causes, for example, player UI hangs when trying to play
something unplayable (e.g. a DCP with no KDM).
</content>
</entry>
<entry>
<title>More enum class additions.</title>
<updated>2021-01-31T02:14:24Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-31T02:14:24Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=8fedaaa75c4586a4cc7ffb393bd71d1fdb091dc8'/>
<id>urn:sha1:8fedaaa75c4586a4cc7ffb393bd71d1fdb091dc8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std::shared_ptr</title>
<updated>2021-01-07T21:48:29Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-04T20:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=dd9be86db6cde0afa5da0d1d1ac43b42e05dca26'/>
<id>urn:sha1:dd9be86db6cde0afa5da0d1d1ac43b42e05dca26</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Changes to crop can be handled with a reset_metadata().</title>
<updated>2020-12-01T10:32:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-12-01T10:32:36Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=be2e6e017d853069f02a83f5fe67423235c3096c'/>
<id>urn:sha1:be2e6e017d853069f02a83f5fe67423235c3096c</id>
<content type='text'>
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).
</content>
</entry>
<entry>
<title>Give Butler a weak_ptr&lt;Film&gt;</title>
<updated>2020-11-30T23:20:51Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-11-30T22:49:04Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5b6b01ea778064a0b0125ea8ebd9272a534cccd2'/>
<id>urn:sha1:5b6b01ea778064a0b0125ea8ebd9272a534cccd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make sure we use limited ("video") range data when exporting.</title>
<updated>2020-11-16T00:40:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-11-15T19:47:42Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=b057363e69b77119137c0c8b07402828096e03aa'/>
<id>urn:sha1:b057363e69b77119137c0c8b07402828096e03aa</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Build fixes for Boost &gt;= 1.73</title>
<updated>2020-09-01T14:34:26Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-27T20:37:32Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c04fec82d25127fafa73c3daff87bece9aa8c8e8'/>
<id>urn:sha1:c04fec82d25127fafa73c3daff87bece9aa8c8e8</id>
<content type='text'>
Forward-ported-from: d1e9749ca290673639a49d693a8fe5c6557cc2de
</content>
</entry>
<entry>
<title>Report better errors when the butler dies.</title>
<updated>2020-08-17T13:44:58Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-17T13:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6abf2fdd53b14608561fcc1900507daea5b79fb7'/>
<id>urn:sha1:6abf2fdd53b14608561fcc1900507daea5b79fb7</id>
<content type='text'>
Adapted from d23f55d8cd73adda823d0a2fcabc129b8845a81 in master.
</content>
</entry>
<entry>
<title>Fix bugs in thread termination causing occasional pthread</title>
<updated>2020-07-29T18:22:54Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-07-29T18:22:54Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e3c7656f9dc0acbaf518c051b847ee2e4eb7ba23'/>
<id>urn:sha1:e3c7656f9dc0acbaf518c051b847ee2e4eb7ba23</id>
<content type='text'>
assertion failures.

Before this, it was possible for J2KEncoder::terminate_threads()
to finish without terminating all threads if the thread _running_
terminate_threads() was itself interrupt()ed.

This is because the thread_group::join_all() in terminate_threads()
is an interruption point, so it was possible it not to complete
but instead to throw interrupted_exception.  Then the owning
J2KEncoder would be torn down but the threads would still be running,
causing use-after-frees.

This commit adds some boost::this_thread::disable_interruption
objects to ensure that the owning thread is not interrupted while
it is being destroyed.

Also tidy up code that does this stuff, assuming that it's safe
to not call thread::joinable but instead do

thread.interrupt();
try {
  thread.join();
} catch (...) {}
</content>
</entry>
<entry>
<title>Improve butler error reporting during export.</title>
<updated>2020-07-05T20:10:03Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-07-05T20:10:03Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=cfa822570e6f2d2d09fe1c36a81b224ded07c6b6'/>
<id>urn:sha1:cfa822570e6f2d2d09fe1c36a81b224ded07c6b6</id>
<content type='text'>
</content>
</entry>
</feed>
