Subject: [Cellar] MKVToolNix v42.0.0 released

From: Moritz Bunkus <[email-masked]>
Date: Thu, 02 Jan 2020 14:55:28 +0100

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 ( https://gitlab.com/mbunkus/mkvtoolnix/issues/
) 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:

Here are the usual links:

…to the source code: https://mkvtoolnix.download/source.html
…to the binaries: https://mkvtoolnix.download/downloads.html

The Windows and macOS binaries as well as the Linux AppImage are
available already. The other Linux binaries are still being built and
will be available of the course of the next couple of hours.

Here are the NEWS since the previous release:

------------------------------------------------------------
# Version 42.0.0 "Overtime" 2020-01-02

## 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 :)

mosu