<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/writer.cc, branch bisect</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=bisect</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=bisect'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2024-05-11T19:00:37Z</updated>
<entry>
<title>Stop using video directory and hard-linking (#2756).</title>
<updated>2024-05-11T19:00:37Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-03-14T23:41:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d2c665cba983c625933817e0bf05e298f80f0119'/>
<id>urn:sha1:d2c665cba983c625933817e0bf05e298f80f0119</id>
<content type='text'>
Instead store details of a previously-created asset in the film's
metadata and then look there for potential video files to re-use.
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into v2.17.x</title>
<updated>2024-05-07T23:53:50Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-05-07T23:53:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6b2119dcd16c43fd681feace00d4e10f464bb9b7'/>
<id>urn:sha1:6b2119dcd16c43fd681feace00d4e10f464bb9b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Work around deadlock when destroying J2KEncoder with a full writer queue (#2784).</title>
<updated>2024-05-07T23:33:41Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-05-05T19:34:29Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=32d04ddb5c583938f470ed74bda8a50cc2ec9960'/>
<id>urn:sha1:32d04ddb5c583938f470ed74bda8a50cc2ec9960</id>
<content type='text'>
This feels like a hack, but I can't think of a nicer way to do it.

The interruption disable makes sense because when we destroy encoder threads
during a DCP encode (because a remote server goes away, for example) we don't
want any frames to be lost due to the encode thread being interrupted between
taking the frame off the queue and sending it to the writer.

When we're destroying the encoder we don't care about this, but I can't see
how you'd differentiate.

Maybe the encoder queue could have two lists: to-do and in-progress;
the encoder thread atomically moves a frame from to-do to in-progress,
but then how do you know when the in-progress ones are orphaned and need
to be re-added to the main queue.

You could make the writer return saying "no" if the queue is full (rather
than blocking and waiting for the queue to empty) but that seems wasteful
as then the frame would be re-encoded.
</content>
</entry>
<entry>
<title>Support encoding of MPEG2 DCPs.</title>
<updated>2024-04-22T11:03:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-03-19T13:02:47Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=f72a79c93626e773214f1a0318adf2445ac2ee72'/>
<id>urn:sha1:f72a79c93626e773214f1a0318adf2445ac2ee72</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Extract frame info read/write to new class.</title>
<updated>2024-04-21T21:18:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-03-26T21:43:10Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=f7518583f90a866a07d8069a78bebcea82b2b248'/>
<id>urn:sha1:f7518583f90a866a07d8069a78bebcea82b2b248</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add dummy subtitle and closed caption reels even when referencing</title>
<updated>2024-01-04T22:36:08Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-01-03T23:40:03Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=23b0ff9c475265fb5309d20fe4094f5a96818d22'/>
<id>urn:sha1:23b0ff9c475265fb5309d20fe4094f5a96818d22</id>
<content type='text'>
other DCPs (in a VF) that themselves might have missing subtitles
for some reels.
</content>
</entry>
<entry>
<title>Improve progress reporting of digest calculations (might help with #2643).</title>
<updated>2023-11-20T06:29:15Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-11-12T21:09:48Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=db4fde2e8983eaa0b76c49a189e059d6c9f5720d'/>
<id>urn:sha1:db4fde2e8983eaa0b76c49a189e059d6c9f5720d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix DCP content font ID allocation to cope with DCPs that have multiple fonts</title>
<updated>2023-10-15T07:10:18Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-10-14T19:48:25Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3c802dd6d1451c2c8a7e188f8379738d72e907eb'/>
<id>urn:sha1:3c802dd6d1451c2c8a7e188f8379738d72e907eb</id>
<content type='text'>
with the same name in the same reel (#2600).

Previously we had this id_for_font_in_reel() which would give an ID
of N_font-ID.  This means we got duplicate font IDs.

Here we replace that method with FontAllocator, which gives an ID of
N_font-ID for the first font and M_font-ID, where M is a number higher than
the highest reel index.  The idea is to support the required new IDs
without breaking exisiting projects.

There is some documentation of how it works  in doc/design/fonts
</content>
</entry>
<entry>
<title>Use dcp::filesystem to wrap filesystem calls and fix_long_path</title>
<updated>2023-10-09T21:38:28Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-10-06T00:37:16Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=96f50dd5e600925488fdd9db1580aa01b026269b'/>
<id>urn:sha1:96f50dd5e600925488fdd9db1580aa01b026269b</id>
<content type='text'>
anything that is passed to read_file() from libcxml.

This should fix #2623 and other similar problems.
</content>
</entry>
<entry>
<title>Prevent empty &lt;LabelText&gt; in &lt;ContentVersion&gt; (#2594).</title>
<updated>2023-08-11T22:13:08Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-08-11T22:13:08Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3472cd4dc301beb7db39419e922fc0b02cf36cf4'/>
<id>urn:sha1:3472cd4dc301beb7db39419e922fc0b02cf36cf4</id>
<content type='text'>
</content>
</entry>
</feed>
