<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.cc, branch v2.11.78</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.78</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.78'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-03-10T00:55:33Z</updated>
<entry>
<title>Remove assert in emit_audio to work around #1206.</title>
<updated>2018-03-10T00:55:33Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-03-10T00:55:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=057a3fcfd98e5c8dec16294caf230aee2b5229eb'/>
<id>urn:sha1:057a3fcfd98e5c8dec16294caf230aee2b5229eb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Speed some operations by re-using the last PlayerVideo but with</title>
<updated>2018-02-24T23:34:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-24T01:05:14Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d08123f5e160b5737fa912cd36119e810abaa4cd'/>
<id>urn:sha1:d08123f5e160b5737fa912cd36119e810abaa4cd</id>
<content type='text'>
updated metadata (where possible).  Helps with #1194.
</content>
</entry>
<entry>
<title>Another subtitle fix.</title>
<updated>2018-02-23T19:55:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-23T19:55:23Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ca6079fb4e2e1b791aed70fc9ffc13f151eb62ea'/>
<id>urn:sha1:ca6079fb4e2e1b791aed70fc9ffc13f151eb62ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix thinko in previous.</title>
<updated>2018-02-23T01:21:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-23T01:21:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ad15f80996bf14c7c33875a834cc07ed4dfd7214'/>
<id>urn:sha1:ad15f80996bf14c7c33875a834cc07ed4dfd7214</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix implementation of delay in 7758260; it needs to apply to</title>
<updated>2018-02-23T00:57:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-23T00:57:04Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c8d104aa221bdccb0a11524c038b5f4c7c070554'/>
<id>urn:sha1:c8d104aa221bdccb0a11524c038b5f4c7c070554</id>
<content type='text'>
anything passed to emit_video(), not just things that come from
decoders.
</content>
</entry>
<entry>
<title>Add a 2-frame `delay' on content arriving at the player to give</title>
<updated>2018-02-20T23:34:59Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-20T23:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=775826079275839005d2168b190f96e32215afd0'/>
<id>urn:sha1:775826079275839005d2168b190f96e32215afd0</id>
<content type='text'>
subtitle content the chance to catch up.  Fixes problems observed
when overlaying a DCP subtitle onto an existing DCP and then seeking
into the first subtitle.  After the seek the decoder positions were:

DCP: 0.
subtitle: first subtitle time.

This causes the DCP decoder to be pass()ed first and so the subtitle
for the video frame has not arrived yet.

I hope this does not cause unpredicted side effects...
</content>
</entry>
<entry>
<title>Add log for assertion failure.</title>
<updated>2018-02-16T23:53:01Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-16T23:52:39Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=62890d211dd114c90e2f661ebbabd999850df6c3'/>
<id>urn:sha1:62890d211dd114c90e2f661ebbabd999850df6c3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix ignore/referencing logic.</title>
<updated>2018-02-07T20:14:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-07T20:14:19Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=8bfe295dcc4e1753ee1c89310108bc6bc034cd61'/>
<id>urn:sha1:8bfe295dcc4e1753ee1c89310108bc6bc034cd61</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Whitespace.</title>
<updated>2018-02-02T23:58:33Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-02T23:58:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a13c66be5c55a81fd9a57131cf25b2760e31f38e'/>
<id>urn:sha1:a13c66be5c55a81fd9a57131cf25b2760e31f38e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prior to 2537a2d Decoder::position() was not updated if a decoder emitted</title>
<updated>2018-02-02T23:47:46Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-02T23:47:46Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=518be532a480173dfac962d5aca347a2388bb072'/>
<id>urn:sha1:518be532a480173dfac962d5aca347a2388bb072</id>
<content type='text'>
data which were ignored by the Player.

2537a2d changed this so that Decoder::position() is always updated, as it could
not see the point of the previous behaviour.

It now seems that the behaviour prior to 2537a2d fixed problems with cases like
remake_with_subtitle_test. With this test the FFmpeg content happens to emit
a final frame just after its end point with a gap before it.  Code prior to
2537a2d handled this by making sure that FFmpegDecoder::flush() filled the gap (it reads
VideoDecoder::position and fills the gap at the end of content accordingly).

This no longer works if VideoDecoder::position is updated to take into account
the emitted (and ignored) frame just after the end of the content.

This commit re-fixes that problem by a different means; Player::video now
fills the gaps in this case by more careful handling of received data which is
off the end of the content.
</content>
</entry>
</feed>
