Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
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. Matroska is a new multimedia file format aiming to become THE new container format for the future.
Site
Download
Change Log
Github
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
2016-09-11 Moritz Bunkus
* 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.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
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.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 9.8.0 "Kuglblids" 2017-01-22
## Important notes
* build system: the included version of the "drake" build tool has been
removed. Since Ruby 2.1 rake has supported parallel builds, too. The
MKVToolNix build system has been adjusted to enable parallel builds by
default.
## New features and enhancements
* mkvmerge: VobSub in Matroska: mkvmerge will now create and use a default
index for VobSub tracks read from Matroska files that are missing their
CodecPrivate element (which normally contains said index). Implements #1854.
* GUI: added checks for several common problems with the installation. These
checks will be executed when the GUI starts, and any problems will be
reported to the user.
* mkvmerge: added the ISO 639-2 language codes "qaa" and "qad" (both are
titled "reserved for local use") as both are used often in France. See #1848
for more information.
* mkvmerge: the JSON identification result now includes a track's codec delay
if set (only for Matroska source files). The JSON schema version has been
bumped to 6.
* mkvmerge: MPEG TS: added a workaround for files where the subtitle packets
are multiplexed properly, but where their timestamps are way off from the
audio and video timestamps. Implements #1841.
* mkvmerge: added support for Digital Video Broadcasting (DVB) subtitles
(CodecID `S_DVBSUB`). They can be read from MPEG transport streams and from
Matroska files. Implements #1843.
## Bug fixes
* mkvmerge: MP4 reader: when an MP4 file contained fewer entries for
timestamps than frames (which they never should), mkvmerge would use 0 as
the timestamp for all the other frames. This resulted in effects such as the
last frame of an output file having a timestamp of 0 and in split files
having a much longer duration than they should have. Fixes #1847.
* GUI: the cache cleanup process that's run automatically when the GUI starts
no longer blocks file identification until it is finished. Additionally the
process will only be run once per release of MKVToolNix. Fixes #1860.
* GUI: certain failures during file identification that can be traced to
broken installations (e.g. mkvmerge being too old) won't be stored in the
cache anymore. Without this fix the GUI would still use the cached failed
identification result even though the underlying might have already been
fixed.
* mkvmerge: fixed that the error message "not enough space on disk" was shown
twice on some operating systems. Fixes #1850.
* mkvmerge, Matroska: if a codec delay is set for a track in the input file,
it is kept. Fixes #1849.
* GUI: multiplexer: changing default values in the preferences (e.g. the
default track language to set) did not affect files whose identification
results had already been cached.
* mkvmerge, MP4: fixed detection of MP3 audio when the object type ID in the
ESDS signals MP2 and the track headers have invalid values for number of
channels or sampling frequency. Fixes #1844.
## Build system changes
* nlohman json-cpp: configure now looks for a system-wide installed version of
the nlohmann json-cpp header-only library. If one is found, it is used;
otherwise the included version will be used. Implements #1858.
* If MKVToolNix is built with rake v10.0.0 or newer, its "multitask" feature
will be turned on allowing automatic parallel builds.
* CURL is no longer used by MKVToolNix and is therefore not required
for building anymore.
## Other changes
* GUI: the update check now uses Qt's networking classes instead of CURL.
* The command line option "--check-for-updates" has been removed, even
though the deprecation warning in release 9.7.0 stated that it would
be removed in 2018.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 9.9.0 "Pick Up" 2017-02-19
## New features and enhancements
* GUI: chapter editor: added a character set selection in the preferences for
text files. If a character set is selected there, it will be used instead of
asking the user when opening text chapter files. Implements #1874.
* GUI: multiplexer: added a column "character set" to the "tracks, chapters
and tags" list view showing the currently selected character set for that
track. Implements #1873.
* mkvmerge: added an --engage option "all_i_slices_are_key_frames" for
treating all I slices of an h.264/AVC stream as key frames in pathological
streams that lack real key frames. Implements #1876.
* GUI: running programs after jobs: added a new variable
<MTX_INSTALLATION_DIRECTORY> for the directory the MKVToolNix GUI executable
is located in.
* mkvmerge: DVB subtitle tracks whose CodecPrivate data is only four bytes
long will now be fixed up to the proper five bytes by adding the subtitling
type byte.
* mkvmerge: MP4 reader: "ctts" version 1 atoms are now supported.
## Bug fixes
* mkvmerge: AC-3 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 #1864.
* mkvmerge: MP4 reader: mkvmerge was only reading a small part of MP4 DASH
files where the first "moov" "mdat" atoms occur before the first "moof"
atom. This is part of the fix for #1867.
* mkvmerge: MP4 reader: edit list ("edts" atoms) that are part of the "moof"
atoms used in MP4 DASH files weren't parsed. Instead the edit lists from the
main track headers inside the "moov" atom were used. This is part of the fix
for #1867.
* mkvmerge: MP4 reader: when an MP4 DASH file contained both normal chunk
offset table ("stco"/"co64" atoms) in their regular "moov" atoms, a
sample-to-chunk table ("stsc" atom) whose last entry had a "samples per
chunk" count greater than 1 and DASH "trun" atoms, then mkvmerge was
calculating wrong positions the frame content. This is part of the fix for
#1867.
* mkvmerge: MP4 reader: mkvmerge couldn't deal with the key frame index table
having duplicate entries. The result was that only key frames up to and
including the first duplicate entry were marked as key frames in the output
file. All other frames weren't, even though some of them were referenced
from the key frame table after the first duplicate entry. This is part of
the fix for #1867.
* mkvmerge: MP4 reader: when an MP4 file contained more than one copy of the
"moov" atom (the track headers etc.), mkvmerge was parsing them all adding
tracks multiple times. Fix for #1877.
* mkvmerge: MP4 reader: fixed an integer overflow during the timestamp
calculation leading to files with wrong timestamps. Such files could not be
played back properly by most players. Fixes #1883.
* mkvmerge: MPEG TS reader: if the PMT lists a DVBSUB track, mkvmerge will now
recognize it without having to find a packet for it within the probed range.
* mkvmerge: splitting by parts (both the "timestamps" and the "frames"
variants): fixed the calculation of track statistics tags. When calculating
the duration the skipped portions weren't taken into account leading to a
too-high duration. As a consequence the BPS tag (bits per second) was wrong,
too. Fixes #1885.
* mkvmerge: reading files with DVB/HDMV TextSV subtitle tracks with invalid
CodecPrivate caused mkvmerge to abort with an error from boost::format about
the format string not having enough arguments. Fixes #1894.
* mkvmerge: fixed misdetection of certain AC-3 files as MP3 files which led to
an error message that "the demultiplexer could not be initialized".
* mkvmerge: fixed huge memory consumption when appending big Matroska files
with sparse tracks (e.g. forced subtitle tracks). The Matroska reader will
now queue at most 128 MB of data. Fixes #1893.
* mkvmerge: MP4 reader: the timestamps of all multiplexed tracks will now be
0-based properly.
* mkvmerge: MP4 reader: the DTS-to-PTS offsets given by the "ctts" atoms are
now applied for all tracks containing a "ctts" atom, not just h.264 & h.265
tracks.
## Build system changes
* Up to and including release 9.8.0 the man pages and their translations came
pre-built and bundled with the source code. Those pre-built files have now
been removed and must be built during the build process. Therefore the tool
"xsltproc" and the DocBook XSL stylesheets for man pages are now required
dependencies. Additionally the tool "po4a" must be installed for the
translated man pages to be built and installed, though this is optional.
In order to facilitate finding the new requirements new options have been
added to confiure: "--with-xsltproc=prog", "--with-docbook-xsl=dir",
"--with-po4a=prog" and "--with-po4a-translate=prog.
* pugixml detection will be attempted via "pkg-config" first. If that fails,
"configure" will fall back to the previous method of trying just to compile
and link a test program with the standard include and library locations.
Implements #1891.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 10.0.0 "To Drown In You" 2017-03-25
## New features and enhancements
* mkvmerge: AVC/h.264 parser: mkvmerge will now drop all frames before the
first key frame as they cannot be decoded properly anyway. See #1908.
* mkvmerge: HEVC/h.265 parser: mkvmerge will now drop all frames before the
first key frame as they cannot be decoded properly anyway. See #1908.
* mkvmerge: HEVC/h.265 parser: added a workaround for invalid values for the
"default display window" in the VUI parameters of sequence parameter
sets. Fixes #1907.
## Bug fixes
* mkvmerge: MP4 reader: fixed track offsets being wrong in certain situations
regarding the presence or absence of edit lists ('elst' atoms) & composition
timestamps ('ctts' atoms). Fixes #1889.
* mkvmerge: MP4 reader: offsets in "ctts" are now always treated as signed
integers, even with version 0 atoms.
* mkvinfo: the timestamps of SimpleBlocks with negative timestamps are now
shown correctly.
* mkvmerge: Matroska reader: fixed handling BlockGroups and SimpleBlocks with
negative timestamps.
* mkvmerge: MP3 packetizer: the MP3 packetizer will no longer drop timestamps
from source containers if they go backwards. This keeps A/V in sync for
files where the source was in sync even though their timestamps aren't
monotonic increasing. Fixes #1909.
* mkvmerge: AVC/h.264 parser: mkvmerge will now drop timestamps from the
source container if no frame is emitted for that timestamp. Fixes #1908.
* mkvmerge: HEVC/h.265 parser: mkvmerge will now drop timestamps from the
source container if no frame is emitted for that timestamp. Fixes the HEVC
equivalent of the problem with AVC described in #1908.
* mkvextract: SSA/ASS: fixed extraction when the "Format" line in the
"[Events]" section contains less fields than the default for SSA/ASS would
indicate. Fixes #1913.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 11.0.0 "Alive" 2017-04-22
## New features and enhancements
* mkvmerge: FLAC reader: added support for handling embedded pictures as
attachments. Implements #1942.
* mkvmerge: MP4 reader: merged pull request #1804 adding support for parsing
the "COLR" atom and including its values as track headers.
* MKVToolNix GUI: watch jobs: the user can now have the GUI execute an action
once as soon as the current job or the whole queue finishes. The actions are
the same ones that can be configured to be run automatically after job or
queue completion.
* MKVToolNix GUI: implemented several built-in actions that can be executed
either on special events or once via the "watch jobs" tool. These are:
playing an audio file (implemented for all operating systems); hibernating,
sleeping and shutting down the computer (only implemented for Windows and
for Linux systems using systemd).
* MKVToolNix GUI: multiplex tool: added a new option for what to do after
starting to multiplex/adding to the job queue: "close current settings" will
close the current multiplex settings without opening new ones.
## Bug fixes
* mkvmerge: AAC parser: fixed mis-detection of certain data as valid ADTS AAC
headers resulting in memory allocation failures. Fixes #1941.
* mkvmerge: AVC/h.264 parser: mkvmerge will now ignore bogus timing
information in the sequence parameter sets (values indicating more than
100000 progressive frames per second). Fixes #1946.
* mkvmerge: AVC/h.264 & HEVC/h.265 parsers: all trailing zero bytes will now
be removed from NALUs. Fixes #1952.
* mkvmerge: HEVC/h.265 parser: fixed copying the `bitstream_restriction_flag`
and all dependent fields in the VUI parameters of the sequence parameter
sets. Fixes #1924.
* mkvmerge: HEVC/h.265 parser: fixed the calculation of the number of
parameter set arrays in the HEVCC data structure stored in
CodecPrivate. Fixes the video-related part of #1938.
* mkvmerge: HEVC/h.265 parser: fixed writing superfluous and uninitialized
bytes at the end of the HEVCC data structure stored in CodecPrivate. Another
fix for the video-related part of #1938.
* mkvmerge: HEVC/h.265 parser: fixed the assumption that the HEVCC data
structure always includes arrays for all parameter set types (VPS, SPS, PPS
and SEI), and that the order is always VPS → SPS → PPS → SEI. Instead now
only the arrays actually present are parsed, and they can be in any order.
This fixes mkvinfo's output for Matroska files created from files such as
the one from #1938.
* mkvmerge: AVC/h.264 packetizer: when reading a framed track (e.g. from
Matroska or MP4 files), specifying a default duration as fields (e.g. `50i`)
would result in double the actual duration for each frame and the track's
default duration header field. Fixes #1916.
* mkvmerge: Matroska reader: invalid track language elements are now treated as
if they were set to `und` = "undetermined". See #1929 for context.
* mkvmerge: MPEG TS reader, AAC: mkvmerge will now require five consecutive
AAC headers with identical parameters before track type determination is
considered valid. This avoids false positives and consequently wrong track
parameters. Fixes the audio-related part of #1938.
* mkvmerge: fixed an endless loop in certain circumstances when splitting by
`parts` or `parts-frames` and the start of the file is discarded. Fixes
#1944.
* MKVToolNix GUI: multiplexer tool: the "show command line" dialog will no
longer include the mkvmerge executable's location as the first argument for
the two "MKVToolNix option files" escape modes. Fixes #1949.
* MKVToolNix GUI, header editor: empty track language elements are now treated
the same as those set to invalid ISO 639-2 codes: as if they were set to
`und` = "undetermined". See #1929 for context.
## Build system changes
* bug fix: configure now looks for the `strings` binary by using the
`AC_CHECK_TOOL()` autoconf macro. That way it will be found in multiarch
setups, too. Fixes #1923.
* bug fix: the environment variable USER_CXXFLAGS was accidentally removed
from the compiler flags in release 9.8.0. It's been re-added. Fixes #1925.
* The `.desktop` files have been renamed to
`org.bunkus.mkvtoolnix-gui.desktop` and `org.bunkus.mkvinfo.desktop`. This
allows Wayland compositors to associate the correct icons with running
applications for e.g. task switchers. Fixes #1948.
* Qt's multimedia component is required for compilation of the GUIs since
version 11.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 12.0.0 "Trust / Lust" 2017-05-20
## New features and enhancements
* MKVToolNix GUI: the key combination Ctrl+Shift+Space will now toggle the
selection of the current item in all tree views where multiple selections
are allowed. Implements #1983.
* MKVToolNix GUI: chapter editor: added the extension `*.cue` (for cue sheet
files) to the "open chapter file" dialog.
* mkvmerge: cue sheet parser: if the cue sheet contains a non-empty `TITLE`
entry and if no other segment title has been set yet, then the segment title
will be set to the cue sheet's `TITLE` value. Implements #1977.
* mkvmerge, MKVToolNix GUI (multiplexer): added an option `--no-date` that
prevents the "date" field from being written to the segment information
headers. Implements one half of #1964.
* mkvpropedit, MKVToolNix GUI: header editor: added support for editing the
"date" segment information field. Implements the other half of #1964.
## Bug fixes
* MKVToolNix GUI: preferences → job actions, type "play audio file": the GUI
will no longer clear the audio file name input if the user aborts the audio
file selection dialog.
* MKVToolNix GUI: preferences → job actions, type "play audio file", on
Windows: the default "play audio" action was pointing to the wrong
directory. Existing configurations with such a wrong path will be fixed
automatically upon starting the GUI. Fixes #1956.
* mkvmerge: HEVC/h.265 parser: fixed the superfluous copying of the
`bitstream_restriction_flag` and its dependent flags in the VUI parameters
of the sequence parameter sets if the timing information is present,
too. This fixes #1924 properly, and it also fixes #1958.
* mkvmerge: MPEG TS reader, AAC parser: the MPEG TS reader will now force the
AAC parser to use the multiplex mode that the MPEG TS reader has detected
(e.g. LOAS/LATM). This prevents the AAC packetizer from mis-detecting it in
its own attempt to identify the mode. Fixes #1957.
* mkvmerge: MPEG TS reader: valid MPEG transport streams that start with an
h.264/h.265 start code (e.g. a file created by cutting at an arbitrary
position) were not recognized as a supported file type.
* mkvmerge: MPEG TS reader: fixed a potential read access from invalid memory
addresses in the code parsing the program map table (PMT).
* mkvmerge: MPEG TS reader: if packets are encountered that belong to a PID
not listed in the program map table (PMT), mkvmerge will attempt to
determine their type and codec from the content. This supported content
types are AAC (ADTS only) and AC-3. Fixes #1980.
* mkvmerge: MP4 reader: fixed finding and parsing the `colr` atom if there are
more than one video extension atoms and the `colr` atom is not the first
one.
* mkvmerge: MP4 reader: the `nclx` colour type of the `colr` atom is now
recognized, too (as defined by ISO/IEC 14496-12, "ISO base media format").
* configure: fixed configure aborting if a `moc`, `uic`, `rcc` or `qmake`
binary is found, but the binary's version is too old. Fixes #1979.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 13.0.0 "The Juggler" 2017-06-25
## New features and enhancements
* mkvmerge: MPEG TS reader: information about multiple programs will be output
as container properties during verbose/JSON identification. See #1990 for
the use case.
* MKVToolNix GUI: multiplex tool: added a column "program" to the tracks
list. Certain container types such as MPEG transport streams can contain
multiple programs. The new column will contain the service name (think TV
station names such as "arte HD") for such streams. Implements the GUI part
of #1990.
* MKVToolNix GUI: multiplex tool: the dialog asking the user what to do with
dropped files (add to current settings, add to new settings etc.) now
remembers the previous decision and defaults to it the next time it's
shown. Implements #1997.
* MKVToolNix GUI: tabs can now be closed by pressing the middle mouse
button. Implements #1998.
## Bug fixes
* mkvmerge: MP4 reader: MPEG-1/2 video read from MP4 files was written with an
invalid codec ID (e.g. `V_MPEG7`) in certain cases. Fixes #1995.
* mkvmerge: MPEG PS reader: made the file type detection less strict so that
garbage at the start of the file doesn't prevent detection. Fixes #2008.
* mkvmerge: MPEG PS reader: (E-)AC-3 tracks were not detected if the very
first packet for that track didn't contain a full (E-)AC-3 frame. Fixes
#2016.
* mkvmerge: MPEG TS reader: fixed mkvmerge not detecting all tracks in MPEG
transport streams containing multiple programs. Fixes one part of #1990.
* mkvmerge: MPEG TS reader: fixed track content being broken for some tracks
read from MPEG transport streams containing multiple programs. Fixes another
part of #1990.
* mkvmerge: JSON identification: the `stream_id` and `sub_stream_id` track
properties were output as hexadecimal strings instead of unsigned
integers. As the `ts_pid` track property was only used for MPEG transport
streams, its value is now output as `stream_id` instead, and the `ts_pid`
property has been removed. The JSON schema version has been bumped to 8 due
to this change.
* mkvmerge: fixed a crash when appending video tracks where one track has a
CodecPrivate member and the other one doesn't.
* mkvmerge: track statistics tags: the `NUMBER_OF_BYTES` tag is supposed to
contain the number of bytes in a track before any of the content encoding
schemes such as lossless compression is applied; however, mkvmerge was
wrongfully using the number of bytes after the schemes had been
applied. Fixes #2022.
* mkvmerge: CLPI & MPLS parsers: MPLS and CLPI files with version number
`0300` as used on Ultra HD Blu-ray Discs are now accepted as well. Fixes
#2010.
* mkvpropedit: fixed a crash when the selector used for `--tags` is invalid.
* MKVToolNix GUI: fixed computation of value of total progress bar for multiple
jobs running. Fixes #2005.
* MKVToolNix GUI: multiplexer, adding new attachments: when the GUI checks if
there's an attachment with the same name it will now disregard disabled
attached files. Fixes #2001.
* Debian/Ubuntu packaging: during a `dpkg-buildpackage` run the test suite was
failing when a non-English locale was active and MKVToolNix packages had
already been installed. Fixes #2011.
Posts: 8,358
Threads: 4,009
Thanks Received: 11,372 in 4,807 posts
Thanks Given: 33,545
Joined: Jan 2016
Reputation:
196
000000
# Version 15.0.0 "Duel with the Devil" 2017-08-19
## 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.
|