Debian/Ubuntu APT repository changes

In the upcoming release of Ubuntu 18.04 APT repositories without signed “Release” files aren’t supported out of the box anymore. I’ve therefore changed my Debian & Ubuntu APT repositories to a new layout that includes proper “Release” files. This also means that you have to update your APT repository definition.

Here’s what such a change would look like:

Before:

deb https://mkvtoolnix.download/ubuntu/artful/ ./
deb-src https://mkvtoolnix.download/ubuntu/artful/ ./

After:

deb https://mkvtoolnix.download/ubuntu/ artful main
deb-src https://mkvtoolnix.download/ubuntu/ artful main

Head over to the downloads page where you can copy & pate the appropriate entries from.

MKVToolNix v22.0.0 released

Hey everyone.

I thought today would be a good day for a new release of MKVToolNix: v22.0.0 is here. Celebrating the official announcement of AV1, this is the first release that contains support for that format as well (still some things to do, though). Other than that the info tool in the GUI has been improved quite a bit.

The Windows and macOS binaries are available already. The 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:

New features and enhancements

  • mkvmerge, MKVToolNix GUI multiplexer: AC-3, DTS, TrueHD: added an option for
    removing/minimizing the dialog normalization gain for all supported types of
    the mentioned codecs. Implements #1981.
  • mkvmerge: AV1: added support for reading AV1 video from IVF, WebM and
    Matroska files.
  • mkvmerge: FLAC: mkvmerge can now ignore ID3 tags in FLAC files which would
    otherwise prevent mkvmerge from detecting the file type. Implements #2243.
  • mkvinfo: the size and positions of frames within "SimpleBlock" and
    "BlockGroup" elements are now shown the same way they’re shown for other
    elements (by adding the -v -v and -z options).
  • MKVToolNix GUI: multiplexer: added options for deriving the track languages
    from the file name by searching for ISO 639-1/639-2 language codes or
    language names enclosed in non-word, non-space characters (e.g. "…[ger]…"
    for German or "…+en+…" for English). Implements #1808.
  • MKVToolNix GUI: info tool: implemented reading all elements in the file
    after the first cluster. Only top-level elements are shown; child elements
    are only loaded on demand. Implements the rest of #2104.
  • MKVToolNix GUI: info tool: added a context menu with the option to show a
    hex dump of the element with the bytes making up the EBML ID and the size
    portion highlighted in different colors. In-depth highlighting is done for
    the data in SimpleBlock and Block elements.
  • MKVToolNix GUI: chapter editor: added an option to remove all end timestamps
    to the "additional modifications" dialog. Implements #2231.

Bug fixes

  • mkvmerge: MP4 reader: fixed reading the ESDS audio header atom if it is
    located inside a "wave" atom inside the "stsd" atom.
  • mkvmerge: MP4 reader: AAC audio tracks signalling eight channels in the
    track headers but only seven in the codec-specific configuration will be
    treated as having eight channels.
  • mkvmerge: MPEG TS reader: fixed wrong handling of the continuity counter for
    TS packets that signal that TS payload is present but where the adaptation
    field spans the whole TS packet.
  • mkvmerge: the ‘document type version’ and ‘document type read version’
    header fields are now set depending on which elements are actually written,
    not on which features are active (e.g. if a SimpleBlock is never written,
    then the ‘read version’ won’t be set to 2 anymore). Part of the fix for
    #2240.
  • mkvmerge: the ‘document type version’ header field is now set to 4 correctly
    if any of the version 4 Matroska elements is written. Part of the fix for
    #2240.
  • mkvinfo: summary mode: the file positions reported for frames in
    BlockGroup elements did not take the bytes used for information such as
    timestamp, track number flags or lace sizes into account. They were
    therefore too low.
  • mkvpropedit, MKVToolNix GUI header editor: the ‘document type version’ and
    ‘document type read version’ header fields are now updated if elements
    written by the changes require higher version numbers. Part of the fix for
    #2240.
  • mkvpropedit, MKVToolNix GUI header editor: mandatory elements can now be
    deleted if there’s a default value for them in the specifications. Fixes
    #2241.
  • source code: fixed a compilation error on FreeBSD with clang++ 5.0. Fixes
    #2255.

