MKVToolNix v51.0.0 released

Hello everyone,

I’ve just pushed out MKVToolNix v51. As expected the new IETF BCP 47 language tag functionality introduced in v50 had a couple of bugs, which I’ve fixed in v51. Apart from that I’ve also started fuzzying mkvmerge, which turned up several issues that have also been fixed. Fuzzying will continue in the future and I fully expect a lot more bugs to be unearthed by it.

Important news for package managers is that `configure` can now detect and use a system-wide installed copy of the JPCRE2 header library. If it isn’t found, the bundled version will be used (just like in v50).

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, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added
    missing support for UN M.49 regions for which there are no corresponding ISO
    3166 alpha codes. This enables language tags such as es-419 = Spanish in
    Latin America and the Caribbean. Implements #2919.
  • MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying
    the current language & the corresponding edit button is now displayed like a
    link (depending on the theme: different color & underlined), making it
    clearer that not just the edit button can be clicked but the text, too.

Bug fixes

  • mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due
    to certain data conditions. Found by fuzzying.
  • mkvmerge: AV1 packetizer: the duration of frames wasn’t set properly. When
    appending AV1 IVF or OBU files this meant that the last frame of the Nth
    file and the first frame of file N+1 had the same timestamp. Fixes #2937.
  • mkvmerge: DTS reader: fixed handling of buffers with an odd length when
    byte-swapped DTS is detected so that mkvmerge doesn’t abort with a failed
    assertion. Found by fuzzying.
  • mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will
    no longer claim to recognize data that looks like AVC or HEVC but with
    invalid video width/height values as that lead to failed assertions in
    libEBML later. Found by fuzzying.
  • mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught
    exceptions due to certain data constellations found by fuzzying.
  • mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero"
    error due to certain data conditions. Found by fuzzying.
  • mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the
    timestamp scaling factor being 0 after handling certain data constellations
    found by fuzzying.
  • mkvmerge: track statistics: fixed a "division by zero" error when the
    content’s shorter than 1ms. Found by fuzzying.
  • mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an
    invalid memory access under certain data conditions. Found by fuzzying.
  • MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer
    open the language dialog when clicking on a disabled language display
    widget.
  • MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were
    not populated even when the language tag was valid and contained at a
    variant. Fixes #2923.
  • MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at
    least one of the other components (extended subtags, region, or variants)
    has something selected and "private use" is not empty, the GUI would claim
    this to be a valid tag, which it isn’t. Fixes #2924.
  • MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes
    from "at least one entry selected" to "no entry selected", the input
    controls will be reset to their default state and not just disabled. Fixes
    #2927.

Build system changes

  • configure now checks for the presence of the a system-wide installed copy
    of the JPCRE2 C++ wrapper library for the PCRE2 library and uses that if
    it’s new enough (at least v10.32.1). If not, the bundled version will be
    used as a fallback. Implements #2929.

Have fun!

2 thoughts on “MKVToolNix v51.0.0 released

  1. Trignite

    Would you be able to add an option so opening a video file always creates a new tab for muxing rather than asks you what you want to do with the file your opening every time? I know you can set it to do that by default for every file, but that’s not what I want. So currently the window pops up every single time I want to work with multiple files i add a video > create new multiplex settings.. But if i want to add e.g a audio track i have to change the setting back to add as new source again.

    It really slows down the process, and I most people won’t be muxing in multiple video tracks so I think having an option for this would be really useful.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *