<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/ffmpeg_subtitle_stream.cc, branch prores-debug</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=prores-debug</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=prores-debug'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2022-04-22T21:27:15Z</updated>
<entry>
<title>Use libdcp's warnings.h</title>
<updated>2022-04-22T21:27:15Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-22T21:27:15Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3c29aa6531a4046a8db72dcac81189eb8893233c'/>
<id>urn:sha1:3c29aa6531a4046a8db72dcac81189eb8893233c</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>Ignore libxml++ warnings in a nicer way.</title>
<updated>2020-07-26T19:30:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-07-26T00:26:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2bec3708fc744c18128c5bdb4c2a332f5c8eb283'/>
<id>urn:sha1:2bec3708fc744c18128c5bdb4c2a332f5c8eb283</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add lock to _colours since it can be manipulated by a Job thread.</title>
<updated>2019-01-26T19:58:37Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2019-01-26T19:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=bccf7c5c6ff50e25dff8e0e433b81379d8999f9b'/>
<id>urn:sha1:bccf7c5c6ff50e25dff8e0e433b81379d8999f9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial work on removing storage of subtitle times.</title>
<updated>2017-04-27T09:55:07Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2017-04-26T14:29:21Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ba8a5a15cc27988e2bbc6acd470d8532f1d8e99f'/>
<id>urn:sha1:ba8a5a15cc27988e2bbc6acd470d8532f1d8e99f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Various Doxygen fixes.</title>
<updated>2017-04-19T22:04:32Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2017-03-02T15:37:13Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=67a68bd971ebe1b35daa3f75873b4ccb53c00ba0'/>
<id>urn:sha1:67a68bd971ebe1b35daa3f75873b4ccb53c00ba0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Basic grunt-work, untested and unfinished, but it compiles.</title>
<updated>2017-04-19T22:04:32Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2016-11-21T16:57:15Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=de2af791bdfdcd653752cba970e59efc7bf810c7'/>
<id>urn:sha1:de2af791bdfdcd653752cba970e59efc7bf810c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix hanging subtitles after recent changes to subtitle examination.</title>
<updated>2016-11-23T09:54:16Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2016-11-23T09:54:16Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=cd32ade6c276b9163a8aa889a9d81ead6ddb59d6'/>
<id>urn:sha1:cd32ade6c276b9163a8aa889a9d81ead6ddb59d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix subtitles (seen in DVB) which have a specified `to' time but</title>
<updated>2016-11-20T22:08:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2016-11-20T22:08:11Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4337694dfd488e88f56b63898ad35ce8ce9bb3c3'/>
<id>urn:sha1:4337694dfd488e88f56b63898ad35ce8ce9bb3c3</id>
<content type='text'>
then are terminated earlier than that by a num_rects=0 subtitle.
</content>
</entry>
<entry>
<title>A possibly-better approach to seeking.</title>
<updated>2016-11-17T01:06:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2016-10-07T15:22:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=97d39f46795af78b84d5f7bc9118a188f2864781'/>
<id>urn:sha1:97d39f46795af78b84d5f7bc9118a188f2864781</id>
<content type='text'>
Before this commit, decoders try to guess whether they should
request a seek based on what they have in their buffers.  This
seems reasonable for video and audio, which will always (I think)
have some data lying around to give an indication of where their
parent decoders are in the timeline.

It doesn't work so well for subtitles, as the storage of subs is
cleared out based on time (+/- 5s of "now") so there is a good chance
that the storage will be empty.  This gives the subtitle decoder no
chance of knowing where its parent is, so it's very likely to seek.

This commit asks the parent decoder to seek if it wants to, and it
decides based on a knowledge of roughly where it is in the timeline.
Hence the sub-decoders just see if they have got the data that is being
requested, and if not they suggest to the parent that it might like
to seek.  They then start calling pass().  Hence the parent should only
seek if some calls to pass() are not going to elicit the required data
in a reasonable time.
</content>
</entry>
</feed>
