<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/test/writer_test.cc, branch arbitrary-hz</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=arbitrary-hz</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=arbitrary-hz'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2025-09-02T20:40:13Z</updated>
<entry>
<title>Untested conversion to num/den DCPTime.</title>
<updated>2025-09-02T20:40:13Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-12-21T23:09:57Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=33b0928b20618da5bc295711bfdf3d638863afa5'/>
<id>urn:sha1:33b0928b20618da5bc295711bfdf3d638863afa5</id>
<content type='text'>
Summary of required changes:

Replace ::from_frames with a constructor that takes num/den.
Provide and use member to_debug_string() instead of to_string().
Provide and use member to_serializable_string() and string constructor instead of fmt::to_string on .get() and number constructor.
Provide and use content_time() member instead of ContentTime constructor from DCPTime.
Use frames_round(96000) instead of get() when comparing times to see if they are "close enough".
Provide and use DCPTime(x, FrameRateChange) constructor when converting from ContentTime.
Use .seconds() when calculating proportions or sometimes when dividing by HZ.
Provide and use operator bool().
Pass explicit 96000 denominator in a lot of places.
Add member max() and use it instead of static max()
Change BOOST_CHECK_EQUAL to BOOST_CHECK
Provide operator/ and use it instead of .get() / 2.
</content>
</entry>
<entry>
<title>Change Film::examine_and_add_content to take a vector of content.</title>
<updated>2025-07-15T16:03:57Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-07-15T01:36:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=21415bdb69a99c4fc36cf4b5e5160a171bb1cad4'/>
<id>urn:sha1:21415bdb69a99c4fc36cf4b5e5160a171bb1cad4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename new_test_film2 -&gt; new_test_film.</title>
<updated>2024-05-22T08:33:45Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-05-20T14:55:57Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c95ba3eb99c5e4d6dca90cee7e5bb9077b6ed02c'/>
<id>urn:sha1:c95ba3eb99c5e4d6dca90cee7e5bb9077b6ed02c</id>
<content type='text'>
</content>
</entry>
<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>Rename Encoder -&gt; FilmEncoder, and subclasses.</title>
<updated>2024-04-21T21:18:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-03-19T15:29:13Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1fc8c0c6d045404732497ba70bd2eccfbe4cc6f6'/>
<id>urn:sha1:1fc8c0c6d045404732497ba70bd2eccfbe4cc6f6</id>
<content type='text'>
</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>This test suddenly just started failing with</title>
<updated>2023-10-15T22:40:28Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-10-15T22:40:28Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e2dfb7e571fa80e6216dcedb16e5eaca3c5648d4'/>
<id>urn:sha1:e2dfb7e571fa80e6216dcedb16e5eaca3c5648d4</id>
<content type='text'>
opj_int_fix_mul: Assertion `(temp &gt;&gt; 13) &lt;= (OPJ_INT64)0x7FFFFFFF' failed.
which is odd - why now?

Anywhere here we limit the OpenJPEG image values to what I think is
the "legal" range.
</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 a vector rather than a list when returning from content_factory().</title>
<updated>2022-07-11T10:22:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-07-09T18:41:10Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=b1e22dff981fb86ae04b12bb5a064e61030793a8'/>
<id>urn:sha1:b1e22dff981fb86ae04b12bb5a064e61030793a8</id>
<content type='text'>
</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>
</feed>
