<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/image_decoder.cc, branch main</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=main</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2024-02-22T00:25:03Z</updated>
<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>Extract constants.h</title>
<updated>2022-12-09T23:47:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-12-09T23:47:30Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=da38c8a0156808595be0aae1b1490069a663fb78'/>
<id>urn:sha1:da38c8a0156808595be0aae1b1490069a663fb78</id>
<content type='text'>
</content>
</entry>
<entry>
<title>C++11 and whitespace cleanups.</title>
<updated>2022-04-03T21:25:19Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-02T22:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f'/>
<id>urn:sha1:d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move video level conversion for RGB from FFmpegImageProxy to Image.</title>
<updated>2021-05-25T19:35:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-05-24T22:57:16Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=62f9b78a2eb5f0fc6b9028264bac6ad501d83309'/>
<id>urn:sha1:62f9b78a2eb5f0fc6b9028264bac6ad501d83309</id>
<content type='text'>
Since FFmpeg does not do video level conversion for RGB sources
when we (sort of) ask it to in Image::crop_scale_window() it seems
to make more sense to compensate for that by calling
full_to_video_range() in the same place (rather than in
FFmpegImageProxy).
</content>
</entry>
<entry>
<title>C++11 tidying.</title>
<updated>2021-04-29T18:53:49Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-04-29T07:14:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=39fb8198febde1937019db1c300ec363aab5aa56'/>
<id>urn:sha1:39fb8198febde1937019db1c300ec363aab5aa56</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c++11 tidying.</title>
<updated>2021-01-22T22:51:40Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-22T22:50:58Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e52d9526f0a49acb72e8b4aa980399b119171ba5'/>
<id>urn:sha1:e52d9526f0a49acb72e8b4aa980399b119171ba5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std::shared_ptr</title>
<updated>2021-01-07T21:48:29Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2021-01-04T20:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=dd9be86db6cde0afa5da0d1d1ac43b42e05dca26'/>
<id>urn:sha1:dd9be86db6cde0afa5da0d1d1ac43b42e05dca26</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Obey requests to change the video range of RGB content.</title>
<updated>2020-11-16T00:40:36Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2020-11-08T21:34:18Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e64a1a9aae0200d14feed49a4c6cf537bf5708a4'/>
<id>urn:sha1:e64a1a9aae0200d14feed49a4c6cf537bf5708a4</id>
<content type='text'>
Video that comes in with RGB pixels will not have its video level
ranges changed by libswscale (it only does this for YUV and greyscale).
Here we add code to do it ourselves for RGB content coming in
via image files (e.g. PNG/DPX etc).  Part of #1851.
</content>
</entry>
</feed>
