<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/writer.cc, branch alignment</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=alignment</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=alignment'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2020-09-23T15:04:53Z</updated>
<entry>
<title>Build fixes.</title>
<updated>2020-09-23T15:04:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-09-23T15:04:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6b9f804bf49ceee0ebb9f06be123dccfee2a45ab'/>
<id>urn:sha1:6b9f804bf49ceee0ebb9f06be123dccfee2a45ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support CPL metadata.</title>
<updated>2020-09-23T09:38:43Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-09-04T15:24:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d97029163865e212dc3d7b3c57c16459933a11f6'/>
<id>urn:sha1:d97029163865e212dc3d7b3c57c16459933a11f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Adapt for changes to libdcp API.</title>
<updated>2020-09-23T09:38:43Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-09-04T07:29:41Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=7ab22a7aa171aec36563b8ec0b7c0b69a36094fe'/>
<id>urn:sha1:7ab22a7aa171aec36563b8ec0b7c0b69a36094fe</id>
<content type='text'>
</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>Make Atmos content work more like other content.  Now its MXFs</title>
<updated>2020-06-19T13:07:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-06-19T11:30:02Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ca981c8cfa23111e92be329f1c2dfbe3a07b4247'/>
<id>urn:sha1:ca981c8cfa23111e92be329f1c2dfbe3a07b4247</id>
<content type='text'>
are re-written, meaning that they can be encrypted.

This (along with the libdcp update) also fixes assorted Atmos bugs.
</content>
</entry>
<entry>
<title>Always sign DCPs (#1760).</title>
<updated>2020-06-08T15:09:15Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-06-08T00:11:18Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=8755ef75cb001cf7fba230ffa98fb40eb2547849'/>
<id>urn:sha1:8755ef75cb001cf7fba230ffa98fb40eb2547849</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Difficult to see how any unprotected write with multiple readers</title>
<updated>2020-05-20T19:56:28Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-05-19T23:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=93f6b7f36dba0eed49936dcd014a9cf5941a66ac'/>
<id>urn:sha1:93f6b7f36dba0eed49936dcd014a9cf5941a66ac</id>
<content type='text'>
could be safe.
</content>
</entry>
<entry>
<title>Add _last_written to Writer, containing the last written frame and eyes</title>
<updated>2020-04-18T22:57:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-18T18:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6e003ef110717dd3e4ecdb009d33671f7834e024'/>
<id>urn:sha1:6e003ef110717dd3e4ecdb009d33671f7834e024</id>
<content type='text'>
to each reel.  This is updated when things are popped off the queue, with
_state_mutex_held, and used in preference to the ones in ReelWriter
which were previously being updated during the time the _state_mutex
lock is unlocked in the body of Writer::thread().  This was not
thread safe (thanks, valgrind!)
</content>
</entry>
<entry>
<title>Use a BOOST_FOREACH.</title>
<updated>2020-04-18T22:57:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-17T20:00:06Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=be4082c68004d56ad7f14b7b9cddef640118dd62'/>
<id>urn:sha1:be4082c68004d56ad7f14b7b9cddef640118dd62</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename a variable.</title>
<updated>2020-04-18T22:57:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-17T19:59:14Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=143cfcf6c9e8c0a0879652d0d741ec268e8d9541'/>
<id>urn:sha1:143cfcf6c9e8c0a0879652d0d741ec268e8d9541</id>
<content type='text'>
</content>
</entry>
</feed>
