<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player.h, branch encrypt-atmos</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=encrypt-atmos</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=encrypt-atmos'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2020-06-19T11:42:24Z</updated>
<entry>
<title>Make Atmos content work more like other content.  Now its MXFs</title>
<updated>2020-06-19T11:42:24Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-06-19T11:30:02Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a0c931b6bfb05b56996a75bbfcf378cd44ef18e1'/>
<id>urn:sha1:a0c931b6bfb05b56996a75bbfcf378cd44ef18e1</id>
<content type='text'>
are re-written, meaning that they can be encrypted.

This commit is mostly just for the backend.  We also need a fair
few checks/restrictions in the UI:

- any present atmos content dictates the project frame rate
- no mixed edit rates of atmos content
- probably some other things I haven't thought of
</content>
</entry>
<entry>
<title>Change video content scaling so that it either:</title>
<updated>2020-05-11T20:02:49Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-05-09T23:57:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=15a83d720780d58f905d40f8493cdcb86596eaee'/>
<id>urn:sha1:15a83d720780d58f905d40f8493cdcb86596eaee</id>
<content type='text'>
1. scales the content up to fit the DCP container,
preserving aspect ratio, or
2. stretches the content to a custom aspect ratio, or
3. scales the content to some custom size.
</content>
</entry>
<entry>
<title>Nicer fix for 86102d30bf0aad89115bbeb3d8aaa2a27a0aa432</title>
<updated>2020-04-23T13:48:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-23T13:48:19Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=990f879d9af6300068af44c431b1a8e158e7f7a0'/>
<id>urn:sha1:990f879d9af6300068af44c431b1a8e158e7f7a0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add accessor for _playlist.</title>
<updated>2020-04-23T13:00:56Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-23T13:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4b7185e4eda53534c4d71a1f31ba33ca3dd8dc8d'/>
<id>urn:sha1:4b7185e4eda53534c4d71a1f31ba33ca3dd8dc8d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix complete failure of preview/playback introduced in</title>
<updated>2020-04-22T23:40:56Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-22T23:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=86102d30bf0aad89115bbeb3d8aaa2a27a0aa432'/>
<id>urn:sha1:86102d30bf0aad89115bbeb3d8aaa2a27a0aa432</id>
<content type='text'>
4219d4b76c5cd5690b1f4fa0c248d93ced26d05a.
</content>
</entry>
<entry>
<title>Fix length of player output so it can be either the film's length or playlist's length, as appropriate.</title>
<updated>2020-04-15T14:17:01Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-04-15T14:17:01Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4219d4b76c5cd5690b1f4fa0c248d93ced26d05a'/>
<id>urn:sha1:4219d4b76c5cd5690b1f4fa0c248d93ced26d05a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Missing #include for previous.</title>
<updated>2020-01-28T22:49:07Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-01-28T22:49:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=05f2028ec1280a98050dc22609879230337a35ef'/>
<id>urn:sha1:05f2028ec1280a98050dc22609879230337a35ef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix deadlock during content examination.</title>
<updated>2020-01-28T22:23:47Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-01-28T22:23:47Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=df48c75c38dd788835a93540aea243a2dac4bb10'/>
<id>urn:sha1:df48c75c38dd788835a93540aea243a2dac4bb10</id>
<content type='text'>
Before this fix, the following situation could happen in threads
A and B:

A: Some DONE signal happens; this triggers setup_pieces which
   takes a lock on the player mutex.

B: FFmpegContent::examine takes a lock on the content mutex.
B: FFmpegContent::examine adds a stream
B: That causes STREAMS PENDING to be emitted.
B: This tries to take a lock on the player mutex so it can update _suspended

A: setup_pieces tries to access some content information, hence
   tries to take a lock on the content mutex.

Now B is holding the CL and awaiting the PL and A is holding
the PL and awaiting the CL.

It feels like the root cause of this is that while setup_pieces
is happening another change (which would itself cause setup_pieces)
is announced, and this isn't dealt with properly.

There are two steps here; _suspended is protected with an atomic
rather than using _mutex, and also it can cope with being updated
recursively.
</content>
</entry>
<entry>
<title>Cache film length for Player::pass.</title>
<updated>2020-01-25T00:47:00Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2019-07-23T21:55:15Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=af0edaf7dcd36c367cb585c98e8413c5347a7386'/>
<id>urn:sha1:af0edaf7dcd36c367cb585c98e8413c5347a7386</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix failure to load OV after adding a VF to a project.</title>
<updated>2019-10-13T21:47:17Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2019-10-13T21:47:17Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=7c73ec405fdb55bd78d82d764999b5af6d81e973'/>
<id>urn:sha1:7c73ec405fdb55bd78d82d764999b5af6d81e973</id>
<content type='text'>
This has the same cause as
19f51503621a57794bd79bac053c9e6549a69f46
i.e. the DCPDecoder re-use optimisation.  This commit tries to
re-fix 19f515 in a more general way which also takes into account
the OV/VF bug.  It also adds a unit test.
</content>
</entry>
</feed>
