MKVToolNix v72.0 released

Heyo!

here’s MKVToolNix release v72. It fixes quite a lot of bugs, several one of them in the component driving the in-place file modification in mkvpropedit & the GUI’s chapter & header editors. Therefore I urge everyone to update.

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: AV1 parser: the variable-width OBU size field will be re-written with minimal length if it’s encoded longer than necessary.
  • mkvmerge: when splitting is active the program will output the timestamps actually used for making the decision when to split. If GUI mode is active, a specially formatted line #GUI#splitting_before_timestamp <timestamp> is output as well. Lines prefixed with#GUI# are suitable for machine parsing, won’t be translated and are guaranteed not to change in format. Implements #3421.
  • MKVToolNix GUI: multiplexer: when dragging & dropping directories to the “attachments” tab, the files contained in those directories will be attached. Implements #3410.
  • MKVToolNix GUI: info tool: added information about the file (directory, size, modification timestamp) at the top of each tab. Implements #3407.

Bug fixes

  • mkvmerge: AV1 parser: fixed the parser completely aborting when parsing the OBU size field fails due to there not being enough data to parse. Instead the parser will remember the last known-good position & restart from there after more data is available. Fixes #3431.
  • mkvmerge: HDMV PGS subtitles: reverted the change that implemented a heuristic for detecting bogus timestamps & attempting to fix them. This was done to fix #3268. Unfortunately this affected valid subtitle files with intentional huge gaps in timestamps, e.g. forced subtitle tracks. The heuristic has simply been removed, fixing #3392.
  • mkvmerge: Matroska reader: fixed reading files with EBML Void elements before the Matroska Segment element.
  • mkvmerge: fixed reversed attachment selection: --attachments !4 would not copy any attachment instead of all attachments but the one with ID 4. Fixes #3427.
  • mkvextract: IETF BCP 47/RFC 5646 language tags: mkvextract will now use & prefer IETF BCP 47 track language elements if they’re present. Only affects the VobSub & USF subtitle extraction.
  • mkvpropedit, MKVToolNix GUI’s chapter & header editors: updated the list of deprecated Matroska elements. The applications will no longer try to write those elements, even if they’re found in the file to be modified. The programs will no longer abort with error messages such as assertion "false" failed. Fixes #3416.
  • mkvpropedit, MKVToolNix GUI’s chapter & header editors: when the Matroska version numbers stored in the EBML Head element are updated, the updated EBML Head element might be smaller than the existing one. In that case the programs used to shrink the EBML Head & write a small EBML Void element between the updated EBML Head & the following element, usually a Matroska Segment element. This isn’t widely supported by programs including MKVToolNix itself, causing them to declare such files as invalid. The programs will now create the EBML Void element inside the EBML Head element, making them a level 1 element instead of a level 0 element. Fixes #3355.
  • mkvpropedit, MKVToolNix GUI’s chapter & header editors: often the programs have to relocate the Master elements in which the modifications were done. In that case the Seek Head elements must also be updated to reflect to the Master elements’ new positions. If a file contained a Seek Head element at the start already and if that Seek Head was too small to contain the updated positions, the programs would end up in an endless loop trying to write data to the end, creating ever-growing files. This is now handled properly by voiding this too-small Seek Head & finding a proper space for a new one instead. Fixes #3338.
  • MKVToolNix GUI: header editor: fixed pixelated icons on higher display scaling values. Fixes #3420.

Have fun 😁

MKVToolNix v71.1 released

Heyo.

I’ve just released a new minor update, v71.1. It solely fixes the “configure” script not having the correct requirements wrt. to libEBML & libMatroska. It also fixes several issues in the XML DTDs, but those aren’t actually used in MKVToolNix itself. Functionality wise v71.1 is the same as v71.0. If you aren’t a Linux package maintainer, feel free to skip this release.

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:

Bug fixes

  • Chapters DTD: added the new edition & chapter elements from Matroska v5.
  • Chapters DTD: fixed EditionUID being mandatory. mkvmerge can auto-generate it if it’s missing from the XML file.
  • Chapters DTD: fixed the example-chapters-1.xml not validating against the DTD.
  • Chapters DTD: corrected the old name EditionManaged to EditionFlagOrdered.
  • Chapters DTD: fixed ChapLanguageIETF missing its element declaration & ChapterLanguage being required.
  • XML DTDs: fixed elements representing binary data not allowing the format attribute.

