Age | Commit message (Collapse) | Author | Files | Lines |
|
Version 49.0.0 "Sick Of Losing Soulmates" 2020-08-02
New features and enhancements
* mkvmerge: added support for copying the new track header elements
`BlockAddIDName`, `BlockAddIDType`, `BlockAddIDValue` and
`BlockAddIDExtraData` from Matroska files if they exist.
* mkvinfo: added support for the new track header elements
`BlockAdditionMapping`, `BlockAddIDName`, BlockAddIDType`, `BlockAddIDValue`
and `BlockAddIDExtraData`.
* MKVToolNix GUI: multiplexer: the list of recent directories can now be
edited in the preferences → "Multiplexer" → "Destination file
name".
* MKVToolNix GUI: preferences: the values in the various "predefined values"
lists can now be re-ordered freely by dragging & dropping.
Bug fixes
* mkvmerge: Matroska reader: when reading tracks (e.g. a subtitle track) from
Matroska files with their `default track` flag set to `yes`, and when
overwriting those via the command line to `no`, `mkvmerge` would not promote
additional tracks of the same type from other files (e.g. another subtitle
track from an SRT file).
* mkvmerge: SRT reader: empty lines inside entries were doubled.
* mkvmerge: subtitles: when calculating the rounded duration of each entry the
error from rounding the corresponding timestamp will be taken into
account.
* mkvextract: SSA/ASS extraction: mkvextract is no longer inserting empty
lines before the `Dialogue:` lines.
* mkvextract: USF subtitles: start & end timestamps were too high by a factor
of 1.000.000.
* MKVToolNix: info tool: when saving to a text file the checkbox "Save as
default for saving output to text files" did nothing.
* MKVToolNix: info tool: when saving to a text file in "all elements in a
tree-like structure" mode, the GUI always stopped at the first cluster
regardless of the setting of the "verbosity" option.
* MKVToolNix GUI: preferences: when tooltips were disabled the dialogs for
adding new entries to the various "predefined values" lists were missing
their texts.
* Windows installer: the images are shown again.
* configure: fixed detection of QtDBus.
Build system changes
* libMatroska v1.6.1 is now required. The bundled version has been updated to
that version.
|
|
Version 48.0.0 "Sick Of Losing Soulmates" 2020-06-27
New features and enhancements
* mkvmerge: AC-3: file identification will report AC-3 tracks encoded in Dolby
Surround EX as codec "AC-3 Dolby Surround EX".
* MKVToolNix GUI: multiplexer: on new installations the GUI will now recognize
all known ISO 639-2 language codes in file names by default instead of only
the top 100 of languages by native speakers.
* MKVToolNix GUI: multiplexer: on new installations the list of "often used
languages" will by default only contain certain agnostic ones ("multiple
languages", "no linguistic content", "reserved for local use", "uncoded
languages"), "English" and the default user interface language. The "list of
spoken languages by native speaks" isn't used anymore.
* MKVToolNix GUI: header editor: added an option to remove all attachments to
the tree context menu.
* MKVToolNix GUI: while the GUI is running it will remember the last page that
was selected when the preferences dialog is closed. Upon re-opening the
preferences that page will be selected by default.
Bug fixes
* mkvmerge: fixed a segmentation fault when exiting prematurely due to write
errors such as the destination having run out of space.
* mkvmerge: DTS: fixed wrong channel count for DTS tracks with XCh
extensions.
* mkvmerge: MPEG TS reader: fixed detecting h.264/AVC and h.265/HEVC tracks
that consist of only a single frame.
* mkvmerge: MPEG TS reader: fixed handling of unbounded PES sizes for tracks
that consist of only a single PES packet.
* mkvmerge: MPEG TS reader: PGS subtitle tracks are now exempt from the
"detect bogus subtitle timestamps" heuristic which could lead to some PGS
subtitles not being timestamped correctly. Symptoms were that they were
shown at the wrong time or that they were shown indefinitely.
* mkvmerge: MPEG TS reader: when reading MPLS playlists the start timestamps
of a play items were handled wrong: all the timestamps of packets read were
compared to that start timestamp, dropping those packets whose timestamps
were smaller than the play item's start timestamp. The correct behavior is
to accept all packets as soon as the first one with a timestamp equal to or
larger than the play item's start timestamp is encountered. This could
result in PGS subtitle entries located right at the start of the play item
being garbled/lost as they consist of multiple PES packets for which some
timestamps are often slightly smaller.
* mkvmerge: MPEG TS reader: when reading MPLS playlists mkvmerge will no
longer read the whole M2TS files they reference, processing only the packets
lying inside the timestamp range given by the playlists's play item's start
& end timestamps. Instead mkvmerge will use the index information present in
corresponding clip information (CLPI) files in order to seek to the nearest
file position of the play item's start timestamp. Additionally mkvmerge will
simply stop processing a file once the end timestamp is seen. This change
greatly speeds up processing files from which only small portions must be
read.
* mkvmerge: WavPack: fixed support for files created by v5 of the
program. Checksums, DSD audio data and non-standard sampling rates are
handled correctly. Patch by David Bryant.
* MKVToolNix GUI: multiplexer: fixed the cursor being positioned wrong after
entering or pasting characters that aren't allowed in file names into the
"destination file" control.
Build system changes
* libEBML v1.4.0 and libMatroska v1.6.0 are now required.
Other changes
* The source code repository's main development branch was renamed to `main`.
|
|
|
|
Version 47.0.0 "Black Flag"
New features and enhancements
* mkvmerge: chapters: mkvmerge can now read chapters from DVDs if the user
specifies the path to a DVD folder structure via the `--chapters …`
parameter. By default chapters from the first title will be imported. This
can be changed by append `:<title number>` to the file/directory name in the
`--chapters …` argument, e.g. `--chapters /srv/dvds/BigBuckBunny/VIDEO_TS:3`
This feature requires mkvmerge to have been built with the `libdvdread`
library.
* mkvmerge: added `--engage append_and_split_flac` that enables mkvmerge to
append and split FLAC tracks, restoring pre-v45 behavior. The resulting
tracks will be broken: the official FLAC tools will not be able to decode
them and seeking will not work as expected.
* MKVToolNix GUI: multiplexer: added support for mkvmerge's new support for
reading chapters from DVDs if both have been built with the `libdvdread`
library.
* MKVToolNix GUI: multiplexer: when deriving languages from file names the GUI
will now look for simplified language names instead of the full ones
(e.g. instead of looking for "Greek, Modern (1453-)" it would simply look
for "Greek").
* MKVToolNix GUI: multiplexer: the options in the "additional command-line
options" dialog are now sorted alphabetically. Additionally the
`--append-mode` option has been added as one of the only missing global
options.
* MKVToolNix GUI: chapter editor: the chapter editor can now read chapters
from DVDs if MKVToolNix has been build with the `libdvdread` library.
* MKVToolNix GUI: header editor: added an option in the preferences for
displaying all date & time values in UTC instead of the local time
zone.
Bug fixes
* all: fixed a crash when using the `MTX_LOGGER=file` syntax for logging debug
messages without specifying a file name to log to. It will now log to a file
called `mkvtoolnix-debug.log` in the system's default temporary directory,
as initially intended.
Build system changes
* The [`libdvdread`](https://www.videolan.org/developers/libdvdnav.html)
library will be used if found via `pkg-config`. If it is found, support for
reading chapters from DVDs will be enabled in `mkvmerge` and the MKVToolNix
GUI.
* Boost's Date/Time, Lexical Cast, Range, Range Adaptors, Tri-Bool, Variant
libraries are not used anymore.
* MKVToolNix now requires a C++ compiler & standard library that support the
following features of the C++17 standard: "`std::variant`", "`std::gcd`".
For the GNU Compiler Collection (gcc) this means v7 or newer; for clang it
means v4 or newer — the same versions required by earlier MKVToolNix
versions.
* MKVToolNix now requires version 6.1.0 of fmtlib or later for the
`fmt::to_string` function and bugfixes to the formatting of floating point
numbers. If a system-wide version is installed that's older, the bundled
copy will be used.
* The bundled version of fmtlib has been updated to release 6.2.1.
|
|
|
|
Version 46.0.0 "No Deeper Escape"
New features and enhancements
* mkvmerge: when splitting, the placeholder `%c` can be used in the
destination file name. It'll be replaced by the name of the first chapter in
the file.
* mkvmerge: when reading MPLS playlists mkvmerge will include a tag named
`SOURCE_ID` in the track's statistics tags that conveys the fact that the
source was a Blu-ray and what the track's ID was in the source
container. When reading Matroska file existing `SOURCE_ID` tags will be
kept. The format used is the same format MakeMKV uses.
* mkvmerge: for audio-only files mkvmerge will now write a cue entry every
500ms instead of every 2s.
* MKVToolNix GUI: job actions: split up the option "execute when the job
finishes successfully or with warnings" into two separate options: "…when
finishes successfully" and "…when exits with warnings".
Bug fixes
* mkvmerge: Matroska reader: when regenerating UIDs for chapters mkvmerge will
now fix referencing tag chapter UID targets to have the same values.
* mkvmerge: MP4 reader: fixed a crash that could potentially happen while
trying to identify H.265/HEVC tracks.
* mkvmerge: MP4 reader: when reading H.265/HEVC tracks without a frame offset
table (`ctts` atom) present, mkvmerge did not parse the `hevcC` structure
correctly in certain cases, causing no video frames to be output at all or
the output not being playable.
* mkvmerge: MPLS handling/MPEG TS reader: timestamp restrictions as given in
an MPLS file were only honored for the first play item, not for subsequent
play items. For those play items the whole referenced file was always
copied.
* mkvmerge: MPLS handling/MPEG TS reader: under certain circumstances mkvmerge
copied one frame too many before switching to the next play item.
* mkvmerge: for audio-only files cues will only be created for I frames
(important for e.g. TrueHD where decoding can only start on a sync
frame).
* MKVToolNix GUI: fixed a crash that happened when closing the preferences
after having closed at least one multiplexer tab.
* MKVToolNix GUI: macOS: changed the default of the "elide tab header labels"
feature introduced in v45 from "no" to "yes" to mirror how versions before
v45 behaved on macOS.
|
|
|
|
Version 45.0.0 "Heaven in Pennies"
New features and enhancements
* mkvmerge: mkvmerge has never supported appending & splitting FLAC audio
tracks. mkvmerge will now emit error messages when the user attempts either
instead of continuing and creating invalid FLAC tracks.
* MKVToolNix GUI: added an option in the preferences to turn on eliding text
on tab headers. If enabled, tab names will be shortened so that all tab
headers fit into the window's width.
* MKVToolNix GUI: added an option in the preferences to disable all tooltips.
* MKVToolNix GUI: Windows: debug output sent via Qt's to Windows' debugging
facility will use a more verbose message format including the application
name, making it easier to filter for in SysInternal's "Debug View" utility.
* MKVToolNix GUI: multiplexer: if the file identification fails due to a JSON
parser error, the output generated by `mkvmerge` will be output via Qt's
debugging facility (viewable with SysInternal's "Debug View" utility on
Windows; on other systems it's output on `STDERR`) allowing insight into
what's gone wrong.
* MKVToolNix GUI: multiplexer: if an error occurs during file identification,
the name of the processed file will be mentioned in the error message.
* MKVToolNix GUI: multiplexer: if an error occurs during identification of
multiple files, the GUI will ask the user whether to continue or abort the
identification process.
* MKVToolNix GUI: job queue: added an option in the preferences for removing
completed jobs when exiting the program depending on their status.
Bug fixes
* mkvmerge: H.265/HEVC packetizer: fixed changing the NALU size length, it was
using the wrong offset into the `hevcC` structure.
* mkvmerge: MP4 reader: fixed calculating the duration of video tracks that
only contain a single frame.
* mkvmerge: MP4 reader: if there's no frame offset table (`ctts` atom) present
for H.265/HEVC video tracks, mkvmerge will determine the timestamp order
itself instead of relying on the timestamps in the MP4 being in the
presentation order required by Matroska.
* mkvpropedit: Windows: mkvpropedit wasn't caching when reading the file to
modify, slowing down operations such as adding track statistics tags
considerably.
* MKVToolNix GUI: multiplexer: when using the title as part of the destination
file name (both automatically as well as using the "copy title to
destination file name" function) all characters that aren't valid in a file
name are replaced by hyphens.
* MKVToolNix GUI: multiplexer: the "copy title to destination file name"
function was broken when the "make file name unique" option in the
preferences was disabled. In that case the file base name was removed
regardless of what the title was set to at the time.
* MKVToolNix GUI: multiplexer: when using the "show command line" menu option
on Windows the path to the `mkvmerge` executable was shown with forward
slashes instead of backslashes. This is a purely cosmetic fix as Windows
supports both forward and backward slashes.
* MKVToolNix GUI: multiplexer: when adding Blu-ray playlists the GUI used to
only look for the English version of the disc library information (title &
cover images). Now the GUI will present all disc library entries in the
"select playlist to add" dialog & let the user chose which one to use (if
any).
* MKVToolNix GUI: multiplexer, info tool: fixed the "warn before overwriting"
check wrt. jobs creating the same file.
|
|
recursive bump for the dependency change
|
|
Version 44.0.0 "Domino"
New features and enhancements
* MKVToolNix GUI: header editor: the attachments can now be reordered via drag
& drop.
Bug fixes
* mkvmerge: Matroska reader: when encountering certain errors in the track
headers such as the codec ID not being present mkvmerge will simply skip
those tracks instead of exiting with an error.
* MKVToolNix GUI: multiplexer: the "ask before overwriting" functionality did
not look for the correct file names when splitting was active.
|
|
|
|
Version 43.0.0 "The Quartermaster":
New features and enhancements
* MKVToolNix GUI: using one of the command line options `--info`,
`--edit-headers` or `--edit-chapters` will make the GUI select the
corresponding tool on startup even if no further file name is
given.
* MKVToolNix GUI: multiplexer: added a setting in the preferences for changing
the location of the MediaInfo executable for when the user accidentally
selected the wrong one.
Bug fixes
* mkvmerge: AVC/h.264 parser: the order of the NALUs before each key frame was
sometimes wrong: mkvmerge wrote SPS & PPS after SEI NALUs. Now SPS & PPS
NALUs are always written before the other NALUs. Patch by Torsten
Hauska.
* mkvmerge: AVC/h.264 parser: when additional SPS or PPS NALUs (with IDs that
haven't been seen so far) are found mid-stream, mkvmerge will prepend all
following key frames with all current valid SPS & PPS NALUs (just like when
SPS & PPS NALUs are overwritten mid-stream).
* mkvmerge: MPEG TS reader: fixed detection of MPEG-1/2 video tracks
consisting of very few frames.
* mkvmerge: Ogg Opus reader: fixed the handling of Ogg Opus streams that
contain a just one Ogg page (`mkvmerge` aborted with an exception).
* MKVToolNix GUI: multiplexer: dragging & dropping XML files with chapters or
tags to the GUI's window was broken in v42. Instead of adding the file names
to the appropriate input boxes the GUI was running mkvmerge for file
identification purposes which then failed.
|
|
|
|
|
|
|
|
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.
|
|
Bump PKGREVISION by change of default Ruby version from 2.4.x to 2.6.x.
These packages are depends on Ruby in some ways.
|
|
Version 41.0.0 "Smarra"
New features and enhancements
* mkvmerge: Matroska reader: Vorbis tracks: stream comments (aka Vorbis
comments) will be converted to Matroska attachments (for cover arts) and
Matroska track tags (for other comments). Additionally the stream comments
will be removed from Vorbis headers.
* mkvmerge: MP4 reader: added support for reading Opus audio from MP4
files.
* mkvmerge: MP4 reader: added support for reading VP9 video from MP4
files.
* mkvmerge: Ogg reader: Vorbis, Opus & VP8 streams: stream comments (aka
Vorbis comments) will be converted to Matroska attachments (for cover arts)
and Matroska track tags (for other comments). Additionally the stream
comments will be removed from Vorbis headers.
* mkvmerge: WAV reader: added support for reading RF64 files.
* MKVToolNix GUI: multiplexer: the list of predefined track names is now split
up into three lists, one for each track type (audio, video &
subtitles).
* MKVToolNix GUI: multiplexer: when trying to add thumbnails for a Blu-ray the
GUI will determine the thumbnail's pixel size from the thumbnail files if
the XML file doesn't contain that information. This works for JPEG and PNG
files.
* MKVToolNix GUI: general: line edits & combo boxes will now have a "clear
text" button appear whenever they're not empty.
* MKVToolNix GUI: update check: the dialog showing the latest news & version
information states explicitly where the links take the user (the MKVToolNix
`NEWS.md` file and YouTube respectively).
Bug fixes
* mkvmerge: Matroska reader: mkvmerge did not copy the codec's private data
when reading WavPack from Matroska files.
* mkvmerge: MPLS handling: re-added caching when using MPLS playlists as input
files.
* mkvmerge: MPEG TS reader: when reading an MPLS playlist, the calculation of
the minimum timestamp to use for shifting all output timestamps to zero was
wrong. It was wrongfully considering timestamps from packets it would not
copy due to the MPLS's timestamp restrictions. This could lead to the first
timestamps in the output file being quite large, e.g. more than a couple of
minutes, causing sync problems when multiplexing together with other
files.
* MKVToolNix GUI: multiplexer: the automatic switch between aspect ratio &
display width/height wasn't reflected in the configuration generated for
`mkvmerge`. The user had to change between the two settings manually
* MKVToolNix GUI: multiplexer: the progress dialog shown when scanning a
Blu-ray wasn't closed properly in certain situations.
* MKVToolNix GUI: general: the configured font was not applied to a lot of
controls (e.g. the file & track lists or the menu entries) on application
startup. Instead the user had to open & close the preferences in order for
the font to be applied to all controls.
|
|
|
|
Version 40.0.0 "Old Town Road + Pony":
New features and enhancements
* mkvmerge: MP4 reader: added support for BMP covert art images.
* MKVToolNix GUI: multiplexer: added an option to disable deriving the
destination file name from the file title.
* MKVToolNix GUI: multiplexer: the content of the "stereoscopy" combo box has
been simplified making the box's minimum width much smaller, allowing the
user to resize the GUI's whole window to a much smaller width.
* MKVToolNix GUI: multiplexer: whenever the user changes the "aspect ratio" or
"display dimensions" controls, the corresponding radio button will be
activated automatically.
* MKVToolNix GUI: Windows: added a setting in the preferences to disable the
GUI's dark color mode even if Windows's app color mode is set to
dark.
* MKVToolNix GUI: Windows: replaced the dark mode introduced in v39 with
another dark mode that's less wasteful with space between widgets.
Bug fixes
* mkvmerge: MP4 reader: mkvmerge was reading eight bytes too many for cover
art images. This could cause file identification to fail when the cover art
was located at the end of the MP4 file. Even if it succeeded, this meant too
much data present in the attachment.
* mkvmerge: MP4 reader: covert art images with unknown image types will be
skipped instead of treated as JPEG images.
Build system changes
* Qt 5.9.0 or newer is now required for building MKVToolNix GUI.
|
|
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 38.0.0 "The Silent Type":
New features and enhancements
* mkvextract: chapters, tags & cue sheets will now be written to standard
output if no file name is given, same as if `-` is given as the file name.
* MKVToolNix GUI: job queue: added a new setting in the preferences' "job
queue & job status" section that, when enabled, will cause the GUI to remove
all output files created by jobs that are either aborted by the user or that
end in an error.
Bug fixes
* all programs: macOS: fixed file access if the file name (including all path
components) contains any Unicode character where NFC (Normalization Form
Canonical Composed) and NFD (Normalization Form Canonical Decomposed)
differ, e.g. German Umlauts.
* mkvmerge: when splitting by chapters the user can now split by chapters
coming from one of the appended files, too.
* mkvmerge: AAC reader: fixed reading codec parameters (channels, sample rate)
if a file starts with garbage that includes valid-but-bogus AAC
headers.
* MKVToolNix GUI: Hebrew was added to the list of often-used languages so that
it can be selected by default again.
* MKVToolNix GUI: when updating the GUI's settings from v37.0.0 or older, the
GUI checks if the list of often-used languages equals the built-in list from
v36.0.0. If it does, it will be updated to the built-in list changed in
v37.0.0.
Build system changes
* Boost's Operators header library is now required.
|
|
|
|
Version 37.0.0 "Leave It"
New features and enhancements
* MKVToolNix GUI: the list of often used languages now contains those from
Wikipedia's "List of languages by native speakers" by default. Also by
default only those languages will be shown in the language drop-down boxes.
Bug fixes
* MKVToolNix GUI: multiplexer: fixed a bug in the "make destination file names
unique" logic that caused an existing number-in-parenthesis at the end of
the file base name to be removed in certain situations (e.g. when the first
added file was named `m (3).mkv` and both `m (3) (1).mkv` and `m (3)
(2).mkv` existed already, the GUI was suddenly use `m.mkv` instead of `m (3)
(3).mkv`).
* MKVToolNix GUI: on Windows the GUI is built with a slightly older version of
the Qt library again (5.12.4). The Qt version used in release v36.0.0,
v5.13.0, lead to crashes when doing certain things such as selecting
multiple tracks in the multiplexer.
|
|
|
|
Version 36.0.0 "Is That Jazz?"
New features and enhancements
* mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and
H.265/HEVC tracks whose pixel dimensions differ.
Bug fixes
* source code: fixed building with Boost 1.71.0.
* all: fixed the spelling of the H.264 & H.265 codec names.
* mkvmerge: Blu-ray MPLS handling: mkvmerge will now find corresponding M2TS
files even if the `clip_codec_identifier` playlist item field is not set to
`M2TS` in the MPLS file.
* mkvmerge: fixed handling of text files that use both DOS-style and
Unix-style line endings resulting in problems such as text subtitle files
not being parsed correctly.
|
|
Version 35.0.0 "All The Love In The World"
New features and enhancements
* mkvmerge: JSON identification: the "codec name" track property will be
output as `codec_name`. The JSON schema has been bumped to v12 for this
change.
* MKVToolNix GUI: job queue: added a new type of action to execute after job
completion: deleting source files for of multiplexer jobs. As this is a
destructive operation, the action is disabled by default.
Bug fixes
* mkvmerge: the "codec name" track property wasn't copied from Matroska
files.
* MKVToolNix GUI: multiplexer: Windows: clearing the destination file name
will reset the tab name to "\<No destination file\>" again.
* MKVToolNix GUI: multiplexer: the file types were not re-translated if the UI
language was changed.
|
|
|
|
Version 34.0.0 "Sight and Seen":
Bug fixes
* mkvmerge: all subtitle frames are now treated as key frames in order to fix
wrong data in source files.
* mkvmerge: AV1: fixed frame timestamp calculation when reading bitstreams
that lack timing information from IVF files.
* mkvmerge: Matroska reader: fixed an infinite loop that could happen with
large video frames and applied timestamp files due to too much data being
buffered at the wrong time.
|
|
Version 33.1.0 "Primrose"
Bug fixes
* MKVToolNix GUI: multiplexer: Windows: using UNC paths
(e.g. \\server\Videos) when the option "automatically set the destination
file name" was set in the preferences, the GUI would create a destination
file name with forward slashes (e.g. //server/Videos/outputfile.mkv), a
syntax not supported by mkvmerge.
* build system: the programs were accidentally built without stack protection
(-fstack-protector-strong) on recent versions of gcc and clang.
Version 33.0.0 "A Little Bit of Madness"
Bug fixes
* mkvinfo: when using the --size option, mkvinfo will now report the
correctly if an element has an unknown size.
* MKVToolNix GUI: info tool: clusters with an unknown size will now be read
and displayed correctly.
* MKVToolNix GUI: multiplexer: Windows: trying to open Blu-ray index or
playlist files failed when the path to the files contained symbolic links
(e.g. when mounting a drive in a sub-folder via Windows' disk management
utility).
* MKVToolNix GUI: multiplexer: if a destination file names ends with a number
in parenthesis (e.g. a year such as "(2017)"), that number will not be
stripped anymore during the process of ensuring the destination file name is
unique. Only those suffixes added automatically in prior attempts to make
the file name unique will be removed.
* MKVToolNix GUI: multiplexer: Windows: the GUI will let the user change the
drive letter part of the destination file name freely again and only verify
its validity right before starting to mux/adding to the job queue. Before it
tried to force that into something valid, often resulting in unintentional
paths (such as "C:\users\…\DC\files\…").
|
|
|
|
Version 32.0.0 "Astral Progressions":
New features and enhancements
* mkvinfo: when sizes are output the size of the element's data portion is
output in addition to the element's total size.
* MKVToolNix GUI: info tool: the element's data portion is
shown as an extra column.
* MKVToolNix GUI: multiplexer: added column "Delay" to the track list
containing the additional delay to apply during multiplexing.
Bug fixes
* all: fixed handling of Unicode code points > U+FFFF.
* mkvmerge: Windows: mkvmerge was crashing with an exception when trying to
identify certain files that can be used on Blu-rays (such as MPEG transport
streams of MPLS play list files) and when the file name was given as a UNC
path (e.g. `\\servername\sharename\path\to\file.m2ts`). The GUI emitted
errors such as "the JSON output could not be parsed" in that case.
* MKVToolNix GUI: the portable mode wasn't detected correctly when the current
working directory the GUI was started from wasn't the directory the GUI's
executable file was located it. Examples for when this is the case are
Windows' "send to" or "open with" functions.
* MKVToolNix GUI: multiplexer: using button to change the current destination
directory to one of the recently used ones did not update the file name
according to the "make file name unique" setting.
* MKVToolNix GUI: multiplexer: the function "set destination file name from
selected file's name" will now only change the destination file's name but
not its path.
Build system changes
* libEBML v1.3.7 and libMatroska 1.5.0 are now required as they fix their
handling of Unicode code points > U+FFFF.
|
|
automatically chosses number of jobs
|
|
Version 31.0.0 "Dolores In A Shoestand":
New features and enhancements
* all programs: added a new option --abort-on-warnings that will cause the
program to abort after it has emitted the first warning, similar to how it
aborts after the first error.
* mkvmerge, mkvextract: when closing files that were opened for writing,
cached data will not be flushed to storage automatically anymore. This
reverts the workaround implemented for 2469. A new option was added to both
programs (--flush-on-close) that re-enables flushing for people who are
affected by data loss such as described in 2469.
The reason is that automatic flushing causes long delays in processing
queues when the output by mkvmerge/mkvextract isn't the final product but
just an intermediate result to be processed further.
* MKVToolNix GUI: multiplexer: the dialog previewing different character sets
for text subtitles will now keep the position of the displayed text when
switching between character sets.
Bug fixes
* mkvmerge: AVI reader: using DV type 1 AVIs will now result in an unsupported
file type being reported (as the underlying AVI library doesn't support
them) instead of crashing mkvmerge.
* mkvmerge: HEVC: the height of interlaced streams will now be set correctly
to the height of the full frame instead of the height of a single interlaced
field.
* mkvmerge: MP4 reader: edit lists consisting solely of elements that mkvmerge
doesn't support (such as dwells) are simply ignored. Before no data was read
for such tracks at all.
* mkvmerge: text subtitles: entries with an explicit duration of 0ms will now
be handled correctly: the 0ms duration will be stored in Matroska instead of
the difference between the current and the following entry.
* MKVToolNix GUI: multiplexer, chapter editor: fixed drag & drop handling with
Qt 5.12.0 and newer.
* MKVToolNix GUI: multiplexer: the GUI did not clean up temporary files
created when running mkvmerge.
Build system changes
* Qt 5.4.0 or newer has required (up from 5.3.0) since version 30.0.0; I just
forgot to include this entry.
|
|
Version 30.1.0 "Forever And More":
Bug fixes
* build system: fixed building on non-UTF-8 locales.
* MKVToolNix GUI: multiplexer: implemented a workaround for drag & drop not
working on macOS with Qt 5.12 due to a bug in Qt 5.12.
* MKVToolNix GUI: chapter editor: when opening a Matroska/WebM file that
doesn't contain chapters and later saving chapters back to them, the editor
was truncating the file down to a couple of KB in size.
|
|
Version 30.0.0 "Interstellar"
New features and enhancements
* mkvextract: WAV extractor: mkvextract will now write W64 files instead of
WAV files if the file name extension is `.w64` or if the final file size is
bigger than 4 GB, the file size limit for WAV files.
* MKVToolNix GUI: multiplexer: a new button was added next to the "destination
file" controls. Clicking it shows a menu with the ten most recently used
output directories. Selecting one of them will change the destination file
to the selected directory keeping the file name.
* MKVToolNix GUI: multiplexer (preferences): the ten most recently used values
for the "relative output directory" and "fixed output directory" settings
are now saved. The corresponding settings have been changed into combo boxes
allowing quick access to those recent values.
* MKVToolNix GUI: multiplexer (preferences): the predefined split sizes and
durations can now be customized in the preferences.
* MKVToolNix GUI: chapter editor: added an option in the "Chapter editor" menu
for appending chapters from an existing file to the currently open editor
tab.
* MKVToolNix GUI: chapter editor: added an action in the context menu for
copying the selected entry and all of its children to another open editor
tab.
Bug fixes
* mkvmerge: all files opened for writing will now be flushed once before
they're closed. This ensures the operating system actually writes all cached
data to disk preventing data loss in certain situations such as power
outages or buggy drivers in combination with suspending the computer.
* mkvmerge: AAC: under certain conditions 8 channel audio files were taken for
7 channel ones.
* MKVToolNix GUI: multiplexer: removing a file added as an "additional part"
will no longer cause a crash.
* source code: fixed compilation with Boost 1.69.0 after API-breaking change
to the `boost::tribool` class.
|
|
|
|
|
|
|
|
Version 29.0.0 "Like It Or Not"
Important notes
* The string formatting library used was switched from boost::format to
[fmt](http://fmtlib.net/). See the section "Build system changes" for
details.
New features and enhancements
* MKVToolNix GUI: added an option in the preferences for disabling automatic
scaling for high DPI displays.
* MKVToolNix GUI: the GUI will now prevent the system from going to sleep
while the job queue is running. This feature is implemented for macOS,
Windows and Linux/Unix systems where the org.freedesktop.login1.Manager
D-Bus interface is available.
Bug fixes
* mkvmerge: chapter generation: the start timestamps of chapters generated in
intervals was wrong for files whose smallest video timestamp was bigger than
0.
* mkvmerge: MP4 reader: fixed handling of atoms whose size exceeds the parent
atom's size.
* mkvmerge, MKVToolNix GUI's chapter editor: the chapter name template will
now also be used when reading Ogg-style chapter files with empty chapter
names.
* mkvextract: AAC: mkvextract will now write the program config element (PCE)
before the first AAC raw data packet if the PCE is present in the
AudioSpecificConfig structure in the Codec Private Matroska element. The
PCE carries vital information about the number of channels and is required
in certain cases.
* mkvpropedit, MKVToolNix GUI's header editor: in situations when a one-byte
space must be covered by a new EBML void element the following element must
be moved up instead. If that moved element is a cluster, the corresponding
cue entries will now be updated to reflect the cluster's new position.
* MKVToolNix GUI: Windows: the application manifest is now included properly
so that Windows actually recognizes it.
Build system changes
* Qt's D-Bus implementation is now required for building on systems other than
macOS and Windows,
* The boost::format library is not used anymore.
* The [fmt library](http://fmtlib.net/) is now required. Versions 3 and
newer are supported. As not all Linux distributions include packages for the
library, its release 5.2.1 comes bundled with MKVToolNix. The configure
script will check for a system version of the library and use it if present
and recent enough. Otherwise it will fall back to the bundled version and
link that statically.
|
|
|
|
* mkvmerge, mkvinfo, mkvextract, mkvpropedit, MKVToolNix GUI's info tool &
chapter editor: fixed a case of memory being accessed after it had been
freed earlier. This can be triggered by specially crafted Matroska files and
lead to arbitrary code execution. The vulnerability was reported as Cisco
TALOS 2018-0694 on 2018-10-25.
|
|
Version 28.1.0 "Morning Child":
Bug fixes
* mkvmerge: AV1 parser: fixed an error in the sequence header parser if
neither the reduced_still_picture_header nor the
frame_id_numbers_present_flag is set.
* mkvmerge: AV1 parser: when creating the av1C structure for the Codec
Private element the sequence header OBU wasn't copied completely: its common
data (type field & OBU size among others) was missing.
* mkvmerge: Matroska reader, AV1: mkvmerge will try to re-create the av1C
data stored in Codec Private when reading AV1 from Matroska or WebM files
created by mkvmerge v28.0.0.
* MKVToolNix GUI: info tool: the tool will no longer stop scanning elements
when an EBML Void element is found after the first Cluster element.
|
|
Version 28.0.0 "Voice In My Head":
New features and enhancements
* mkvmerge: AV1 parser: updated the code for the finalized AV1 bitstream
specification.
* mkvmerge: AV1 packetizer: updated the code for the finalized AV1-in-Matroska
& WebM mapping specification.
* mkvmerge: AV1 support: the `--engage enable_av1` option has been removed
again.
* mkvmerge: MP4 reader: added support for AV1.
* mkvmerge: DTS: implemented dialog normalization gain removal for extension
substreams.
* mkvmerge, mkvextract: simple text subtitles: added a workaround for simple
text subtitle tracks that don't contain a duration.
* mkvextract: added support for extracting AV1 to IVF.
* mkvextract: IVF extractor (AV1, VP8, VP9): precise values will be used for
the frame rate numerator & denominator header fields for certain well-known
values of the track's default duration.
* mkvmerge: VP9: mkvmerge will now create codec private data according to the
VP9 codec mapping described in the WebM specifications.
* MKVToolNix GUI: automatic scaling for high DPI displays is activated if the
GUI is compiled with Qt ≥ 5.6.0.
* MKVToolNix GUI: added a menu item ("Help" → "System information") for
displaying information about the system MKVToolNix is running on in order to
make debugging easier.
* MKVToolNix GUI: multiplexer, header editor: the user can enter a list of
predefined track names in the preferences. She can later select from them in
"track name" combo box.
Bug fixes
* mkvmerge: JSON identification: fixed a bug when removing invalid UTF-8 data
from strings before they're output as JSON.
* mkvmerge: MP4/QuickTime reader: fixed handling of PCM audio with FourCC
`in24`.
* mkvmerge: MPEG transport stream reader, teletext subtitles: the decision
whether or not to keep frames around in order to potentially merge them with
the following frame is made sooner. That avoids problems if there are large
gaps between teletext subtitle frames which could lead to frames being
interleaved too late.
* mkvextract: IVF extractor (AV1, VP8, VP8): the frame rate header fields
weren't clamped to 16 bits properly causing wrong frame rates to be written
in certain situations.
* mkvpropedit, MKVToolNix GUI's header editor: fixed file corruption when a
one-byte space must be covered with a new EBML void element but all
surrounding elements have a "size length" field that's eight bytes long
already.
|
|
Version 27.0.0 "Metropolis":
New features and enhancements
* mkvmerge: chapters: the timestamps of chapters read from containers or from
chapter files can be adjusted (multiplication and addition) with the new
`--chapter-sync` option or using the special track ID `-2` for the existing
`--sync` option.
* MKVToolNix GUI: multiplexer: adjusted & added controls for mkvmerge's new
feature of being able to adjust chapter timestamps.
* MKVToolNix GUI: multiplexer: the GUI can now ask for confirmation when the
user is about to create a file that won't contain audio tracks. It does this
by default if at least one source file contains an audio track.
Bug fixes
* mkvmerge: AC-3: dialog normalization gain removal was corrupting E-AC-3
frames irreversibly by writing checksums in places where they didn't
belong. Additionally only the first E-AC-3 frame in a Matroska was processed
but not additional dependent frames in the same block.
* MKVToolNix GUI: fixed a leak of Windows font resources leading to a general
slowdown and subsequent crash.
|
|
Version 26.0.0 "In The Game":
New features and enhancements
* mkvmerge: chapter generation: if the name template given by
--generate-chapters-name-template is empty, no names (ChapterDisplay
master elements with ChapterString/ChapterLanguage children) will be
generated for the chapter atoms.
* mkvmerge: chapters: chapter names generated from MPLS files will now use the
name template if one is set via --generate-chapters-name-template.
* mkvmerge: mkvmerge will no longer abort with an error message if no audio,
video and subtitle tracks should be multiplexed. This allows copying of
chapters from non-chapter source files (e.g. Matroska or MP4 files).
* MKVToolNix GUI: the font size in the tool selector on the left will scale
with the font size the user selects in the preferences.
* MKVToolNix GUI: the GUI will no longer automatically resize the columns in
tree and list views to match the content size. Instead it remembers and
restores the widths set by the user.
* MKVToolNix GUI: multiplexer: the chapter name template will now be set
automatically to the name template in the preferences' "chapter editor"
section. Additionally the option --generate-chapters-name-template … will
be passed to mkvmerge in situations when mkvmerge will generate chapters
(either because automatic generation is enabled or if chapters are generated
for MPLS playlists).
* MKVToolNix GUI: chapter editor: if the chapter name template is empty,
chapters will be generated without names.
* MKVToolNix GUI: chapter editor: added an option to remove all chapter names
to the "additional modifications" dialog.
Bug fixes
* mkvmerge: Matroska reader: fixed wrong timestamps when appending Matroska
files where the second Matroska file's first timestamp is bigger
than 0.
* mkvmerge: MP4 reader: fixed division by zero errors during file
identification if the timescale is 0 in the MVHD atom.
* mkvmerge: Windows Television DVR files are now recognized as an unsupported
file type. This prevents mis-detection as MPEG-2 with an accompanying flood
of error messages.
* MKVToolNix GUI: info tool: under certain circumstances "cues" were shown at
the wrong level (inside the previous master element instead of on level 1).
* MKVToolNix GUI: job queue: fixed invalid memory handling and consequent
crashes when using the "edit in corresponding tool & remove from job queue"
option if one of the files in that job contained attached files.
Build system changes
* An AppStream metadata file will be installed in $prefix/share/metainfo.
|
|
|
|
|
|
Version 25.0.0 "Prog Noir" 2018-07-12
New features and enhancements
* mkvmerge: SRT/ASS/SSA text subtitles: for files for which no encoding has
been specified, mkvmerge will try UTF-8 first before falling back to the
system's default encoding.
* mkvmerge: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if
invalid 8-bit characters are encountered outside valid multi-byte UTF-8
sequences.
* mkvmerge: Matroska & MPEG transport stream readers: the encoding of text
subtitles read from Matroska files can now be changed with the
`--sub-charset` parameter.
* Linux: starting with release 25 an AppImage will be provided which should
run on any Linux distribution released around the time of CentOS 7/Ubuntu
14.04 or later.
* macOS: translations: updated the `build.sh` script to build `libiconv` and a
complete `gettext`. Together with an additional fix to how translation files
are located, MKVToolNix can now use all interface languages on macOS,
too.
Bug fixes
* mkvmerge: AVC/h.264: fixed file identification failing for certain
elementary streams due to internal buffers not being cleared properly.
* mkvmerge: HEVC/h.265: fixed file identification failing for certain
elementary streams due to internal buffers not being cleared properly.
* mkvmerge: MLP code: fixed various issues preventing MLP from being parsed
correctly.
* mkvmerge: TrueHD/MLP packetizer; dialog volume normalization removal isn't
attempted if the track is an MLP track as the operation is only supported
for TrueHD, not MLP.
* mkvmerge: MPEG TS reader: when reading MPLS mkvmerge will now compare the
MPLS's start and end timestamps against the transport stream's PTS instead
of its DTS. Otherwise the first key frame of a video track might be dropped
if it isn't the first in presentation order.
* mkvmerge: JSON identification: mkvmerge will ensure that all strings passed
to the JSON output modules are valid UTF-8 encoded strings by replacing
invalid bytes with placeholder characters. This avoids the JSON library
throwing an exception and mkvmerge aborting on such data.
* mkvmerge: audio packetizers: mkvmerge will now keep discard padding values
if they're present for packets read from Matroska files.
* mkvmerge: Ogg Opus reader: packet timestamps aren't calculated by summing up
the duration of all packets starting with timestamp 0 anymore. Instead the
algorithm is based on the Ogg page's granule position and which packet
number is currently timestamped (special handling for the first and last
packets in the stream).
* This fixes the first timestamp if the first Ogg packet's granule position
is larger than the number of samples in the first packet (= if the first
sample's timestamp is bigger than 0). mkvmerge will keep those offsets now
and inserts "discard padding" only where it's actually needed.
* It also improves handling of invalid files where the first Ogg packet's
granule position is smaller than the number of samples in the first packet
(= the first sample's timestamp is smaller than 0). mkvmerge will now
shift all timestamps up to 0 in such a case instead of inserting "discard
padding" elements all over the place.
* mkvmerge will no longer insert "discard padding" elements if the
difference between a) the calculated number of samples in the packet
according to the granule position and b) the actual number of samples as
calculated from the bitstream is one sample or less and if the packet
isn't the last one in the stream. This circumvents certain rounding
errors.
* The timestamp of the first packet after a gap in the middle of the stream
is now calculated based on the Ogg page the packet belongs to, and not
based on the timestamps before the gap.
* mkvmerge: complete rewrite of the progress handling. It's now based upon the
total size of all source files and the current position within them instead
of the number of frames/blocks to be processed. This simplifies calculation
when appending files and fixes rare cases of when progress report was
obvious wrong (e.g. stuck at 0% right until the end).
* MKVToolNix GUI: header editor: non-mandatory elements couldn't be removed
anymore due to a regression while fixing 2320. They can now be removed
again.
|
|
|