<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.cc, branch v2.11.58</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.58</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.58'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-02-16T23:53:01Z</updated>
<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>
<entry>
<title>Fix missing subtitles when they start just after the start of a frame.</title>
<updated>2018-01-31T21:36:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-31T21:36:36Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=8bccd0af23b8e1ada43182c2531c21f06036ca37'/>
<id>urn:sha1:8bccd0af23b8e1ada43182c2531c21f06036ca37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix sequencing failure in some very specific circumstances.</title>
<updated>2018-01-31T00:25:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-31T00:25:06Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a5d5ceb22c4f5dd3e6c5b7a8da76f724dd266a75'/>
<id>urn:sha1:a5d5ceb22c4f5dd3e6c5b7a8da76f724dd266a75</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix assertion failure in emit_audio.</title>
<updated>2018-01-30T00:34:13Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-30T00:34:13Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c463929602252be95ca340b477b7f3b42ff6b0c0'/>
<id>urn:sha1:c463929602252be95ca340b477b7f3b42ff6b0c0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>In general the player assumes that it won't receive out of order video.</title>
<updated>2018-01-16T21:01:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-16T21:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1aad2c33896ce6222f3c929c7af7fe4ff5fda0f2'/>
<id>urn:sha1:1aad2c33896ce6222f3c929c7af7fe4ff5fda0f2</id>
<content type='text'>
This clearly can happen with separate L/R sources.  A pass in L might
emit two frames which means the arrivals can't possibly be in order.

This commit fixes this by introducing a Shuffler which all alternate-3D
sources send their video to.  The Shuffler re-orders things before they
arrive at the player.

It also fixes the code which inserts video frames before one that arrives
after a gap.  This didn't cope with 3D right before.

The audio code solves a similar (perhaps the same?) problem with the
AudioMerger; perhaps we should have a similar thing for video and make
the player emit complete 3D frames.

Should help with #976.
</content>
</entry>
<entry>
<title>Fix incorrect reel lengths when start-trimmed movie content follows</title>
<updated>2018-01-15T00:42:58Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-15T00:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1a0aeb9b5639f31dc50e4a2c72c4dc33899a7d4a'/>
<id>urn:sha1:1a0aeb9b5639f31dc50e4a2c72c4dc33899a7d4a</id>
<content type='text'>
image-only content (e.g. crash1.xml in dcpomatic-test).  We must consider
the _silent "source" to be like an audio stream when deciding when
to pull up to.
</content>
</entry>
<entry>
<title>Only put subtitles in a frame if they overlap more than half of that</title>
<updated>2018-01-14T02:27:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-14T02:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1f33b815df5d780f123c6bdf8f110a4f2fc70363'/>
<id>urn:sha1:1f33b815df5d780f123c6bdf8f110a4f2fc70363</id>
<content type='text'>
frame; may help with #1166.
</content>
</entry>
</feed>