Build system changes

  • A compilation database (in the form of a file compile_commands.json) can
    be built automatically if the variable BUILD_COMPILATION_DATABASE is set
    to yes (e.g. as rake BUILD_COMPILATION_DATABASE=yes).

Have fun :)

MKVToolNix v21.0.0 released

Hey everyone.

It’s time for MKVToolNix v21.0.0. The biggest change is that mkvinfo’s GUI portion has been removed. Its functionality is now incorporated into MKVToolNix GUI. I am aware that the functionatliy isn’t on par yet, but it will be in time for release v22.0.0.

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

Here are the NEWS since the previous release:

New features and enhancements

  • mkvmerge: track statistics tags: the TagDefault element will not be written anymore as it was always set to the default value 1 anyway. Implements #2202.
  • mkvmerge, MKVToolNix GUI: JSON files can now contain C++-style line comments outside of strings (e.g. something like this: // this is ignored). Such comments, even though not part of the official JSON specifications, are now ignored when reading JSON files.
  • MKVToolNix GUI: chapter editor: opening a Matroska file without chapters in it will now open the file in an empty chapter editor instead of showing an error message. Implements #2218.
  • MKVToolNix GUI: an "info" tool has been added, replacing the functionality of mkvinfo’s GUI. The functionality is not on par yet but will be for release v22. Implements most of the functionality of #2104.

Bug fixes

  • build system: configure was treating --disable-ubsan and --disable-addrsan the same as --enable-ubsan and --enable-addrsan. Fixes #2199.
  • build system: an error message is output if a command to execute is not found instead of silently failing.
  • build system: in addition to looking for the gettext C function and library, configure now also verifies the presence of the msgfmt program instead of simply relying on it.
  • mkvmerge: appending files with additional parts at the same time was broken if more than one additional part was appended (e.g. when appending files from DVDs with something like '(' VTS_01_1.VOB VTS_01_2.VOB ')' + '(' VTS_02_1.VOB VTS_02_2.VOB ')'). In such a situation the content from files VTS_02_1.VOB and VTS_02_2.VOB where laid out in parallel to the content from the earlier files.
  • mkvmerge: FLV reader: a single invalid AAC frame was written for AAC audio tracks with codec initialization data longer than five bytes.
  • mkvmerge: FLV reader: timestamps will be normalized down to 0. Fixes #2220.
  • mkvmerge: MP4 reader: if an AAC track doesn’t contain an AAC-specific decoder configuration in the ESDS portion, then a default decoder configuration will be generated based on the track’s header data instead of skipping the track. Fixes #2221.
  • mkvmerge: MP4 reader: fixed reading HEVC/h.265 video tracks if they’re stored as Annex B byte streams inside MP4. Fixes #2215.
  • mkvmerge: Ogg Opus reader: mkvmerge will now emit a warning instead of aborting when it encounters an Ogg Opus page with no data in the packet. Fixes #2217.
  • mkvmerge, mkvextract: Matroska parser: fixed a segmentation fault that occurred whenever the first level 1 element after resyncing after an error in the file structure isn’t a cluster. Fixes #2211.
  • mkvmerge, MKVToolNix GUI multiplexer & header editor: fixed a crash during file type detection for attachments if MKVToolNix is installed in a path with non-ASCII characters (e.g. German Umlauts). Fixes #2212.
  • mkvinfo: the --hex-positions parameter did nothing in summary mode.
  • mkvinfo: Windows: line endings will be written as \r (carriage return & line feed) again instead of just (line feed).
  • mkvpropedit: adding track statistics tags: for tracks with content encoding (compression) mkvpropedit is now accounting the uncompressed number of bytes, not the encoded (compressed) number of bytes. Fixes #2200.
  • MKVToolNix GUI: multiplexer: the subtitle character set can now be set for appended subtitle files, too. Fixes #2214.
  • MKVToolNix GUI: multiplexer: when appending, all tracks appended to disabled tracks will start out disabled, too.

Build system changes

  • mkvinfo: the GUI portion has been removed. mkvinfo is now a pure command-line program again.

Have fun :)