<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.cc, branch v2.17.5</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.17.5</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.17.5'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2023-02-10T22:07:19Z</updated>
<entry>
<title>Change how video timing is done.</title>
<updated>2023-02-10T22:07:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-09-29T08:17:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c4b409be0183508431e7ddbe4ad9bafe1f78a88e'/>
<id>urn:sha1:c4b409be0183508431e7ddbe4ad9bafe1f78a88e</id>
<content type='text'>
This commit changes the approach with video timing.  Previously,
we would (more-or-less) try to use every video frame from the content
in the output, hoping that they come at a constant frame rate.

This is not always the case, however.  Here we preserve the PTS
of video frames, and then when one arrives we output whatever
DCP video frames we can (at the regular DCP frame rate).

Hopefully this will solve a range of sync problems, but it
could also introduce new ones.
</content>
</entry>
<entry>
<title>Handle 2D/3D mismatches in the player (#2409).</title>
<updated>2023-02-01T00:12:38Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-01-11T22:00:25Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2f12058c535045cecc226fe47b3d60da8851a862'/>
<id>urn:sha1:2f12058c535045cecc226fe47b3d60da8851a862</id>
<content type='text'>
Previously if there was 2D content in a 3D project (or vice versa)
the player would emit the video anyway and the encoder would have
to deal with it.

Since previously the FFmpeg encoder did not deal with this quite
right, it seems to make sense to move the logic into the player
so that neither encoder has to worry about it.
</content>
</entry>
<entry>
<title>Fix build on Ubuntu 16.04.</title>
<updated>2022-12-15T15:39:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-12-15T15:39:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=192ba9fe562ccda0b888bf0d3c8f71d4c67be309'/>
<id>urn:sha1:192ba9fe562ccda0b888bf0d3c8f71d4c67be309</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move some methods out of util.{cc,h}</title>
<updated>2022-12-10T00:16:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-12-10T00:08:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=02b74112721d13a27b0bbaece714d5c8ea743d43'/>
<id>urn:sha1:02b74112721d13a27b0bbaece714d5c8ea743d43</id>
<content type='text'>
</content>
</entry>
<entry>
<title>_stream_states must be reset on seek otherwise #2368.</title>
<updated>2022-11-25T22:42:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-11-20T21:03:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9e49b5f78d1150f75a6016b4f01e2645a7c023b0'/>
<id>urn:sha1:9e49b5f78d1150f75a6016b4f01e2645a7c023b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix sound corruption with multiple sound files (#2368).</title>
<updated>2022-11-25T22:42:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-11-19T16:16:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=7d0cd227fa8cf13b04504af22301521dc231c0c7'/>
<id>urn:sha1:7d0cd227fa8cf13b04504af22301521dc231c0c7</id>
<content type='text'>
last_push_end would be initialised to the position of the content,
meaning that content at (for example) 60s into the project would
be treated as the leader, and content much earlier would then be
considered finished by the code which checks ignore_streams_behind
(as its last push was more then 5s before the leader).

This caused audio corruption, shown up by the test here.
</content>
</entry>
<entry>
<title>Cleanup: better variable name.</title>
<updated>2022-11-06T22:45:40Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-09-06T18:50:24Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=20da60db1c5a388629b054ed6e1b143decbbd5de'/>
<id>urn:sha1:20da60db1c5a388629b054ed6e1b143decbbd5de</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow move construction of Player.</title>
<updated>2022-10-26T17:41:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-26T17:41:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1a43dcc9b0d4c40cb8a19f2ff475c67ace4ef6a2'/>
<id>urn:sha1:1a43dcc9b0d4c40cb8a19f2ff475c67ace4ef6a2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make the _film member of Player a weak_ptr.</title>
<updated>2022-10-16T22:10:59Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-15T21:04:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=053bf81d7ef24843cc2eea62e24c2296fed48950'/>
<id>urn:sha1:053bf81d7ef24843cc2eea62e24c2296fed48950</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add some missing change signals in the Player.</title>
<updated>2022-10-14T10:55:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-14T09:19:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a246aa2400e419500e364ae684bdcc419c08f56a'/>
<id>urn:sha1:a246aa2400e419500e364ae684bdcc419c08f56a</id>
<content type='text'>
</content>
</entry>
</feed>
