<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.cc, branch v2.13.44</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=v2.13.44</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=v2.13.44'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2018-08-20T11:00:53Z</updated>
<entry>
<title>MIssing PENDING/CANCELLED for VIDEO_CONTAINER_SIZE.  Fix 3D fill with 2D sources.</title>
<updated>2018-08-20T11:00:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-20T11:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2c0d0c5230addee44dc2cebd08d4f832550a3d6c'/>
<id>urn:sha1:2c0d0c5230addee44dc2cebd08d4f832550a3d6c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Similar pending/done for Film::Change.</title>
<updated>2018-08-19T12:55:46Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-19T12:55:46Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4408e6eea87ce9630e71e4a7d40e2dade091b0ee'/>
<id>urn:sha1:4408e6eea87ce9630e71e4a7d40e2dade091b0ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace May/Done/NotDone signal sets with one signal and extend</title>
<updated>2018-08-19T00:29:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-19T00:04:59Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6c7489e5d778d3e71065d88a094a7383ba2c117d'/>
<id>urn:sha1:6c7489e5d778d3e71065d88a094a7383ba2c117d</id>
<content type='text'>
this treatment to anything that caused Player::setup_pieces.  This should
fix out-of-sequence Player emissions caused by setup_pieces being called
by one thread while the butler is calling pass().
</content>
</entry>
<entry>
<title>Suspend butler on player may-change as otherwise there's a window</title>
<updated>2018-08-19T00:29:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-18T21:49:46Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9a27d60ea7888d300a5a2414a477091428589b82'/>
<id>urn:sha1:9a27d60ea7888d300a5a2414a477091428589b82</id>
<content type='text'>
between Player::_suspended being set to false and the the butler
requesting a seek, during which the butler may call pass().
</content>
</entry>
<entry>
<title>More fixes for errors / crashes / misbehaviour with content changes</title>
<updated>2018-08-13T23:05:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-13T16:37:52Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1fe6bd7f8ba059322b8357b2210f0fd590567ce2'/>
<id>urn:sha1:1fe6bd7f8ba059322b8357b2210f0fd590567ce2</id>
<content type='text'>
and the butler.

Here we signal both before and after a change in content.  Before,
the player disables itself so that any pass()/seek() will be no-ops.
After, the player rebuilds its pieces and the butler re-seeks to
get back to where it was before the change.
</content>
</entry>
<entry>
<title>Use more direct route to fix hangs after calling some Player methods.</title>
<updated>2018-08-10T13:50:45Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-10T13:50:45Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6b9bda07984837d188064f3f5514d0aa132655ec'/>
<id>urn:sha1:6b9bda07984837d188064f3f5514d0aa132655ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Try to fix Windows build.</title>
<updated>2018-08-10T01:28:10Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-10T01:28:10Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c9a97108df1d609bd13df8a21bee11d7ca55feea'/>
<id>urn:sha1:c9a97108df1d609bd13df8a21bee11d7ca55feea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add some Changed() emissions so that when a butler is in control</title>
<updated>2018-08-10T01:13:51Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-10T01:12:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=672b6dd3356d4cbf8703777538d396dbb868b96d'/>
<id>urn:sha1:672b6dd3356d4cbf8703777538d396dbb868b96d</id>
<content type='text'>
we always do a seek when we set _have_valid_pieces to false.
</content>
</entry>
<entry>
<title>Fix writer assertion at the end of some 3D encodes; one too many fill frames were being emitted.</title>
<updated>2018-08-09T21:31:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-09T21:28:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=fcab3e1bf6c6f05ca714eb9e337ff50f13fff6a6'/>
<id>urn:sha1:fcab3e1bf6c6f05ca714eb9e337ff50f13fff6a6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rather dubious fix for crash due to the sequence:</title>
<updated>2018-08-09T21:31:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2018-08-08T22:59:26Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=33c42a2c411d7518d0db5dbe338d0b42192c2730'/>
<id>urn:sha1:33c42a2c411d7518d0db5dbe338d0b42192c2730</id>
<content type='text'>
  - playlist change
  - _have_valid_pieces -&gt; false
  - signal butler
  - but meanwhile, pass happens which calls setup_pieces and starts emitting
    data from time 0
  - this new data is not in sync with what's already in the audio ring buffers
</content>
</entry>
</feed>