Build system changes

  • bug fix: configure accidentally tested for libEBML ≥ 2.0.0 & libMatroska ≥ 2.0.0, even though the actual requirements are 1.4.4 & 1.7.1 respectively.

Have fun 😁

MKVToolNix v71.0 released

Hey everyone!

MKVToolNix v71 is out, bringing some more maintenance, but fixes, partial support for the latest Matroska elements. Partial in the sense that the GUI’s chapter editor still needs to be updated for the new elements used for naming/titling editions (similar to how atoms can already be named). This will come in the next release.

A couple of notes for package maintainers: the latest releases of libEBML (v1.4.4) & libMatroska (v1.7.1) are required. They’re also bundled, as usual. Those two releases were made on the same day as this MKVToolNix release: 2022-10-08. They should restore ABI compatibility with libEBML v1.4.2 & libMatroska v1.6.3 respectively, which we accidentally broke with last week’s releases (the bad ones: libEBML v1.4.3 & libMatroska v1.7.0).

You can download the source code or one of the binaries. The Windows binaries as well as the Linux AppImage are available already. The macOS binaries & 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, MKVToolNix GUI’s multiplexer: added support for the Emphasis audio track header element via the --audio-emphasis option. It is also read from Matroska files.
  • mkvmerge: the options --list-stereo-modes and --list-audio-emphasis have been added to list all support numerical & textual values for the --stereo-mode & --audio-emphasis options.
  • mkvpropedit, MKVToolNix GUI’s header editor: added support for the Emphasis audio track header element via the emphasis property.
  • MKVToolNix GUI: multiplexer: when the track properties are configured to be displayed in a tab widget below the files & tracks in the “Input” tab, the “Color information” tab will be laid out in two columns. This reduces the minimum height the whole tab widget requires. Implements #3401.
  • MKVToolNix GUI: greatly sped up closing the preferences dialog by only re-running certain initialization functions when their corresponding settings have changed. Also fixes issues such as #3406.
  • mkvinfo, MKVToolNix GUI’s info tool: added support for the following new elements from Matroska v5: Emphasis audio track header element; Chapter Skip Type; Edition Display; Edition String; Edition Language IETF.
  • mkvmerge, mkvpropedit: added support for the following new chapter elements from Matroska v5: Chapter Skip Type; Edition Display; Edition String; Edition Language IETF. The GUI’s chapter editor will receive support for them in the next release.

Bug fixes

  • mkvmerge: Ogg/OGM reader: mkvmerge will now correctly skip tracks of unsupported types as well as tracks for which all track header pages haven’t been found. Fixes #3394.

Build system changes

  • libEBML 1.4.4 & libMatroska 1.7.1 are now required.
  • The bundled libEBML & libMatroska libraries were updated to v1.4.4 & v1.7.1 respectively.
  • The bundled fmt library was updated to v9.1.0.
  • The bundled nlohmann-json library was updated to v3.11.2.

Have fun 😁

MKVToolNix v70.0.0 released

Heyo!

A new small release is ready, mostly fixing two annoying bugs in the GUI’s handling of color parameters that unfortunately slipped in in v69.

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

  • MKVToolNix GUI: the user can now control where the job queue files & the preferences INI file are stored via environment variables. If set, the variable MKVTOOLNIX_GUI_STATE_DIR can point to a directory where the GUI stores both the job queue sub-directory and the preferences INI file. If you only want to relocate the preferences INI file, you can store the desired file name for the INI file in MKVTOOLNIX_GUI_CONFIG_FILE. Implements #3382.
  • MKVToolNix GUI: when adding directories via drag & drop/copy & paste the GUI will now offer the user the option to create one multiplex settings tab per directory & adding all files from that directory to the corresponding, newly created tab. Implements #3371.

Bug fixes

  • mkvmerge: AV1 OBU parser: fixed identifying files that only contain single frame. Fixes #3380.
  • MKVToolNix GUI: multiplexer: when reading color parameters from identified files that are floating point numbers (minimum/maximum luminance, projection pitch/roll/yaw) the numbers will be formatted in floating-point notation instead of scientific notation as mkvmerge only supports the former. Fixes #3368.
  • MKVToolNix GUI: multiplexer: color parameters that are floating point numbers (minimum/maximum luminance, projection pitch/roll/yaw) will only be set to a value during identification if the identification actually contains the property, and not to 0 anymore if it doesn’t.

Build system changes

  • Several merge requests where accepted that improve compilation on MSYS2 on Windows. Note that this build type isn’t supported.

Have fun 😁