<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/ffmpeg_decoder.h, branch win-fix</title>
<subtitle>DCP-o-matic DCP tools</subtitle>
<id>https://git.carlh.net/cgit/dcpomatic/atom?h=win-fix</id>
<link rel='self' href='https://git.carlh.net/cgit/dcpomatic/atom?h=win-fix'/>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/'/>
<updated>2026-04-23T14:49:48Z</updated>
<entry>
<title>Fix late subtitles when they are muxed late with respect to the video.</title>
<updated>2026-04-23T14:49:48Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-04-18T11:39:33Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9f828b327e680c322a70883910233337a37e481e'/>
<id>urn:sha1:9f828b327e680c322a70883910233337a37e481e</id>
<content type='text'>
In one example we have the sequence

video 3088,377
sub   3087,334
sub   3088,710
video 3088,419

so the 3087,334 sub is very late.  Here we insert a queue to bring
subtitle packets a little forward for processing.

There is already a similar thing in the player (_delay) but adding
a longer delay there seems wasteful because a) the video is by
that point already decompressed and b) this problem only
applies to FFmpeg-decoded files (and then, I think only if we are
previewing or burning in subtitles).
</content>
</entry>
<entry>
<title>White space: ffmpeg_decoder.{cc,h}</title>
<updated>2026-04-21T19:33:27Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-04-21T19:33:27Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=f40d22711523e038e311180471a1ced796982004'/>
<id>urn:sha1:f40d22711523e038e311180471a1ced796982004</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Handle FFmpeg content with only subtitles enabled better.</title>
<updated>2026-02-21T01:37:42Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-02-21T01:37:42Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=c2adc362e4ce0a64d7e7a1c6b634b024d862c8c1'/>
<id>urn:sha1:c2adc362e4ce0a64d7e7a1c6b634b024d862c8c1</id>
<content type='text'>
Previously if some FFmpeg content was set to use only its subtitles, and
the first subtitle was 1 minute in to the content, the content would be
selected for pass() until its first minute had been scanned.

This could be slow, and incorrect as on the way to this 1 minute we want
to look at other content.

Here we store the PTS of dropped packets to use as a fallback position
when there is no video or audio enabled.
</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>Improve flushing behaviour when there is a lot of space to fill (#2364).</title>
<updated>2022-11-15T21:42:43Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-11-14T23:44:37Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d42bc731c125170efb1bb7b8c9f990a3e9fa5b57'/>
<id>urn:sha1:d42bc731c125170efb1bb7b8c9f990a3e9fa5b57</id>
<content type='text'>
Previously a call to flush() could result in a lot of audio being
emitted from the decoder (if there is a big gap between the end
of the audio and the video).  This would end up being emitted in
one chunk from the player, crashing the audio analyser with an OOM
in some cases.
</content>
</entry>
<entry>
<title>Extract VideoFilterGraphSet.</title>
<updated>2022-10-18T18:25:57Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-06T21:38:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=bdbec5b501af2c020dd783eb8b0b8c18c34b6552'/>
<id>urn:sha1:bdbec5b501af2c020dd783eb8b0b8c18c34b6552</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove believed-unnecessary mutex.</title>
<updated>2022-10-18T18:25:57Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-06T21:37:50Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=b65d616d5e187ca2153f5f9390dd8ad16d7da30e'/>
<id>urn:sha1:b65d616d5e187ca2153f5f9390dd8ad16d7da30e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix checking of frame channels vs stream channels.</title>
<updated>2022-10-01T10:04:12Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-10-01T10:04:12Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=dba7e1137282b52a1bd6ad1d56fe6371a8c97e30'/>
<id>urn:sha1:dba7e1137282b52a1bd6ad1d56fe6371a8c97e30</id>
<content type='text'>
The comment says that we're handling differences between channel
counts in the frame and stream but the code wasn't doing that.
</content>
</entry>
<entry>
<title>Handle multiple bitmap subtitles at the same time correctly (#2239).</title>
<updated>2022-04-28T12:00:07Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-28T12:00:07Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=e06941199da90359f41ce80c276752bc0f172d7e'/>
<id>urn:sha1:e06941199da90359f41ce80c276752bc0f172d7e</id>
<content type='text'>
Previously if there were two images at the same time we would start
them both, then the stop time would be set in the second one but
not the first.  This meant that the first one would hang around
forever.
</content>
</entry>
<entry>
<title>Tidying.</title>
<updated>2022-04-28T11:48:29Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2022-04-28T11:48:29Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=d52426b1e69f8af2f7d33022ed4e173a8c876afc'/>
<id>urn:sha1:d52426b1e69f8af2f7d33022ed4e173a8c876afc</id>
<content type='text'>
</content>
</entry>
</feed>
