<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/writer.cc, branch 2997-arch</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=2997-arch</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=2997-arch'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2025-03-21T12:37:34Z</updated>
<entry>
<title>Fix crash due to crosss-thread list access.</title>
<updated>2025-03-21T12:37:34Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:37:34Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1fc3341a624be096bd6a938e6f9c7d42861a3712'/>
<id>urn:sha1:1fc3341a624be096bd6a938e6f9c7d42861a3712</id>
<content type='text'>
I've seen it happen that item points to a different QueueItem after the
lock was unlocked here, which I didn't think was possible.  Backtraces
suggest that when problems happen _queue is being sorted in another
thread, and perhaps this is not allowed (I couldn't find any conclusive
proof in any documentation).

There is also a potential problem with the newly-added zombify() method,
which takes the lock and clears the list.
</content>
</entry>
<entry>
<title>Use make_shared.</title>
<updated>2025-03-21T12:34:41Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:34:41Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=adfadddbee2ff9222eba69bd976f93af6508ce29'/>
<id>urn:sha1:adfadddbee2ff9222eba69bd976f93af6508ce29</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify conditions.</title>
<updated>2025-03-21T12:34:33Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-21T12:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a9e1bbf790531d2b242ffee601252b785ae5174c'/>
<id>urn:sha1:a9e1bbf790531d2b242ffee601252b785ae5174c</id>
<content type='text'>
Only Type::FULL can have non-null encoded, so I don't think there's any
point in checking for both things.
</content>
</entry>
<entry>
<title>Add abstraction of io_{context,service} and use it as appropriate.</title>
<updated>2025-03-19T21:41:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-03-17T00:25:02Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=25df8b44586c87ecbe738143b60014cec9b82377'/>
<id>urn:sha1:25df8b44586c87ecbe738143b60014cec9b82377</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a group ID to VF PKLs (#2943).</title>
<updated>2025-01-15T19:11:35Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-14T10:24:22Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=450da5182c3e224af87f269c3216ac13ae39ec1f'/>
<id>urn:sha1:450da5182c3e224af87f269c3216ac13ae39ec1f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Put film_util methods in a namespace.</title>
<updated>2025-01-14T22:51:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-14T09:39:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=faa7efd869e11c6e0ec4f00da8e1ad99415c709b'/>
<id>urn:sha1:faa7efd869e11c6e0ec4f00da8e1ad99415c709b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename subtitle_languages() -&gt; open_text_languages().</title>
<updated>2025-01-12T01:06:50Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-11T22:04:57Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=20c749bb5aee7a12d6a4365bc35fee01b9810fe3'/>
<id>urn:sha1:20c749bb5aee7a12d6a4365bc35fee01b9810fe3</id>
<content type='text'>
Also make it return open captions as well as open subtitles (#2941).
</content>
</entry>
<entry>
<title>Put open captions into subtitles and closed subtitles into captions.</title>
<updated>2025-01-12T01:05:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-10T21:17:00Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5d9b8579950a4440b43a649c27fa36082144773d'/>
<id>urn:sha1:5d9b8579950a4440b43a649c27fa36082144773d</id>
<content type='text'>
We could write them separately (libdcp supports this, AFAIK) but
the Deluxe guidelines suggest not to use ClosedSubtitle or MainCaption.
</content>
</entry>
<entry>
<title>Remove some unused includes.</title>
<updated>2025-01-05T11:58:13Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-02T22:58:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2970a579fa3e3f980f8a9d0cfea44b93ca05602a'/>
<id>urn:sha1:2970a579fa3e3f980f8a9d0cfea44b93ca05602a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Give ownership of info files to ReelWriters (#2912).</title>
<updated>2024-12-26T16:20:25Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-12-16T00:58:57Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=24728b74693bb84d79474e014cdb952abc8a79f2'/>
<id>urn:sha1:24728b74693bb84d79474e014cdb952abc8a79f2</id>
<content type='text'>
The motivation here is to stop a pattern where we create a file, close
it, and then re-open it (many times) as I think there are problems on
Windows when a virus scanner sees the new file, opens it for checking,
and then we can't re-open it.

This also makes things a fair bit simpler, as a lock is removed and we
don't try to differentiate read/write cases by opening the file in
different ways; it's now always writeable.
</content>
</entry>
</feed>
