MKVToolNix v42.0.0 relesaed

Hey everyone,

I sincerely hope y’all have had a good start into the new year and are sufficiently recovered from whatever you’ve done over the last couple of days. I’ve been busy fixing up release v42 of MKVToolNix. Yeah, I’m that boring :)

In this release a lot of source code changed under the hood as I replaced two external libraries (Boost’s “optional” and “regex” libraries) with ones from the C++ Standard Library. I tested extensively, but it’s quite possible there are bugs lurking due to those changes. If you find one, please file a bug on Gitlab as usual. Thanks!

Apart from that there were many, many changes; see below for the list.

Dear package maintainers: apart from the aforementioned library changes (Boost’s “optional” and “regex” are no longer used, they’ve been replaced with “std::optional” and “std::regex”) four new translations of man pages have been added. The required compiler versions haven’t changed, though: gcc ≥ 7 and clang ≥ 4 should work fine. Please adjust your packaging instructions accordingly.

And now for the usual boilerplate:

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available over the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • mkvmerge: added an option for creating byte-identical files:
    --deterministic <seed>. Part of the implementation of #2698.
  • mkvmerge: Matroska reader: mkvmerge will remove the icpf atom headers if
    they’re present in frames read from Matroska files. Implements #2692.
  • mkvmerge: MP4 reader: ALAC tracks: the number of channels, sampling
    frequency and bit depth are now taken from the bitstream in order to fix
    bogus values on the container level. Implements #2714.
  • mkvpropedit: when changing track UIDs the referring elements in existing
    chapters & tags will be updated automatically, too. Part of the
    implementation of #2700.
  • mkvinfo: when the option -p/--hex-positions is used, element positions
    will be output regardless of the verbosity level. Part of the implementation
    of #2713.
  • mkvinfo: added the option -P/--positions for showing the position of
    each element in decimal regardless of the verbosity level used. Part of the
    implementation of #2713.
  • mkvinfo: added the option -o/--continue for continuing processing when
    the first cluster is encountered regardless of the verbosity level
    used. Part of the implementation of #2713.
  • mkvinfo: added the option -a/--all for outputting all sub-elements (even
    cues & seek head entries) and not stopping at the first cluster regardless
    of the verbosity level used. Part of the implementation of #2713.
  • MKVToolNix GUI: multiplexer: added an option in the preferences for
    disabling adding cover images from Blu-ray discs. Implements #2693.
  • MKVToolNix GUI: multiplexer: added mkvmerge’s new --deterministic option
    in the "additional command-line options" dialog. Part of the implementation
    of #2698.
  • MKVToolNix GUI: header editor:: when changing track UIDs the referring
    elements in existing chapters & tags will be updated automatically,
    too. Part of the implementation of #2700.

Bug fixes

  • mkvmerge: HEVC ES parser: fixed a bug in the slice parser calculating the
    size of a field which in turn could have led to the slice’s type being read
    wrong. Patch by Torsten Hauska. Fixes #2710.
  • mkvmerge: Matroska reader: fixed a segmentation fault when trying to read a
    file that uses header removal compression but no removed bytes are present
    in the track headers. Fixes #2687.
  • mkvmerge: MPEG elementary stream parser: fixed an invalid memory access and
    use of uninitialized memory that could happen under certain
    circumstances. Fixes #2690.
  • mkvmerge: RealMedia reader: fixed a division by zero when all audio
    timestamps were zero. Fixes #2689.
  • mkvmerge: RealMedia reader: fixed an invalid memory access in the video
    frame assembly code triggered by invalid data in the file. Fixes #2691.

Build system changes

  • std::optional (C++17 feature) is now used instead of boost::optional.
  • std::regex is now used instead of boost::regex.

Other changes

  • New man page translations into French, Italian, Russian and Chinese
    Traditional have been added.

Have fun :)

One thought on “MKVToolNix v42.0.0 relesaed

  1. Sylvere

    Hi !
    I am using your software for many years now. Really great, thanks for it !

    I would like to suggest an improvement, or an additional functionality :
    Could you find a way to edit the image frequency of the video, or the whole file ?
    This would be particularly useful when mixing a video in 25fps and the audio of some others in 23.97xxx fps, or the other way round.
    Given the way an avi file is encoded, this should possible quite easily.

    Thanks again !

Comments are closed.