Category Archives: Matroska

MKVToolNix v9.5.0 released

A new release of MKVToolNix with several bug fixes in mkvmerge and minor feature enhancements in the GUI. Nothing critical.

Nothing’s been changed regarding the packaging since v9.4.2.

You can download the source code or one of the binaries. The Windows and Mac OS binaries are available. Most of the Linux binaries are still being built and will be available in a couple of hours.

Here’s the full ChangeLog since the previous release:

  • 2016-10-16 Moritz Bunkus <moritz@bunkus.org>
    • Released v9.5.0 "Quiet Fire".
    • mkvmerge, mkvextract: VobSub handling bug fix: mkvmerge and mkvextract will now update the duration stored in the SPU bitsream with the duration from the container level if it differs at least 1ms. Fixes #1771.
  • 2016-10-15 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: h.264 elementary stream handling bug fix: if mkvmerge ever encounters changing SPS or PPS NALUs (ones where their ID has been encountered before with different settings) in the h.264 then it will prepend all following key frames with all currently active SPS and PPS NALUs. This enables playback from arbitrary key frames even if they require other SPS or PPS settings than the ones stored in the AVCC in CodecPrivate. Fixes #1711.
  • 2016-10-12 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge, mkvpropedit, MKVToolNix GUI: added support for the "field order" video track header element.
    • mkvinfo: added support for the "field order" video track header element. Patch by James Almer (see AUTHORS).
    • mkvmerge: MPEG transport stream reader bug fix: fixed the handling of Blu-ray PCM audio with an odd number of channels by removing their alignment bytes.
  • 2016-10-10 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: MPEG transport stream reader bug fix: fixed mis-detection of certain h.264 files as MPEG transport streams.
  • 2016-10-09 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: WAV reader bug fix: the track properties (channels, sample rate) for DTS and AC-3 in WAV will now be derived from the decoded bitstream headers instead of the WAV file header as the latter is often incorrect.
    • mkvmerge: WAV reader bug fix: fixed detection and merging of DTS in WAV that uses the 14-bytes-in-16-bytes packing method.
  • 2016-10-08 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool enhancement: added menu entries that execute the "close", "save settings", "start muxing" or "add to job queue" action for all currently open tabs.
  • 2016-10-07 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool enhancement: when dragging & dropping directories the GUI will process all files within those directories recursively instead.
  • 2016-10-06 Moritz Bunkus <moritz@bunkus.org>
    • mkvpropedit, MKVToolNix GUI’s header editor: added options to modify the "muxing application" and "writing application" elements in the "segment information" container. Implements #1788.
  • 2016-09-30 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: The Ogg/OGM reader did not recognize Opus files with comment headers anymore. This was broken by the fix to not require Ogg/OGM files to have comment headers in v9.4.0.

Have fun :)

MKVToolNix v9.4.2 released

Unfortunately the just-released v9.4.2 contained a nasty regression in both the AVC and HEVC readers. I’m therefore releasing v9.4.2 mere hours after v9.4.1. The only difference is the fix to the aforementioned regression. I’m including the whole announcement for v9.4.1 below.

Somewhat unscheduled I’m releasing v9.4.1. It fixes several errors in mkvmerge, most of which are exploitable via specially crafted file. They were found by fuzzing done by Justin Smith.

Nothing’s been changed regarding the packagin since v9.4.0.

You can download the source code or one of the binaries. The Windows and Mac OS binaries are available. Most of the Linux binaries are still being built and will be available in a couple of hours.

