<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/active_text.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>Allow move construction of ActiveText.</title>
<updated>2022-10-26T13:16:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-26T13:16:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4b01fa582bc6a30ce75be72275238e6cc7d0dfbe'/>
<id>urn:sha1:4b01fa582bc6a30ce75be72275238e6cc7d0dfbe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>C++11 and whitespace cleanups.</title>
<updated>2022-04-03T21:25:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-02T22:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f'/>
<id>urn:sha1:d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>BOOST_FOREACH.</title>
<updated>2021-01-07T22:27:56Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-04T20:32:13Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a5d004b0773f633401528392fc28e66d70e13ac8'/>
<id>urn:sha1:a5d004b0773f633401528392fc28e66d70e13ac8</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>Put Time types in dcpomatic namespace.</title>
<updated>2019-05-10T22:43:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2019-05-08T22:41:42Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c4403784febdbdd42e9c32e67fadb147f11fe566'/>
<id>urn:sha1:c4403784febdbdd42e9c32e67fadb147f11fe566</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Get closed caption view data from the butler, rather than the player.</title>
<updated>2018-08-05T00:15:45Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-05T00:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3a7b6acdb993864f319a6ceb3bc4c3fb7d4aaefd'/>
<id>urn:sha1:3a7b6acdb993864f319a6ceb3bc4c3fb7d4aaefd</id>
<content type='text'>
You can't introduce the butler (so that the player is ahead of time)
and then ask the player what should be in the frame that is being
displayed "now"; the player will already have moved on.
</content>
</entry>
<entry>
<title>Some subtitle renaming.</title>
<updated>2018-08-03T23:22:51Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-03T23:22:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=0a5e92450ae992e9ed24026dd60ae351d0a3e60b'/>
<id>urn:sha1:0a5e92450ae992e9ed24026dd60ae351d0a3e60b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add believed-necessary locking to ActiveText.</title>
<updated>2018-07-25T22:50:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-07-25T22:50:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c380909d3dcac0809dbeedc6240c33d37118296d'/>
<id>urn:sha1:c380909d3dcac0809dbeedc6240c33d37118296d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More automated renaming.</title>
<updated>2018-07-23T10:20:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-07-23T10:20:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=df17bbd25da69fc38eb2dcd8b4a2531cf0bab0bc'/>
<id>urn:sha1:df17bbd25da69fc38eb2dcd8b4a2531cf0bab0bc</id>
<content type='text'>
ActiveCaptions -&gt; ActiveText
BitmapCaption -&gt; BitmapText
ContentCaption -&gt; ContentText
ContentTextCaption -&gt; ContentStringText
TextCaptionFileContent -&gt; StringTextFileContent
TextCaptionFileDecoder -&gt; StringTextFileDecoder
TextCaptionFile -&gt; StringTextFile
TextCaption -&gt; StringText
PlayerCaption -&gt; PlayerText
CaptionContent -&gt; TextContent
CaptionDecoder -&gt; TextDecoder
CaptionPanel -&gt; TextPanel
CaptionView -&gt; TextView
CaptionAppearanceDialog -&gt; SubtitleAppearanceDialog
CaptionType -&gt; TextType
</content>
</entry>
</feed>
