<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dcpomatic/src/lib/ffmpeg_decoder.cc, 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>Make FrameRateChange data private.</title>
<updated>2026-04-08T18:42:37Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-04-08T18:42:37Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=41b5c9b56a1ef4ac9119c11f166931936632ae0c'/>
<id>urn:sha1:41b5c9b56a1ef4ac9119c11f166931936632ae0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use dts rather than pts when noting the time of frames we are ignoring.</title>
<updated>2026-03-12T00:24:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-03-12T00:02:51Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=4285ff59480d526161905ecdc5fc05b57be7ed58'/>
<id>urn:sha1:4285ff59480d526161905ecdc5fc05b57be7ed58</id>
<content type='text'>
The docs for av_read_frame() say
"pkt-&gt;pts can be AV_NOPTS_VALUE if the video format has B-frames, so it
is better to rely on pkt-&gt;dts if you do not decompress the payload."

Before this there could be long hangs while we go through many packets
without pts values.
</content>
</entry>
<entry>
<title>Add a debug note.</title>
<updated>2026-03-12T00:24:06Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2026-03-12T00:02:18Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=ef526ea3d6d6196f0e38ac9770504877388fc47a'/>
<id>urn:sha1:ef526ea3d6d6196f0e38ac9770504877388fc47a</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>Fix error when seeking a file with no video and &gt;1 audio stream (#3128).</title>
<updated>2025-12-14T23:20:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-12-12T10:43:45Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=52b3eee4e7285e26469b2a5f4d9d9eac20aba387'/>
<id>urn:sha1:52b3eee4e7285e26469b2a5f4d9d9eac20aba387</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Try AVSEEK_FLAG_ANY if _BACKWARD fails.</title>
<updated>2025-12-08T19:50:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-12-07T01:17:34Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=9bd8b3304f35f0b27bf18f2167302f1fd5d3f92b'/>
<id>urn:sha1:9bd8b3304f35f0b27bf18f2167302f1fd5d3f92b</id>
<content type='text'>
We usually want to do _BACKWARD as this should seek to the keyframe
before the seek position.  On some files this fails, and then it
seems that _ANY is a good next thing to try.
</content>
</entry>
<entry>
<title>Clarify and improve decoder/player/butler logging a bit.</title>
<updated>2025-12-06T10:12:31Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-12-06T10:11:47Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=5029bf180a8b29c8e9f1aeef1c398b05e01eb663'/>
<id>urn:sha1:5029bf180a8b29c8e9f1aeef1c398b05e01eb663</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Cleanup: can now remove the _NC log variants.</title>
<updated>2025-12-05T20:36:53Z</updated>
<author>
<name>Carl Hetherington</name>
<email>cth@carlh.net</email>
</author>
<published>2025-12-05T20:36:53Z</published>
<link rel='alternate' type='text/html' href='https://git.carlh.net/cgit/dcpomatic/commit/?id=59e358ae25f84314afc6d8235aecaec124822f3f'/>
<id>urn:sha1:59e358ae25f84314afc6d8235aecaec124822f3f</id>
<content type='text'>
</content>
</entry>
</feed>
