MKVToolnix Changelog

New in version 7.5.0

January 5th, 2015
  • mkvmerge: bug fix: If the target drive is full then a nicer error message is output instead of simply crashing due to an uncaught exception.
  • mkvmerge: bug fix: Fixed reading MPEG transport streams in which all PATs and/or PMTs have CRC errors. Fixes #1100.
  • all: bug fix: Re-wrote the whole checksum calculation code. This lead to a fix for the Adler32 checksum algorithm that was triggered under certain circumstances. Adler32 is used in mkvinfo's output (e.g. in summary mode or if checksums are activated), in the h.265/HEVC bitstream and TrueAudio (TTA) file headers.
  • mkvmerge: bug fix: fixed handling of HE-AACv2 with object type »parametric stereo«.
  • mkvmerge: new feature: implemented support for MP4 DASH files. Implements #1038.
  • mkvmerge: new feature: implemented reading MPEG-H p2/HEVC video tracks from MP4 files. Implements #996.
  • mkvinfo: bug fix: track statistics: the duration (and therefore the estimated bitrate) was wrong for files in which the frame with the maximum timecode wasn't the last frame in the file. Fixes #1092.
  • mkvmerge: new feature: implemented support for AAC in LOAS/LATM multiplex if read from MPEG transport streams or raw LOAS/LATM AAC files. Implements #877 and fixes the underlying issue in #832.
  • build system: libEBML and libMatroska have been changed to provide pkg-config configuration files. Therefore MKVToolNix' build system has been switched to look for both libraries via pkg-config.
  • all: bug fix: several fixes have gone into libEBML and libMatroska that prevent illegal memory access (both reading from and writing to unallocated addresses). The bugs #1089 and #1096 have thus been fixed.
  • build system: libMatroska v1.4.2 is now required as part of a fix for #1096.
  • build system: libEBML v1.3.1 is now required as a part of a fix for #1089.
  • mkvinfo: bug fix: mkvinfo will abort with a proper error message if the first element found is not an EBML head element. See #1089.
  • all: enhancement: improved exception messages that can occur when reading damaged Matroska files to make it clearer for the user what's happening. See #1089.
  • mkvmerge: new feature: Added support for reading h.265/HEVC video tracks from MPEG transport streams. Implements #995.
  • mkvinfo: bug fix: Timecodes output with ms resolution are now rounded to ms instead of simply cut off. Fixes #1093.

New in version 7.4.0 (December 14th, 2014)

  • mkvmerge: bug fix: mkvmerge was sometimes dropping lines from teletext subtitles read from MPEG transport streams. See #773.
  • mkvmerge: bug fix: The PCM packetizer was producing wrong track statistics by disregarding the last packet's duration when reading PCM data from packaged sources (Matroska, MP4 files). Fixes #1075.
  • build system: enhancement: configure will look for a system version of the pugixml library and use that instead of the bundled version if it is found. Fixes #1090.
  • mkvextract: bug fix for chapter & tag extraction: If locale is set to a non-UTF locale (including C or POSIX) then no XML data was output at all even if the XML data contained ASCII characters only. Fixes #1086. This also fixes mkvextract writing two BOMs when extracting tags with the »--redirect-output« option on Windows.
  • mkvinfo: bug fix: summary mode: reported frame types in block groups are now derived from the number of references found and not by the references' values.
  • mkvmerge: bug fix: Fixed muxing open GOPs after I frames in MPEG-1/2 video (patch by Stefan Pãschel). Fixes #1084.
  • mmg: bug fix: VP9 video tracks are accepted in WebM mode.
  • mkvmerge: bug fix: Cherry-picked several commits from DivX' mkvmerge fork for improved HEVC handling. Fixes #1076.
  • all: new feature: added a Catalan translation of the programs by Antoni Bella Pãrez
  • mkvmerge: bug fix: Fixed the handling of Big Endian PCM tracks read from MP4 files. Fixes #1078.

