<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/ffmpeg.cc, branch 2252-multi-stream</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=2252-multi-stream</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=2252-multi-stream'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2025-12-29T16:31:35Z</updated>
<entry>
<title>wip: hacks</title>
<updated>2025-12-29T16:31:35Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-27T20:22:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=6edac68a2309b213ee2c83c3d917d005210d5124'/>
<id>urn:sha1:6edac68a2309b213ee2c83c3d917d005210d5124</id>
<content type='text'>
</content>
</entry>
<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>Remove compose.hpp includes.</title>
<updated>2025-07-10T18:50:32Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-07-09T20:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=bad01065584014aee4024e7cbc4a66acac7617e1'/>
<id>urn:sha1:bad01065584014aee4024e7cbc4a66acac7617e1</id>
<content type='text'>
sed -i "/include.*compose.hpp/d;" src/lib/*.cc src/wx/*.cc src/wx/*.h src/tools/*.cc src/lib/*.h test/*.cc
</content>
</entry>
<entry>
<title>Replace String::compose with fmt.</title>
<updated>2025-07-10T18:50:32Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-07-09T20:53:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=62c34b28567a097e8f22576e7d7891bd3dbe0ac0'/>
<id>urn:sha1:62c34b28567a097e8f22576e7d7891bd3dbe0ac0</id>
<content type='text'>
sed -i "/Plural-Forms/n;/%100/n;/scanf/n;s/%[123456789]/{}/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc src/lib/po/*.po src/wx/po/*.po src/tools/po/*.po test/*.cc
sed -i "s/String::compose */fmt::format/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc test/*.cc
</content>
</entry>
<entry>
<title>Remove some unused includes.</title>
<updated>2025-01-05T11:58:13Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-01-02T22:58:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=2970a579fa3e3f980f8a9d0cfea44b93ca05602a'/>
<id>urn:sha1:2970a579fa3e3f980f8a9d0cfea44b93ca05602a</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>Don't use video streams with AV_DISPOSITION_ATTACHED_PIC (#2349).</title>
<updated>2024-01-05T16:09:05Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-01-04T22:58:56Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5b27df19b23123995f812ed5624410d2d939223a'/>
<id>urn:sha1:5b27df19b23123995f812ed5624410d2d939223a</id>
<content type='text'>
These are seen in MP3 files for cover art.
</content>
</entry>
<entry>
<title>Cleanup: longer variable name.</title>
<updated>2024-01-04T22:56:04Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2024-01-04T22:56:04Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=1b8deeaaaeb80b64bed4e61f05086a3326c104e1'/>
<id>urn:sha1:1b8deeaaaeb80b64bed4e61f05086a3326c104e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Setup ffmpeg log callback in dcpomatic_setup() instead of in FFmpeg.</title>
<updated>2023-03-03T00:17:41Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2023-02-23T22:35:40Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=69957d093fd1cb798449271e6212cd86321d5528'/>
<id>urn:sha1:69957d093fd1cb798449271e6212cd86321d5528</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Return AVERROR_EOF from the avio_read method when appropriate.</title>
<updated>2022-11-25T23:09:27Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-01T18:11:40Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=bc6fd8c020ad27c86c463876f76c8add042cb660'/>
<id>urn:sha1:bc6fd8c020ad27c86c463876f76c8add042cb660</id>
<content type='text'>
</content>
</entry>
</feed>
