<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/player_video.cc, branch processor</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=processor</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=processor'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2025-09-23T07:14:10Z</updated>
<entry>
<title>Return quite close to original approach for "no colour conversion".</title>
<updated>2025-09-23T07:14:10Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-09-19T09:41:03Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=aac6fad8adad9020e6a82140085091fdef2873cf'/>
<id>urn:sha1:aac6fad8adad9020e6a82140085091fdef2873cf</id>
<content type='text'>
There's a few things going on here:

1. Improve the regression test for 3042.  Previously we made a DCP from
the reporter's _original_ prores file (before they converted it to XYZ)
and compared the result to a reference J2K file of uncertain origin.

This seems wrong because:
a) We never got confirmation from the reporter that the fix worked for
them, so any arbitrary reference is dubious.
b) It doesn't seem to reflect their actual complaint, which was that
they got a different result when making a DCP from XYZ TIFFs compared
to their "XYZ" Prores.

The new test makes a DCP from their TIFFs and "XYZ" Prores and compares
the result.

2. Revert to the old approach to "no conversion" handling.  In the good
old days we did everything -&gt; RGB48LE except XYZ12LE -&gt; XYZ12LE, and
that's what we do again here.

3. Change the YUV-&gt;RGB conversion from Rec.601 to Rec.709 for the
"no conversion" case.  This fixes the 3042 regression test.

The supposed "XYZ" Prores is yuv444p12le according to ffprobe.  So I
think what we have here is actually a file that was converted to XYZ
and then back to YUV by Resolve.  I experimented with using the raw
YUV values and considering them as XYZ but this was clearly wrong.

I think 3 is probably what I should have done in the first place.
</content>
</entry>
<entry>
<title>Replace AVPixelFormat parameter to PlayerVideo::image with a functor.</title>
<updated>2025-08-12T15:16:07Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-07-21T22:18:32Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9b73c143ce568bd8694e3a50f2fefc1ee3a03515'/>
<id>urn:sha1:9b73c143ce568bd8694e3a50f2fefc1ee3a03515</id>
<content type='text'>
This was removed in df9b4676aba8b941f124b174393988cad21677e1 and
surrounding commits, but it turns out we need it after all.
</content>
</entry>
<entry>
<title>White space: player_video.{cc,h} reel_writer.{cc,h} maths_util.{cc,h} upmixer_{a,b}.{cc,h} upload_job.{cc,h}</title>
<updated>2025-07-01T18:17:25Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-07-01T18:17:25Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ad27397a050b8ea43dad62b0b85be26166b56b7c'/>
<id>urn:sha1:ad27397a050b8ea43dad62b0b85be26166b56b7c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove functors for choosing pixel format output from make_image().</title>
<updated>2025-05-26T19:51:18Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-05-25T20:16:19Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=df9b4676aba8b941f124b174393988cad21677e1'/>
<id>urn:sha1:df9b4676aba8b941f124b174393988cad21677e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bump libdcp for raw_convert changes.</title>
<updated>2025-01-05T11:58:13Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-12-30T14:43:14Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=b03f2277a205ff7e7cdaa12c6e52322ea474a7af'/>
<id>urn:sha1:b03f2277a205ff7e7cdaa12c6e52322ea474a7af</id>
<content type='text'>
raw_convert&lt;string&gt; is gone, so here we use fmt::{to_string,format} instead.
Other raw_converts now use fast_float.
</content>
</entry>
<entry>
<title>Remove all use of add_child() from xmlpp.</title>
<updated>2024-03-20T17:25:09Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-02-06T09:58:39Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=0e5013e1a96af81e4b501ff0c3192c10a061a2c8'/>
<id>urn:sha1:0e5013e1a96af81e4b501ff0c3192c10a061a2c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'v2.16.78' into v2.17.x</title>
<updated>2024-02-22T00:25:03Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-02-22T00:25:03Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=a45f6245e8cc785fab436c9282fa3d1baf3a8575'/>
<id>urn:sha1:a45f6245e8cc785fab436c9282fa3d1baf3a8575</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make DCPExaminer::size() optional and deal with the consequences.</title>
<updated>2024-02-21T17:48:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-02-21T09:47:38Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3ffd0163026be24e5373e0674c3301ed37546e44'/>
<id>urn:sha1:3ffd0163026be24e5373e0674c3301ed37546e44</id>
<content type='text'>
This means we can fix the case of a VF having no known size in a nice way,
in turn fixing problems caused by the fix to #2775.
</content>
</entry>
<entry>
<title>Change how video timing is done.</title>
<updated>2024-01-28T01:01:56Z</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=895143459866dcb373c93b8e674d1344a129a6df'/>
<id>urn:sha1:895143459866dcb373c93b8e674d1344a129a6df</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>Cleanup: remove unused parameter to PlayerVideo::force.</title>
<updated>2022-04-07T20:13:11Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-03T22:42:57Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4f9314a311de379b105741273a15821da62a75cc'/>
<id>urn:sha1:4f9314a311de379b105741273a15821da62a75cc</id>
<content type='text'>
</content>
</entry>
</feed>
