<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/ffmpeg_examiner.h, 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>2025-10-15T20:33:26Z</updated>
<entry>
<title>Disable use of stream IDs if there are duplicates, rather than rewriting.</title>
<updated>2025-10-15T20:33:26Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-10-14T15:02:15Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2d8d05c2e7ad67ebac2ff250670a219a891d09ca'/>
<id>urn:sha1:2d8d05c2e7ad67ebac2ff250670a219a891d09ca</id>
<content type='text'>
It turns out that FFmpeg decoders (e.g. flv, see FFmpeg
25faaa311a74efdfdc4fed56996d7338ed807488) check stream IDs and sometimes
create new streams if they see one that they didn't see before.  If we
change stream IDs we break this.

Here we try to use stream indices in cases where the IDs are duplicated.
We also account for the case where a new stream appears during
examination. This wasn't covered by tests until the FFmpeg commit
mentioned above, were the flv decoder creates a new stream during
examination of boon_telly.mkv.
</content>
</entry>
<entry>
<title>White space: ffpmeg_examiner.{cc,h}</title>
<updated>2025-10-15T20:33:26Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-10-08T18:09:31Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=7254d43d8283b82d4d100e78bd3fd8026e5e68ed'/>
<id>urn:sha1:7254d43d8283b82d4d100e78bd3fd8026e5e68ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add has_alpha() flag to VideoContent.</title>
<updated>2025-04-12T09:32:55Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-04-12T09:32:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=3dcabe8d9c7d82f6be4790fd68db62188ce64710'/>
<id>urn:sha1:3dcabe8d9c7d82f6be4790fd68db62188ce64710</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Needing length is the same for audio and video, so merge them.</title>
<updated>2024-11-01T00:40:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-10-28T00:36:55Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=8edadeea58faf5c075296df1f605407797e9a25a'/>
<id>urn:sha1:8edadeea58faf5c075296df1f605407797e9a25a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Obtain audio length by scanning through the file if required (#2880).</title>
<updated>2024-11-01T00:40:30Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-10-19T19:29:54Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=738ced15ead0f029cf2becf9b77d7adf37e733e3'/>
<id>urn:sha1:738ced15ead0f029cf2becf9b77d7adf37e733e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Cleanup: initialise a few members in-place.</title>
<updated>2024-10-19T18:32:56Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-10-19T18:32:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=027dc03440ff0714b541b810264efa8722c87f39'/>
<id>urn:sha1:027dc03440ff0714b541b810264efa8722c87f39</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tidy up and fix obtaining video length when it's not in the header.</title>
<updated>2024-10-19T18:20:00Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-10-19T18:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=904538721cf2b69bb8d80059d13ae20e4f256fce'/>
<id>urn:sha1:904538721cf2b69bb8d80059d13ae20e4f256fce</id>
<content type='text'>
I think this has been broken for a while as we would come out of the
loop even if we still wanted to find the video length.
</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>Add FFmpegExaminer::has_alpha().</title>
<updated>2023-12-12T14:03:23Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-12-10T15:20:20Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9e142b4410f9b1c703f3f12ced07c45dc2a0db24'/>
<id>urn:sha1:9e142b4410f9b1c703f3f12ced07c45dc2a0db24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More missing override labels.</title>
<updated>2022-04-08T12:29:01Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-08T12:29:01Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=46bf867be1f4ec6b88c4fcb3f96e5e51e87013e6'/>
<id>urn:sha1:46bf867be1f4ec6b88c4fcb3f96e5e51e87013e6</id>
<content type='text'>
</content>
</entry>
</feed>
