<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/shuffler.cc, branch v2.12.2</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.12.2</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.12.2'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-02-23T00:57:04Z</updated>
<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>Remove some debugging code.</title>
<updated>2018-02-02T09:57:29Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-02-02T09:57:29Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5e0a4699d50931aafaca2801fa8b010549ab3abc'/>
<id>urn:sha1:5e0a4699d50931aafaca2801fa8b010549ab3abc</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>
</feed>
