Dependent frames are part of the same Matroska block as the
previous regular frame. The old code assumed there was only a single
AC-3 frame in a Matroska block, though. For files containing dependent
frames, this meant:
• Only the first AC-3 frame's dialog normalization gain was
overwritten.
• Only the last AC-3 frame's second checksum was updated.
Additionally mkvmerge assumed wrongfully that E-AC-3 frames contain
two CRCs just like regular AC-3 frames do whereas E-AC-3 frames only
contain a CRC at the end of the frame, not at the start.
The result was:
• Mixed dialog normalization gain levels
• The first and last AC-3 frames were invalid as their header
data (first frame) respectively their checksum (last frame) was
wrong.
Fixes#2386.
There's a new option called `--chapter-sync …` that behaves just like
`--sync -2:…`. Both can be used to adjust the timestamps of chapters
read from containers (such as Matroska or MP4 files) and chapter
files (both the XML format and the Ogg comment style format).
Part of the implementation of #2358.
zapcc seems to have problems (linker errors) sometimes if pre-compiled
headers are enabled. The home page even says they're not supported. So
simply disable them.
ccache and certain versions of zapcc don't seem to be playing well
together. As zapcc's servers do the caching already, disable ccache if
compiling with zapcc.
The function determining the default user interface font was leaking
font resources on Windows. This in itself isn't a huge
problem. However, the function determining the sidebar's font size is
called rather often, and that one calls the "default UI font"
function.
The result was memory exhaustion regarding font resources, a general
slowdown not only of MKVToolNix GUI but also other Windows
applications and subsequently a crash of MKVToolNix GUI.
Fixes#2372.