Here’s the full ChangeLog since the previous release:

  • 2016-09-11 Moritz Bunkus <moritz@bunkus.org>
    • Released v9.4.2 "So High".
    • mkvmerge: bug fix: AVC & HEVC readers: release v9.4.1 contains a change to both readers so that they will refuse to handle files where the detected pixel width or height is equal to or less than 0. This check was wrong in certain cases causing mkvmerge to reject a file as an unsupported file type. This has been fixed while keeping the constraints on width & height having to be positive.
    • Released v9.4.1 "Black Rain".
  • 2016-09-07 Moritz Bunkus <moritz@bunkus.org>
    • Note: most of the bugs fixed on 2016-09-06 and 2016-09-07 for issue #1780 are potentially exploitable. The scenario is arbitrary code execution with specially-crafted files. Updating is highly recommended.
    • mkvmerge: bug fix: AVC & HEVC readers: the readers will now refuse to handle files where the detected pixel width or height is equal to or less than 0. Before this fix the muxing process aborted with an assertion inside libMatroska. Fixes the last test case of #1780.
    • mkvmerge: bug fix: HEVC parser: fixed another invalid memory access (beyond the end of allocated space). Fixes two test cases of #1780.
  • 2016-09-06 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: HEVC parser: fixed another invalid memory access (beyond the end of a fixed-size array). Fixes several test cases of #1780.
    • mkvmerge: bug fix: MP4 reader: an error message will be printed instead of an uncaught exception when an invalid atom chunk size is encountered during resync. Fixes a test case of #1780.
    • mkvmerge: bug fix: AAC reader: fixed mkvmerge throwing an uncaught exception due to the sample rate being 0. Fixes a test case of #1780.
    • mkvmerge: bug fix: MP4 reader: fixed an invalid memory access (beyond the end of allocated space). Fixes several test cases of #1780.
    • mkvmerge: bug fix: HEVC parser: fixed an invalid memory access (beyond the end of allocated space). Fixes several test cases of #1780.
    • mkvmerge: bug fix: fixed an invalid memory access (use after free) during global destruction phase. Fixes several test cases of #1780.
  • 2016-09-02 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: using very large –sync values (several minutes) with certain container formats was causing mkvmerge to abort muxing. Fixes #1774.

Have fun :)

MKVToolNix v9.4.1 released

Somewhat unscheduled I’m releasing v9.4.1. It fixes several errors in mkvmerge, most of which are exploitable via specially crafted file. They were found by fuzzing done by Justin Smith.

Nothing’s been changed regarding the packagin since v9.4.0.

You can download the source code or one of the binaries. The Windows and Mac OS binaries are available. Most of the Linux binaries are still being built and will be available in a couple of hours.

Here’s the full ChangeLog since the previous release:

  • 2016-09-11 Moritz Bunkus <moritz@bunkus.org>
    • Released v9.4.1 "Black Rain".
  • 2016-09-07 Moritz Bunkus <moritz@bunkus.org>
    • Note: most of the bugs fixed on 2016-09-06 and 2016-09-07 for issue #1780 are potentially exploitable. The scenario is arbitrary code execution with specially-crafted files. Updating is highly recommended.
    • mkvmerge: bug fix: AVC & HEVC readers: the readers will now refuse to handle files where the detected pixel width or height is equal to or less than 0. Before this fix the muxing process aborted with an assertion inside libMatroska. Fixes the last test case of #1780.
    • mkvmerge: bug fix: HEVC parser: fixed another invalid memory access (beyond the end of allocated space). Fixes two test cases of #1780.
  • 2016-09-06 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: HEVC parser: fixed another invalid memory access (beyond the end of a fixed-size array). Fixes several test cases of #1780.
    • mkvmerge: bug fix: MP4 reader: an error message will be printed instead of an uncaught exception when an invalid atom chunk size is encountered during resync. Fixes a test case of #1780.
    • mkvmerge: bug fix: AAC reader: fixed mkvmerge throwing an uncaught exception due to the sample rate being 0. Fixes a test case of #1780.
    • mkvmerge: bug fix: MP4 reader: fixed an invalid memory access (beyond the end of allocated space). Fixes several test cases of #1780.
    • mkvmerge: bug fix: HEVC parser: fixed an invalid memory access (beyond the end of allocated space). Fixes several test cases of #1780.
    • mkvmerge: bug fix: fixed an invalid memory access (use after free) during global destruction phase. Fixes several test cases of #1780.
  • 2016-09-02 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: using very large –sync values (several minutes) with certain container formats was causing mkvmerge to abort muxing. Fixes #1774.