New in version 7.3.0 (October 26th, 2014)

  • mkvmerge: new feature: implemented support for reading teletext subtitles from MPEG transport streams. They're converted to SRT-style subtitles (CodecID S_TEXT/UTF8). Implements #773.
  • mkvmerge: bug fix: probing MPEG transport streams with certain types of broken MPEG-2 inside caused mkvmerge to exit with an error message. Such tracks are now ignored instead.
  • mkvmerge, mmg's chapter editor: fixed the default value for the »language« element if it isn't present in a chapter XML file.
  • MKVToolNix GUI: implemented drag & drop in the files pane.
  • mkvinfo (Qt version on Windows): bug fix: the console window is closed if the GUI is launched.
  • mkvmerge: bug fix: Reading tracks from MPEG transport streams resulted in the track being cut off at points with a five minute gap in between frames. It is due to timecode wrap detection introduced in v6.9.0. As it affects subtitles the most the wrap detection has been relaxed for them.
  • MKVToolNix GUI: implemented drag & drop in the track pane.
  • mkvmerge: new feature: added support for PCM in MPEG program streams (.vob – DVDs) and transport streams (.ts, .m2ts – Blu-rays). Implements #763.
  • MKVToolNix GUI: fixed missing command line switch for audio sync/stretch.
  • MKVToolNix GUI: implemented drag & drop in the job queue.
  • MKVToolNix GUI: implemented storing the job queue when the application exits and retrieving it when it starts again.
  • Installer: bug fix: the shortcut for the GUI preview on the desktop is removed upon uninstallation. If the user opts not to have shortcuts on the desktop then no shortcut is created for the GUI preview either.
  • MKVToolNix GUI: fixed clearing the file/track/attachment lists when starting a new config or when loading an existing one.
  • MKVToolNix GUI: implemented setting the output file name automatically in four different modes (don't set at all; place in previous output directory; place in fixed output directory; place in parent directory of first source file) with an option to make them unique by appending a running number.
  • MKVToolNix GUI: implemented setting the file title automatically from added files that already have a title.

New in version 7.2.0 (September 15th, 2014)

  • MKVToolNix GUI: included a first preview version in the Windows installer and portable releases.
  • mkvmerge: bug fix: Fixed calculating AC3 delay from garbage data when reading AC3 from AVIs. This stopped working in release 5.4.0 due to commit 97cc2121.
  • mkvextract: bug fix: SSA/ASS files with sections after "[Events]" in their CodecPrivate are now handled correctly. Fixes #1057.
  • mkvmerge: bug fix: Fixed handling certain edit list types in MP4 files that are used for positive track delays. Fixes #1059.
  • source: Fixed compilation with Boost 1.56.0 which changed the »indexed« range adaptor in an incompatible way.
  • mkvpropedit, mmg's header editor: bug fix: when editing files with missing track UID elements such an element will be generated automatically instead of crashing and leaving the file in an unplayable state. Part of a fix for #1050.
  • mkvmerge: bug fix: Reading Matroska files with missing track UID elements will no longer cause mkvmerge to abort with an error. A warning is printed and a new unique track ID generated instead. Part of a fix for #1050.

New in version 7.0.0 (June 10th, 2014)

  • mkvmerge: enhancement: In addition to the track statistics tags "BPS", "DURATION", "NUMBER_OF_BYTES" and "NUMBER_OF_FRAMES" mkvmerge will write two more tags identifying which application wrote the statistics ("_STATISTICS_WRITING_APP") and when the file in question was written: "_STATISTICS_WRITING_DATE_UTC". "_STATISTICS_WRITING_APP" will always contain the same string contained in the segment info header element "WritingApp". "_STATISTICS_WRITING_DATE_UTC" will contain the same timestamp as in the segment info header element "Date", though "_STATISTICS_WRITING_DATE_UTC" is actually a string representation instead of an integer value.
  • Additionally a tag named "_STATISTICS_TAGS" is written containing the names of the tags that mkvmerge has set automatically. It equals the following currently: "BPS DURATION NUMBER_OF_BYTES NUMBER_OF_FRAMES".
  • build system: Boost's "date/time" library is now required.
  • mkvmerge: bug fix: If a single subtitle track contains two or more entries at the same timecode then the cue duration and cue relative position elements written were wrong.
  • mkvinfo: bug fix: fixed wrong progress percentage shown during saving the information to text files. Fixes #1016.
  • mkvmerge: new feature: Added a global option for disabling writing the tags with statistics for each track: --disable-track-specific-tags.
  • mkvmerge: new feature: When identifying a Matroska file in verbose identification mode track-specific tags will be output as well. The format is "tag_:", e.g. for a tag named "BPS" with the value "224000" the output would be "tag_bps:224000". Enhancement for #1021.
  • mkvmerge: new feature: mkvmerge will write track-specific tags with statistics ("BPS" for the average number of bits per second, "DURATION" for the duration, "NUMBER_OF_BYTES" and "NUMBER_OF_FRAMES" for the track's size in bytes and its number of frames/packets). Implements #1021.
  • mkvmerge: bug fix: Changed the file type detection order again. The text subtitle formats are now probed after those binary formats that can be detected quickly and unambiguously. This avoids some mis-detection if e.g. Matroska files as ASS text subtitles if they do contain such a track.
  • mmg: enhancement: The chapter editor will only use fast-mode parsing when loading chapters from Matroska files.
  • all: bug fix: fixed invalid memory access in the cleanup procedures which only occurred if the output was redirected with the "--redirect-output" command line parameter.
  • mkvmerge: enhancement: The last chapter entry read from MPLS files is removed if it is at most five seconds long. Patch by Andrew Dvorak (see AUTHORS).
  • mkvmerge: enhancement: added the attachment UID to the verbose identification output of Matroska files.
  • mmg: bug fix: Selecting a subtitle track correctly sets the "character set" drop-down box if no character set was set for this track. Fixes #1008.
  • mmg: enhancement: the subtitle character set cannot be set anymore for subtitle tracks read from Matroska files as mkvmerge ignores that setting for said container anyway (text subs are always encoded in UTF-8 in Matroska).
  • mmg: enhancement: mmg will look for the "mkvmerge" executable in the same directory as the "mmg" executable is located it if the location hasn't been set by the user on all operating systems (before: only on Windows). Improves detection if "mkvmerge" is not in the $PATH.

New in version 6.9.1 (April 22nd, 2014)

  • mkvmerge: bug fix: fixed huge memory usage when probing files (it was reading the whole file into memory for that).

New in version 6.8.0 (March 4th, 2014)

  • mkvmerge, mkvextract: new feature: added support for h.265/HEVC by merging the patches from DivX/Rovi Corp. So far HEVC is only supported as elementary streams and read from other Matroska files.
  • mkvmerge: enhancement: The deprecated ISO 639-1 code "iw" is now recognized for Hebrew.
  • mkvmerge: bug fix: The AC3 packetizer will re-derive the sampling frequency and the number of channels from the bitstream. This way obviously invalid information from the source container like a sampling frequency of 0 Hz will be fixed.
  • mkvmerge: enhancements: AVI reader: audio chunks with obvious wrong size information (bigger than 10 MB) will be skipped.
  • mkvmerge: bug fix: When reading M2TS files belonging to an MPLS playlist mkvmerge will now only copy packets whose timestamps lie between the "in time" and "out time" restrictions from the playlist's entry corresponding to that M2TS file. Fixes #985.
  • all: Windows 64bit: fixed return value checks for opening files. Fixes #972.
  • all: Windows: when redirecting the program's output with cmd.exe (e.g. "mkvinfo file.mkv > info.txt") the programs will no longer write two line feed characters (\r) per carriage return character (\n). Fixes #970.
  • all: Windows: the default charset for the files created with "--redirect-output" has been changed from the system's local charset to UTF-8. Just like before it can be changed with "--output-charset". See #970.
  • all: bug fix: Windows: messages written to the console (cmd.exe) are not re-encoded to the local charset and back to UTF-16 before they're handed over to ConsoleWriteW(). This fixes outputting Unicode characters to the console that are not part of the local charset. Fixes #971.
  • extract: bug fix: using names of non-existing files in "attachments", "chapters", "cuesheet" or "tags" mode caused mkvextract to crash instead of emitting a proper error message. Fixes #964.
  • mmg: bug fix: fixed the check for WebM-compatible track types for Opus.
  • mkvmerge: bug fix: fixed muxing Sorenson v3 (SVQ3) video from QuickTime files.
  • mkvmerge, mkvextract, mkvpropedit: enhancement: attachments in Matroska files with a missing FileUID element are not ignored anymore even though they violate the specs. mkvmerge generates a new FileUID instead.
  • mkvmerge: re-built with the 64bit build for Windows with a newer compiler version in order to fix #957. It was due to a bug in gcc: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56742
  • mmg: bug fix: mkvmerge's file identification is written to a temporary file with --redirect-output and from there into mmg instead of directly from mkvmerge. This prevents from character re-coding done by wxWidgets 3.0.0 on Windows. Fixes #959.
  • installer: enhancement: the architecture (32bit vs 64bit) is mentioned in the interface.
  • installer: bug fix: the installation directory for 64bit builds will default to the proper directory ("C:\Program Files" instead of "C:\Program Files (x86)"). Fixes #956.

New in version 6.7.0 (January 9th, 2014)

  • build system: Ruby 1.9.x is now required.
  • all: enhancement: The architecture (32bit/64bit) is mentioned in the version information of all programs.
  • build system: bug fix for 64bit builds on Windows (x86_64-w64-mingw32): use the correct processor architecture via separate Windows manifest files. Fixes mmg and mkvinfo not starting due to »error 0x0000007b«.
  • mkvmerge: bug fix: Fixed a potential endless loop due to an integer overflow in the code removing AVC/h.264 filler NALUs.
  • mkvmerge: bug fix: Fixed reading uncompressed PCM audio tracks from QuickTime/MP4 files in certain situations. Fixes #950.
  • mmg: enhancement: Made the »scanned files« list box sortable by all columns. Fixes #954.
  • mmg: enhancement: The »additional parts« dialog will now show the files that make up an MPLS playlist. This is for informational purposes only and doesn't allow changing the playlist itself.
  • mkvmerge: bug fix: Reading from an MPLS playlist file is now done as if the second and following files referenced in that playlist had been appended to the first file from that playlist. Before they were treated as if they were additional parts. Fixes #934.
  • mmg: enhancement: a couple of fixes to tooltips: 1. Content correction for »splitting by chapters«; 2. no ugly re-formatting with wxWidgets 3.0.0 on Windows.
  • mkvmerge: bug fix: Improved the AAC, AC3 and MP3 header decoding error handling so that the corresponding parsing routines won't get stuck in endless loops when encountering certain garbage data patterns.
  • mkvmerge: enhancement: unified codec names output by mkvmerge's identification mode for all file format readers.
  • mkvinfo: bug fix: when setting the language with --ui-language a few strings were still translated using the system's default language.
  • mkvextract: bug fix: if the track headers were located at the end of the file (e.g. after modification with mkvpropedit or mmg's header editor) then mkvextract was writing files with a length 0 bytes.
  • mmg: bug fix: the »playlist items« list box in the »select playlist file to add« dialog was showing the items in reversed order. Fixes #952.
  • mmg: bug fix: the »select playlist file to add« dialog can now be resized, minimized and maximized. It also remembers its position and size during runs. Fixes #951.
  • mmg: enhancement: The user can select the default subtitle character set to use for newly added subtitle tracks in the preferences dialog as requested in bug #948.
  • mmg: bug fix: fixed the tooltip for the subtitle character set drop-down box to match mkvmerge's actual behavior. Fixes #948.
  • mkvmerge: new feature: implemented reading DTS audio tracks from MP4 files (with ESDS object type ID == 0xA9 (decimal 169) or FourCC == 'DTS ' or 'dtsc').
  • mkvmerge: enhancement: allowed muxing Opus to WebM files.
  • mkvmerge: bug fix: Fixed the mapping of the Opus element »seek pre-roll« and »pre-skip« to the Matroska elements »track seek pre-roll« and »codec delay«. Remuxing Matroska files without Opus created with earlier versions of MKVToolNix is enough to fix such a file.
  • mkvmerge: bug fix: fixing the bitstream timing information of h.264/AVC writes clean values for 25000/1001 frames per second video (e.g. de-telecined PAL @ 29.97).
  • mmg: bug fix: fixed a crash in during drag & drop operations in mmg's chapter editor.

New in version 6.6.0 (December 2nd, 2013)

  • mmg: new feature: implemented drag & drop in the chapter editor. Implements #929.
  • mmg: bug fix: fixed an assertion in wxLogMessage() due to wrong format string/argument data types caused by changes in wxWidgets 3.0.0. See Debian bug #730273.
  • mkvmerge: bug fix: improved resilience against MP4 files with obviously wrong entries in the 'sample size table' (STSZ) atom.
  • mkvmerge: bug fix: improved VC1 frame type detection so that it works even for streams without entry points.
  • mkvinfo: bug fix: at most the lower 32bits of the track numbers and track UIDs elements were output, even if the element in the file used more bits. Fixes #935.
  • mkvmerge: bug fix: fixed accessing invalid memory in the memory handling core routines. May be triggered by the code to remove filler NALUs introduced in v6.5.0. Fixes #931.
  • mmg: bug fix: fixed the tracks list box on the input tab being invisible/0 pixels high with wxWidgets 2.9.x/3.x.
  • all: integrated the Portuguese translation. Although the translation files themselves had been added back in 6.3.0 that translation wasn't available for selection due to forgetfulness on my part.
  • mkvmerge: bug fix: The file detection code in the MPEG elementary stream reader had a logic error. Fixes #928. In practice this logic error didn't have any consequence.