Version 42.0.0 "Overtime":
New features and enhancements
* mkvmerge: added an option for creating byte-identical files:
`--deterministic <seed>`.
* mkvmerge: Matroska reader: mkvmerge will remove the `icpf` atom headers if
they're present in frames read from Matroska files.
* 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.
* mkvpropedit: when changing track UIDs the referring elements in existing
chapters & tags will be updated automatically, too.
* mkvinfo: when the option `-p`/`--hex-positions` is used, element positions
will be output regardless of the verbosity level.
* mkvinfo: added the option `-P`/`--positions` for showing the position of
each element in decimal regardless of the verbosity level used.
* mkvinfo: added the option `-o`/`--continue` for continuing processing when
the first cluster is encountered regardless of the verbosity level
used.
* 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.
* MKVToolNix GUI: multiplexer: added an option in the preferences for
disabling adding cover images from Blu-ray discs.
* MKVToolNix GUI: multiplexer: added mkvmerge's new `--deterministic` option
in the "additional command-line options" dialog.
* MKVToolNix GUI: header editor:: when changing track UIDs the referring
elements in existing chapters & tags will be updated automatically,
too.
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.
* 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.
* mkvmerge: MPEG elementary stream parser: fixed an invalid memory access and
use of uninitialized memory that could happen under certain
circumstances.
* mkvmerge: RealMedia reader: fixed a division by zero when all audio
timestamps were zero.
* mkvmerge: RealMedia reader: fixed an invalid memory access in the video
frame assembly code triggered by invalid data in the file.
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.
Version 39.0.0 "In The Waiting Line":
New features and enhancements
* mkvmerge: Blu-ray: when reading an MPLS playlist mkvmerge will look up and
use chapter names from the Blu-ray's "track/chapter names" meta data if it
exists.
* mkvmerge: MP4 reader: if present, cover art images (the
`meta.udta.ilist.covr` atom) will be converted into attachments.
* MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the
disc library meta data will be parsed, and the biggest thumbnail, if
present, will be added as a new attachment with name `cover.jpg` (extension
depends on thumbnail's extension).
* MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the
title from the disc library meta data will be set as the new file title if
the disc library meta data contains one & no title has been set yet.
* MKVToolNix GUI: multiplexer: the automatically generated destination file
name will now be based on the file title if one is set at that point. This
works in conjunction with the title being said from the Blu-ray disc library
meta data.
* MKVToolNix GUI: chapter editor: when reading chapters from an MPLS playlist
the GUI will look up and use chapter names from the Blu-ray's "track/chapter
names" meta data if it exists. Part of the implementation of 2486.
* MKVToolNix GUI: Windows: added a dark mode that's enabled when Windows 10's
dark mode is turned on.
* translations: added a Bulgarian translation of the programs & the man pages
by Симеон Цветков (see `AUTHORS`).
Bug fixes
* mkvmerge: attachments without a file name won't be ignored anymore.
* MKVToolNix GUI: header editor: attachments with an empty name element will
be shown as `<unnamed>` as originally intended.
* Linux AppImage: the AppImage will no longer change directories before
running the desired executable allow the use of relative file names.
Build system changes
* MKVToolNix now requires a C++ compiler that supports the following features
of the C++17 standard: "`[[maybe_unused]]` attribute", "nested namespace
definition", "structured bindings". For the GNU Compiler Collection (gcc)
this means v7 or newer; for clang it means v4 or newer.
* Boost 1.60.0 or newer is now required.
Version 15.0.0 "Duel with the Devil":
Important notes
* mkvmerge, mkvpropedit, GUI's header and chapter editors: the programs will
no longer add most missing Matroska elements that are mandatory but have a
default value in the Matroska specification (e.g. the `TagLanguage` element
with a value of `und` if it isn't present in its `SimpleTag` parent). Due to
this change libEBML v1.3.5 is now required.
New features and enhancements
* MKVToolNix GUI: multiplex tool: added a new entry to the "source files"
context menu labeled "Set destination file name from selected file's
name". It will force the GUI to consider the selected file to be the
reference for automatically setting the file name, no matter which file was
originally added as the first file. It will also force setting the
destination file name once if automatic destination file name generation is
turned off in the preferences. Implements part of 2058.
* MKVToolNix GUI: multiplex tool: added an option in the preferences on
"Multiplexer" → "Output" labeled "Only use the first source file that
contains a video track". If enabled, only source files containing video
tracks will be used for setting the destination file name. Other files that
are added are ignore. Implements the rest of 2058.
* MKVToolNix GUI: header editor: added support for editing the video colour
attributes. Implements the second half of 2038.
* MKVToolNix GUI: header editor: added support for the "video projection"
track header attributes. Part of the implementation of 2064.
* MKVToolNix GUI: job queue: selected jobs can now be move up and down by
pressing the `Ctrl+Up` and `Ctrl+Down` keys. Additionally, push buttons to
move them up & down are shown if the corresponding option is enabled in the
preferences. Implements 2060.
* mkvmerge: added support for the "video projection" track header
attributes. Part of the implementation of 2064.
* mkvinfo: added support for the "video projection" track header
attributes. Part of the implementation of 2064.
* mkvpropedit: added support for editing the video colour
attributes. Implements one half of 2038.
* mkvpropedit: added support for the "video projection" track header
attributes. Part of the implementation of 2064.
Bug fixes
* all: selecting the program's language (e.g. via the `--ui-language`
command-line option or via the GUI's preferences) did not work on Linux &
Unix if the `LANGUAGE` environment variable was set and didn't include the
desired language. Fixes 2070.
* MKVToolNix GUI: removed the keyboard shortcuts for switching between the
different tools (e.g. `Ctrl+Alt+1` for the multiplexer). They overlapped
with basic functionality on keyboards that use an `AltGr` key, e.g. German
ones, where `AltGr+7` emits `{`. As `AltGr+key` is implemented as
`Ctrl+Alt+key` under the hood, this means that `AltGr+7` is really
`Ctrl+Alt+7` which the GUI now took to mean "switch to the job queue"
instead of "insert `{`". Fixes 2056.
* MKVToolNix GUI: header editor: after saving the file the GUI wasn't updating
its internal file modification timestamp. That lead to the GUI wrongfully
claiming that the file had been modified externally when the user wanted to
save the file once more, requiring a reload of the file losing all
modifications made since saving the first time.
* mkvmerge: DTS handling: some source files provide timestamps for audio
tracks only once every `n` audio frames. In such situations mkvmerge was
buffering too much data resulting in a single gap in the timestamps of one
frame duration after frame number `n - 1` (the second audio timestamp read
from the source file was used one output frame too early). Fixes 2071.
* mkvinfo: fixed a null pointer dereference if an `EbmlBinary` element's data
pointer is a null pointer. Fixes 2072.
Build system changes
* configure: added option `--disable-update-check`. If given, the code
checking online for available updates will be disabled. The update check is
enabled and included in the GUI by default.
* libEBML v1.3.5 is now required.
Other changes
* mkvmerge: the option `--colour-matrix` has been renamed to
`--colour-matrix-coefficients` in order to match the specification more
closely. The old option name will continue to be recognized as well.
- restrict GUI option to Qt.
- disable compiler optimisation override
- new features:
- support for Apple ProRes videos in MOV/MP4 files
- much improves MPEG TS support
- support WebVTT subtitles
- output of Big Endian PCM to WAV supported
- ${TOOL}_OPTIONS can be used for passing additional arguments to
individual programs via environment
- support for core-less DTS streams consisting solely of XLL extension
sub-streams
- time codes computation for AAC, AC-3, DTS, MP3 and TrueHD packets
was rewritten
- support TrueHD tracks inside MPEG TS by keeping (additional) AC-3
audio track
- support MPEG-H p2/HEVC video in MP4 container
- support for AAC in LOAS/LATM multiplex if read from MPEG transport
streams or raw LOAS/LATM AAC files
- support for h.265/HEVC from MPEG TS and elementary streams
- support for teletext subtitles from MPEG TS
- faster format detection for text subtitle formats
- support for DTS audio streams in MP4
- support for VP9 from IVF and WebM files
- support for Opus
- support for reading ALAC from CAF and MP4 files
- 5 years of various bug fixes and GUI improvements.
changes: many fixes and improvements
pkgsrc note: This version hasn't been tested in practice yet. The
previous one had a problem with mkvmerge going into an endless loop.
We still have mkvtoolnix-old (2.9.8) as a known working one for
that reason.
* build system: Fixed building the Qt version of mkvinfo's GUI (again).
* mmg: bug fix: If the header editor finds 'language' elements with ISO-639-1
codes (e.g. "fra" instead of "fre" for "French") then it will map the code to
the corresponding ISO-639-2 code
* mmg: bug fix: Fixed one of the issues causing mmg to report that it is
configured to use an unsupported version of mkvmerge when the reported
version was actually empty.
* mkvmerge: enhancement: HD-DVD subtitles are recognized as being an
unsupported file format. This makes the error message presented to the user
a bit clearer.
* build: Boost 1.36.0 or newer is required (up from 1.34.0). Also fixed
building with v3 of Boost's filesystem library, e.g. with Boost 1.46.0
Beta 1 or newer.
* mkvpropedit: new feature: Added support for adding, replacing and removing
tags.
* all: Added a translation for the programs into Turkish by ßouЯock.
* build system: Fixed compilation if configure choses the internal versions of
libebml and libmatroska while older versions are still installed in a
location named with "-I..." or "-L..." in CFLAGS/CXXFLAGS/LDFLAGS or with
configure's "--with-extra-includes" and "--with-extra-libs" options.
Matroska files.
MKVtoolnix is a set of tools to create, alter and inspect Matroska files.
With these tools one can get information about (mkvinfo) Matroska files,
extract tracks/data from (mkvextract) Matroska files and create (mkvmerge)
Matroska files from other media files.
From pkgsrc-wip, created by Sergey Svishchev with modifications by me.