<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib, branch v2.15.95</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.15.95</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.15.95'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2020-08-05T19:46:44Z</updated>
<entry>
<title>Allow export with one audio stream per channel.</title>
<updated>2020-08-05T19:46:44Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-05T16:32:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=010a6240453384e35d4aa848af00ed58244fe16d'/>
<id>urn:sha1:010a6240453384e35d4aa848af00ed58244fe16d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typo.</title>
<updated>2020-08-04T22:20:49Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-04T22:20:49Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=64b72fe3872c7e7b778db6a6de24e6bf657817ab'/>
<id>urn:sha1:64b72fe3872c7e7b778db6a6de24e6bf657817ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove some debugging code.</title>
<updated>2020-08-04T22:19:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-04T22:19:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a3ab919a0894a11f1d04125b635030b6f34e67bd'/>
<id>urn:sha1:a3ab919a0894a11f1d04125b635030b6f34e67bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix slightly chopped-off subtitles when there are borders.</title>
<updated>2020-08-03T21:08:09Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-03T21:08:09Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=f015ab05e025348dbc5fafd98da63fe354ee878c'/>
<id>urn:sha1:f015ab05e025348dbc5fafd98da63fe354ee878c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix number of frames in the pulldown check.</title>
<updated>2020-08-03T07:51:27Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-03T07:51:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5f1fdbafc6eef37523250e0b8542a8939a038823'/>
<id>urn:sha1:5f1fdbafc6eef37523250e0b8542a8939a038823</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix incorrect string find logic.</title>
<updated>2020-08-03T07:51:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-03T07:51:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d461077cf4f2c1470d2d0d6dbc4f5708411bec65'/>
<id>urn:sha1:d461077cf4f2c1470d2d0d6dbc4f5708411bec65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Detect soft 2:3 pulldown (telecine) files and decode them at 23.976.</title>
<updated>2020-08-02T20:24:05Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-08-02T20:24:05Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=af680761cf7c3e97660e8e55c68f42e90b026bf9'/>
<id>urn:sha1:af680761cf7c3e97660e8e55c68f42e90b026bf9</id>
<content type='text'>
DVD rips from NTSC DVDs are sometimes (always?) encoded using
soft 2:3 pulldown.  The video frames are actually 23.976 but
FFmpeg detects them as 29.97.  With the current approach of the video
decoder ignoring most PTSs and assuming a constant frame rate
it is vital that the file contains the number of frames per second
that the detected frame rate predicts.

This fixes large sync errors with NTSC DVD rips (#1790).
</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>Recover information about closed caption tracks when loading DCPs</title>
<updated>2020-07-29T09:44:05Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-07-29T09:44:05Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=09860271bb6d03b3937c08bffb4c672697f6d711'/>
<id>urn:sha1:09860271bb6d03b3937c08bffb4c672697f6d711</id>
<content type='text'>
so that they can be displayed.
</content>
</entry>
<entry>
<title>Some more warning hiding.</title>
<updated>2020-07-28T20:04:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-07-28T20:04:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e83e799c027346681208c57181b28010d01c9b6e'/>
<id>urn:sha1:e83e799c027346681208c57181b28010d01c9b6e</id>
<content type='text'>
</content>
</entry>
</feed>
