<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.cc, branch v2.11.46</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.46</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.11.46'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-01-31T00:25:06Z</updated>
<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>
<entry>
<title>Use an enum for the effect in SubtitleContent.</title>
<updated>2018-01-13T00:06:28Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-12T13:24:52Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=67a404fff364c6e1fa02eab270755895ba0e1fe8'/>
<id>urn:sha1:67a404fff364c6e1fa02eab270755895ba0e1fe8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Recreate player pieces when changing FFmpeg filters (#1019).</title>
<updated>2018-01-04T22:02:27Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-04T22:02:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=daf6233204d381de4ec1d3a6c08c06d5973f9b90'/>
<id>urn:sha1:daf6233204d381de4ec1d3a6c08c06d5973f9b90</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mark pieces as done when we're past the end of them; fixes #1154.</title>
<updated>2018-01-02T21:21:43Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-02T21:21:43Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=65c3b3a815545fef4d0373bb588eb815b8b544b0'/>
<id>urn:sha1:65c3b3a815545fef4d0373bb588eb815b8b544b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>A previous commit took care to make Decoder::position() not be updated</title>
<updated>2018-01-02T21:09:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-01-02T21:09:36Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2537a2d959a5872c2e75b322022a7679d24c7e60'/>
<id>urn:sha1:2537a2d959a5872c2e75b322022a7679d24c7e60</id>
<content type='text'>
if the data that was emitted from the decoder was not taken by the player.

This means that when the decoder moves into its end trim the position will
stay where it is (since the player does not take the data).

I can't see the point of doing this; the only use of Decoder::position()
is to decide what to pass() next (I think).

It is also inconvenient because we would like to check Decoder::position()
to decide whether to stop passing a decoder since it's in its end trim
(not doing this causes #1154).
</content>
</entry>
<entry>
<title>Fix various problems caused by non-integer-frame start trims,</title>
<updated>2017-12-11T01:06:37Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2017-12-11T01:06:37Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=14c5566fe90b2584c7474c3250e6506d70e81510'/>
<id>urn:sha1:14c5566fe90b2584c7474c3250e6506d70e81510</id>
<content type='text'>
and also by the inability of content_video_to_dcp to return
negative values.  The latter is necessary for tests on "is this
content too early" to work.
</content>
</entry>
</feed>