Have fun :)

MKVToolNix v9.4.0 released

Time for the next release of MKVToolNix. This time it’s really just polishing of existing functionality.

Dear package maintainers: I have to say again that MKVToolNix v9.3.1 and later requires the recently released libEBML v1.3.4 and libMatroska v1.4.5. Even though both libraries are API and ABI compatible with their prior releases this only means that a program compiled against an older version of the library will still work when run against a newer version of the library.

However, MKVToolNix v9.3.1 and newer use features newly introduced in libMatroska v1.4.4. This means that you cannot compile MKVToolNix v1.4.5 and try to run it against v1.4.4 — that’ll fail with symbol lookup errors from ld.

I’ve received multiple reports of MKVToolNix v9.3.x packages that could be installed with libMatroska v1.4.4. This won’t work. Please make the dependency on v1.4.5+ explicit. Thanks.

You can download the source code or one of the binaries. The Windows and Mac OS binaries are available. Most of the Linux binaries are still being built and will be available in a couple of hours.

Here’s the full ChangeLog since the previous release:

  • 2016-08-22 Moritz Bunkus <moritz@bunkus.org>
    • Released v9.4.0 "Knurl".
  • 2016-08-16 Moritz Bunkus <moritz@bunkus.org>
    • mkvpropedit: bug fix: mkvpropedit will no longer say that it’s writing the changes if only attachment changes are specified and none of the specified attachments can be found.
  • 2016-08-11 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: chapter editor bug fix: overly long chapter names don’t cause the GUI’s window to become overly wide anymore. Fixes #1760.
  • 2016-08-10 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: DTS bug fix: if present mkvmerge will use an XLL extension’s sample rate information as the sample rate to put into the track headers. Fixes #1762.
  • 2016-08-06 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: new feature: added support for reading Apple ProRes video from MOV/MP4 files. Patch by Chao Chen (see AUTHORS).
  • 2016-08-02 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: when appending files mkvmerge wasn’t starting clusters on video key frame anymore for the first and all following appended files. Fixes #1757.
  • 2016-07-31 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool enhancement: when adding attachments the GUI will check if there are attachments or attached files with the same name as the file to add. If so the GUI will tell the user and ask for confirmation.
  • 2016-07-30 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: enhancement: mkvmerge now accepts file names in square brackets for appending files, e.g. "mvkmerge -o out.mkv [ in1.avi in2.avi in3.avi ]" instead of "mkvmerge -o out.mkv in1.avi + in2.avi + in3.avi".
  • 2016-07-29 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: VP8 in Ogg: fixed dropping the first frame and the timestamp calculation. Fixes #1754.
    • mkvmerge: bug fix: mkvmerge does no longer emit a warning if no comment header packet is found when reading tracks from Ogg/OGM files. See #1754.
  • 2016-07-19 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool enhancement: the "select a play list to add" dialog does now contain a column with the number of chapters for each play list found.
    • MKVToolNix GUI: job queue enhancement: dragging & dropping a valid .mtxcfg file (either a full job file or one containing only merge settings without the job properties) onto the job queue window will import the dropped .mtxcfg job into the job queue. Rest of the implementation of #1714.
  • 2016-07-18 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool enhancement: dragging & dropping a job queue .mtxcfg file onto the merge tool or using one as a command line parameter to the mkvtoolnix-gui executable will import the .mtxcfg job into the job queue. Part of the implementation of #1714.
  • 2016-07-15 Moritz Bunkus <moritz@bunkus.org>
    • MKVToolNix GUI: merge tool bug fix: the automatic adjustments to the output file name based on the track types selected for muxing and the mechanism for keeping output file names unique had been broken since release v9.3.0. Fixes #1743.
    • MKVToolNix GUI: merge tool enhancement: toggling the WebM mode check box will update the output file name’s extension automatically.

Have fun :)