<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/dcp_decoder.h, branch split</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=split</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=split'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2023-12-05T00:59:44Z</updated>
<entry>
<title>Account for split branch in libdcp.</title>
<updated>2023-12-05T00:59:44Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-12-05T00:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=751379da4be48f9b911a91cf17686330dd999d0c'/>
<id>urn:sha1:751379da4be48f9b911a91cf17686330dd999d0c</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>Rearrange subtitle font management.</title>
<updated>2022-06-07T15:01:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-06-01T11:03:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5a820bb8fae34591be5ac6d19a73461b9dab532a'/>
<id>urn:sha1:5a820bb8fae34591be5ac6d19a73461b9dab532a</id>
<content type='text'>
With this change each subtitle coming out of the player has a reference
to a dcpomatic::Font that belongs to the TextContent.  This hopefully
solves a few problems which all basically stemmed from the fact that
previously the decoders/player were deciding what the font ID in the
output DCP would be - they can't do that properly.
</content>
</entry>
<entry>
<title>Remove DCP class and replace its functionality with a plain method in libdcp.</title>
<updated>2022-04-20T19:17:54Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-20T19:17:54Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=86eb90b563efb7ef093d5b17a5d6db0fc330e301'/>
<id>urn:sha1:86eb90b563efb7ef093d5b17a5d6db0fc330e301</id>
<content type='text'>
</content>
</entry>
<entry>
<title>C++11 tidying.</title>
<updated>2021-04-29T18:53:49Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-04-29T07:14:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=39fb8198febde1937019db1c300ec363aab5aa56'/>
<id>urn:sha1:39fb8198febde1937019db1c300ec363aab5aa56</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bump libdcp for better verification, and make API adjustments.</title>
<updated>2021-01-20T22:42:28Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-20T22:42:28Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=cb6729aa79b555b219974207fbe2ff0510f9d3ea'/>
<id>urn:sha1:cb6729aa79b555b219974207fbe2ff0510f9d3ea</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>Pass fonts from content around as FontData.</title>
<updated>2020-12-22T01:37:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-12-20T22:41:52Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ddcd4f3ba0af3e9d49dbb68127317cd0d871a248'/>
<id>urn:sha1:ddcd4f3ba0af3e9d49dbb68127317cd0d871a248</id>
<content type='text'>
i.e. as a block of memory rather than a file.  Also, get the
fonts from the decoder rather than the content.

Together, these changes allow us to use fonts from SMPTE DCPs
added as content.  Before, fonts would be messed up in those
cases (#1885).
</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>Give DCPDecoder its own ::position which just returns its internal</title>
<updated>2020-01-10T00:01:03Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-01-09T23:52:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=efc3486f2acf36bd0dc7b5528e7b3110ea8c4afe'/>
<id>urn:sha1:efc3486f2acf36bd0dc7b5528e7b3110ea8c4afe</id>
<content type='text'>
_next time.

This is important because Decoder::position does the wrong thing
with DCPs in the following case.

1.  DCPDecoder emits a subtitle event (start/stop) at time t.
2.  There follows a long time T with no subtitle events.  During
    this time the DCPDecoder's position is reported as t (since
    TextDecoder notes its position as the time of the last thing
    it emitted --- which is all it reasonably can do, I think).
3.  During this T the DCPDecoder may be incorrectly pass()ed because
    its position is reported as earlier than it really is; this results
    in video/audio being emitted by the DCPDecoder but other contemporary
    sources may not be pass()ed.

The upshot of this can be that no audio is emitted, as a contemporary audio
source is not pass()ed and hence the merger is waiting for audio that will
take a long time to come.  When the butler is running this can result in
audio underruns as the video buffers overflow with no sign of any audio.

It is also simpler this way; DCPDecoder was already maintaining the required
information.
</content>
</entry>
</feed>
