Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Version 72.0.0 "Minuano (Six-eight)" 2022-11-13
New features and enhancements
* mkvmerge: AV1 parser: the variable-width OBU size field will be re-written
with minimal length if it's encoded longer than necessary.
* mkvmerge: when splitting is active the program will output the timestamps
actually used for making the decision when to split. If GUI mode is active,
a specially formatted line `#GUI#splitting_before_timestamp <timestamp>` is
output as well. Lines prefixed with`#GUI#` are suitable for machine parsing,
won't be translated and are guaranteed not to change in format.
* MKVToolNix GUI: multiplexer: when dragging & dropping directories to the
"attachments" tab, the files contained in those directories will be
attached.
* MKVToolNix GUI: info tool: added information about the file (directory,
size, modification timestamp) at the top of each tab.
Bug fixes
* mkvmerge: AV1 parser: fixed the parser completely aborting when parsing the
OBU size field fails due to there not being enough data to parse. Instead
the parser will remember the last known-good position & restart from there
after more data is available.
* mkvmerge: HDMV PGS subtitles: reverted the change that implemented a
heuristic for detecting bogus timestamps & attempting to fix them. This was
done to fix 3268. Unfortunately this affected valid subtitle files with
intentional huge gaps in timestamps, e.g. forced subtitle tracks. The
heuristic has simply been removed, fixing 3392.
* mkvmerge: Matroska reader: fixed reading files with EBML Void elements
before the Matroska Segment element.
* mkvmerge: fixed reversed attachment selection: `--attachments !4` would not
copy any attachment instead of all attachments but the one with ID 4.
* mkvextract: IETF BCP 47/RFC 5646 language tags: mkvextract will now use &
prefer IETF BCP 47 track language elements if they're present. Only affects
the VobSub & USF subtitle extraction.
* mkvpropedit, MKVToolNix GUI's chapter & header editors: updated the list of
deprecated Matroska elements. The applications will no longer try to write
those elements, even if they're found in the file to be modified. The
programs will no longer abort with error messages such as `assertion "false"
failed`.
* mkvpropedit, MKVToolNix GUI's chapter & header editors: when the Matroska
version numbers stored in the EBML Head element are updated, the updated
EBML Head element might be smaller than the existing one. In that case the
programs used to shrink the EBML Head & write a small EBML Void element
between the updated EBML Head & the following element, usually a Matroska
Segment element. This isn't widely supported by programs including
MKVToolNix itself, causing them to declare such files as invalid. The
programs will now create the EBML Void element inside the EBML Head element,
making them a level 1 element instead of a level 0 element.
* mkvpropedit, MKVToolNix GUI's chapter & header editors: often the programs
have to relocate the Master elements in which the modifications were
done. In that case the Seek Head elements must also be updated to reflect to
the Master elements' new positions. If a file contained a Seek Head element
at the start already and if that Seek Head was too small to contain the
updated positions, the programs would end up in an endless loop trying to
write data to the end, creating ever-growing files. This is now handled
properly by voiding this too-small Seek Head & finding a proper space for a
new one instead.
* MKVToolNix GUI: header editor: fixed pixelated icons on higher display
scaling values.
Build system changes
* bug fix: libFLAC detection is now done via `pkg-config`, and the
corresponding compiler flags are honored. Fixes static compilation with
newer versions of libFLAC with MXE where a compiler definition is required
to signal that it libFLAC wasn't built as a DLL.
|
|
Version 71.1.0 "Fortitude" 2022-10-09
Bug fixes
* Chapters DTD: added the new edition & chapter elements from Matroska v5.
* Chapters DTD: fixed EditionUID being mandatory. mkvmerge can auto-generate
it if it's missing from the XML file.
* Chapters DTD: fixed the `example-chapters-1.xml` not validating against the
DTD.
* Chapters DTD: corrected the old name `EditionManaged` to
`EditionFlagOrdered`.
* Chapters DTD: fixed `ChapLanguageIETF` missing its element declaration &
`ChapterLanguage` being required.
* XML DTDs: fixed elements representing binary data not allowing the `format`
attribute.
Build system changes
* bug fix: configure accidentally tested for libEBML ≥ 2.0.0 & libMatroska ≥
2.0.0, even though the actual requirements are 1.4.4 & 1.7.1 respectively.
Version 71.0.0 "Altitude" 2022-10-08
New features and enhancements
* mkvmerge, MKVToolNix GUI's multiplexer: added support for the Emphasis audio
track header element via the `--audio-emphasis` option. It is also read from
Matroska files.
* mkvmerge: the options `--list-stereo-modes` and `--list-audio-emphasis` have
been added to list all support numerical & textual values for the
`--stereo-mode` & `--audio-emphasis` options.
* mkvpropedit, MKVToolNix GUI's header editor: added support for the Emphasis
audio track header element via the `emphasis` property.
* MKVToolNix GUI: multiplexer: when the track properties are
configured to be displayed in a tab widget below the files & tracks
in the "Input" tab, the "Color information" tab will be laid out in
two columns. This reduces the minimum height the whole tab widget
requires.
* MKVToolNix GUI: greatly sped up closing the preferences dialog by only
re-running certain initialization functions when their corresponding
settings have changed.
* mkvinfo, MKVToolNix GUI's info tool: added support for the following new
elements from Matroska v5: Emphasis audio track header element; Chapter Skip
Type; Edition Display; Edition String; Edition Language IETF.
* mkvmerge, mkvpropedit: added support for the following new chapter elements
from Matroska v5: Chapter Skip Type; Edition Display; Edition String;
Edition Language IETF. The GUI's chapter editor will receive support for
them in the next release.
Bug fixes
* mkvmerge: Ogg/OGM reader: mkvmerge will now correctly skip tracks of
unsupported types as well as tracks for which all track header pages
haven't been found.
Build system changes
* libEBML 1.4.4 & libMatroska 1.7.1 are now required.
* The bundled libEBML & libMatroska libraries were updated to v1.4.4 & v1.7.1
respectively.
* The bundled `fmt` library was updated to v9.1.0.
* The bundled `nlohmann-json` library was updated to v3.11.2.
|
|
|
|
|
|
|
|
this allows the textproc/po4a build dependency to be removed, which
pulls in latex among other things. since the defaults are not
changed, i have not bumped the pkgrevision.
|
|
|
|
Version 70.0.0 "Caught A Lite Sneeze" 2022-08-14
New features and enhancements
* MKVToolNix GUI: the user can now control where the job queue files & the
preferences INI file are stored via environment variables. If set, the
variable `MKVTOOLNIX_GUI_STATE_DIR` can point to a directory where the GUI
stores both the job queue sub-directory and the preferences INI file. If you
only want to relocate the preferences INI file, you can store the desired
file name for the INI file in `MKVTOOLNIX_GUI_CONFIG_FILE`.
* MKVToolNix GUI: when adding directories via drag & drop/copy & paste the GUI
will now offer the user the option to create one multiplex settings tab per
directory & adding all files from that directory to the corresponding, newly
created tab.
Bug fixes
* mkvmerge: AV1 OBU parser: fixed identifying files that only contain single
frame.
* MKVToolNix GUI: multiplexer: when reading color parameters from identified
files that are floating point numbers (minimum/maximum luminance, projection
pitch/roll/yaw) the numbers will be formatted in floating-point notation
instead of scientific notation as mkvmerge only supports the former.
* MKVToolNix GUI: multiplexer: color parameters that are floating point
numbers (minimum/maximum luminance, projection pitch/roll/yaw) will only be
set to a value during identification if the identification actually contains
the property, and not to 0 anymore if it doesn't.
Build system changes
* Several merge requests where accepted that improve compilation on MSYS2 on
Windows. Note that this build type isn't supported.
|
|
This is now handled centrally via OPSYS_EXPLICIT_LIBDEPS support in libiconv
and gettext-lib.
|
|
Version 69.0.0 "Day And Age" 2022-07-09
Important notes
* all: the spelling of "colour" was changed to "color" throughout all programs
to match the use of American English spelling in MKVToolNix. This not only
affects documentation and user interface controls, but also program options
for mkvmerge & mkvpropedit. Both programs will continue to accept the
British English spelling of their respective options indefinitely. One
breaking change is that the property names in mkvmerge's JSON identification
mode have also been changed to American English spelling. As those
properties have only been introduced in release v68, this seems like a small
enough window to make such a change.
New features and enhancements
* MKVToolNix GUI: the number of recently used entries (e.g. destination
directories) remembered by the GUI can now be configured in the
preferences.
* MKVToolNix GUI: multiplexer: when adding files the track properties
regarding color information & color mastering meta information will be
parsed & set in the corresponding GUI controls.
* MKVToolNix GUI: job queue: the job queue can now be sorted by clicking on
the column headers.
* MKVToolNix GUI: job queue: when loading jobs from the queue directory that
weren't previously known to the program those jobs will be sorted by their
"date added" timestamp instead of using the order the operating system
returns them in.
Bug fixes
* build system: fixed compilation with fmt v9.
* mkvmerge: HEVC ES parser: the parser will now parse at least the first full
access unit before reporting that it has found all the required
headers. Otherwise parsing might stop in the middle of the access unit due
to the source reader not providing more data in the first call, leading to
the parser not finding the `unspec62` and `unspec63` NALUs required for
Dolby Vision.
* MKVToolNix GUI: preferences: the default actions added to the "execute
programs" section on new installations now default to use WebM file names
instead of Ogg, matching the format of the included audio files.
Build system changes
* The bundled `fmt` library was updated to v9.0.0.
|
|
|
|
Version 68.0.0 "The Curtain" 2022-05-22
New features and enhancements
* mkvmerge: HDMV PGS subtitles: mkvmerge now tries to detect bogus timestamps
(where the current timestamp is two hours or more after the previous
timestamp) & correct them to something more sensible (1s after the previous
timestamp). That way one bogus timestamp cannot cause the rest of the frames
to not be interleaved properly with the other audio & video
packets.
* mkvmerge: added colour information, colour mastering meta information &
video projection information properties to the JSON identification
format. The properties are reported for container types for which mkvmerge
supports reading them (Matroska & MP4). The JSON identification format
version number has been bumped to v15.
* MKVToolNix GUI: multiplexer: added controls for all the video colour
information & the video projection information.
Bug fixes
* mkvmerge: SRT reader: entries with a duration of 0 or less will now be
skipped.
* mkvpropedit, MKVToolNix GUI's chapter & header editors: fixed an invalid
memory access when trying to update existing Matroska files whose EBML Head
element had a "size" field length of eight bytes, and where rewriting said
element would shrink the element by one byte. Files created by gstreamer fit
the first part whereas the second depends on the changes requested by the
user.
* mkvpropedit, MKVToolNix GUI's chapter & header editors: fixed the programs
not handling having to remove EBML void elements at the end of the file
correctly and consequently aborting.
* MKVToolNix GUI: the GUI now uses almost all SVG icons, allowing proper
scaling even for scaling factors such as 125%.
* MKVToolNix GUI: when compiled with Qt 5 the character set of INI files is
forced to UTF-8 in order to fix reading INI files written by a version
compiled with Qt 6.
Build system changes
* Qt's SVG library is now required.
|
|
|
|
Version 67.0.0 "Under Stars" 2022-04-10
New features and enhancements
* all: IETF BCP 47/RFC 5646 language tags: when deriving the legacy language
element codes to use a language tag's ISO 639 code is also potentially
interpreted as an & its prefix is used as the legacy language code. For
example, "Yue Chinese" = `yue` is not part of ISO 639-2. However, there is
an extlang subtag `yue` with a valid prefix of `zh` ("Chinese"), and for
"Chinese" there is an ISO 639-2 language code: `chi`. In this example the
IETF language element would be set to `yue` and the corresponding legacy
element to `chi`.
* all: IETF BCP 47/RFC 5646 language tags: grandfathered language tags are now
supported.
* all: IETF BCP 47/RFC 5646 language tags: all deprecated subtags from the
IANA language subtag registry are now supported.
* all: IETF BCP 47/RFC 5646 language tags: all lists of valid subtags have
been updated from their respective authoritative sources.
* all: IETF BCP 47/RFC 5646 language tags: all in the IANA language subtag
registry are now supported, even those marked as deprecated and of type
'grandfathered'.
* all: IETF BCP 47/RFC 5646 language tags: reduced the maximum number of
extended language subtags that are present in a valid tag from 3 to 1 in
compliance with RFC 5646 section 2.2.2.
* all: IETF BCP 47/RFC 5646 language tags: all language codes reserved for
private/local use (`qaa`–`qtz`) are now supported.
* all: IETF BCP 47/RFC 5646 language tags: Digital Cinema Naming Convention
language codes that fall into the IETF BCP 47 range of "private use" tags
(`qaa`–`qtz`) are now replaced by their IETF BCP 47 equivalents during
normalization (e.g. `QMS` → `cmn-Hans`).
* all: added a new translation to Chinese Simplified (Singapore) by Dian Li.
* mkvmerge, mkvpropedit: added a new command line option called
`--enable-legacy-font-mime-types`. With this option on the two programs will
use the same legacy MIME types for fonts whenever new attachments are added
(both programs), when reading existing attachments (only `mkvmerge`) or when
replacing existing ones (only `mkvpropedit`).
* mkvmerge, mkvpropedit: IETF BCP 47/RFC 5646 language tags: added a command
line option `--normalize-language-ietf <mode>` which turns on normalization
of IETF BCP 47 language tags to either their canonical (mode `canonical`) or
extended language subtags form (mode `extlang`) or turns it off (mode
`off`). If the option isn't given, language tags will now be normalized to
the canonical form.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: ISO 639-3 and 639-5
languages will now be used by default.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor
dialog will now show warnings in several cases: when deprecated tags are
used; when the tag's canonical and/or extlang forms differ from the user
input.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor now
has a button to replace the current tag with a normalized form (canonical or
extlang) if those differ from the current tag.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: added an option in the
preferences to always normalize all language tags to their canonical or
extlang forms or to turn normalization off. Can also be enabled from the
language editor dialog.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now
shows a warning if a variant is used with a prefix that isn't in the
variant's list of suitable prefixes. It'll also say if the corresponding
canonical/extlang forms would have a suitable prefix.
* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now
shows a warning if a script is used with a language for which it should be
suppressed.
* MKVToolNix GUI: multiplexer: the track property group boxes in the
scrollable pane are now collapsible & expandable, saving their state over
restarts of the GUI. This is in preparation of adding many more track
properties in future releases, allowing the user to hide parts they don't
use all that often.
* MKVToolNix GUI: multiplexer: if the option "use legacy font MIME types" is
enabled in the preferences, the new command line option
`--enable-legacy-font-mime-types` will be passed to `mkvmerge` in order to
have it remap the MIME types of existing attachments, too.
Bug fixes
* all: IETF BCP 47/RFC 5646 language tags: variants aren't validated wrt. to
prefixes anymore as BCP 47 doesn't actually pose restrictions on them,
saying only that prefixes "are suitable sequences" for use with the
variants. What is now verified, though, is that no variant is used multiple
times within the same language tag.
* build system & MKVToolNix GUI: fixed detecting the presence of & the
compilation with the multimedia module of Qt version 6.2.0 and newer.
* build system: fixed compilation on Unices other than Linux & macOS
(e.g. FreeBSD).
* MKVToolNix GUI: job queue: fixed compiling in the audio player code for the
the "play audio" end-of-job action.
* MKVToolNix GUI: multiplexer: recognizing added XML chapter, segment info or
chapter files required the XML declaration & root node (e.g. `<?xml…?> …
<Chapters>` for chapters) be located within the first 1 KB, which wasn't
enough for files that contain a lot of comments at the start like the
included `example-chapters-2.xml`. The detection range was extended to 10
KB.
Build system changes
* build system: the provided Windows binaries are now compiled with Qt 6. A
drawback is that certain audio formats aren't supported anymore by Qt for
the "end of job" sound notification playback, notably the Ogg file format &
the Vorbis audio codec. MKVToolNix therefore now ships Opus-in-WebM files
for the same purpose.
* The bundled `fmt` library was updated to v8.1.1.
* The bundled `nlohmann-json` library was updated to v3.10.5.
* The bundled `pugixml` library was updated to v1.12.1.
|
|
|
|
Not sure how this worked, the build system is incredibly opaque and tries to
build Windows-only files on at least NetBSD and SunOS.
|
|
Version 66.0.0 "Josie" 2022-03-13
New features and enhancements
* mkvpropedit: added a new option `--chapter-charset` allowing the user to
specify the character set to use when reading the following chapter
file.
* MKVToolNix GUI: each language shortcut can now be associated with an
optional track name that is set along with the language when the shortcut is
used.
Bug fixes
* mkvmerge: Ogg/OGM reader: mkvmerge will no longer abort with an exception
when it encounters Vorbis comments that contain data that isn't valid
UTF-8.
* MKVToolNix GUI: multiplexer: fixed several issues with the tab order of
elements in the "properties" pane and the "output" tab. Also fixed the
language display widgets (e.g. "track language" in the "properties" pane)
never receiving tab focus.
* MKVToolNix GUI: multiplexer: the chapter name template will now be passed to
`mkvmerge` if a chapter file is selected on the "output" tab.
|
|
Version 65.0.0 "Too Much" 2022-02-06
New features and enhancements
* mkvmerge: the options `--default-track` and `--forced-track` have been
renamed to `--default-track-flag` and `--forced-display-flag` respectively
for improved consistency with other option names & the wording used in the
GUI. However, the old names will be supported and recognized
indefinitely. What will remain unchanged is the property names for those
flags in mkvmerge's identification output. Existing third-party programs
will continue working as they are.
* mkvmerge: added a new option `--track-enabled-flag` to set or unset the
"track enabled" track header flag.
* mkvmerge: MP4 reader: `mkvmerge` will now evaluate the `flags` field of the
track header atom (`tkhd`) and set the track's "enabled" flag
accordingly.
* MKVToolNix GUI: multiplexer: added support for the "track enabled" track
header flag.
* MKVToolNix GUI: multiplexer, header editor: added several menu entries &
keyboard shortcuts for toggling various track flags of the currently
selected tracks, e.g. `Ctrl+Alt+F, D` (that's `Ctrl` and `Alt` with `F`
simultaneously followed by `D` without any other key pressed) for toggling
the "default track" flag.
* MKVToolNix GUI: multiplexer, header editor: added menu entries & keyboard
shortcuts for setting the language of the currently selected tracks to one
from a configurable list of languages. The shortcuts used are `Ctrl+Alt+A,
1` through `Ctrl+Alt+A, 0` for the first ten entries of that list (that's
`Ctrl` and `Alt` with `A` simultaneously followed by a digit without any
other key pressed).
* MKVToolNix GUI: chapter editor: if the user enters commas in start or end
timestamps they will automatically be changed to points as the decimal
separator, allowing for easier copy & paste from other
programs/sources.
* MKVToolNix: header editor: the selected track or attached file can now be
moved up & down with the keyboard shortcuts `Ctrl+Up` & `Ctrl+Down`
respectively.
Bug fixes
* mkvmerge: Matroska reader: DVB subtitle tracks with a codec private data
size of more than five bytes are accepted now, too.
|
|
|
|
Version 64.0.0 "Willows" 2021-12-27
New features and enhancements
* MKVToolNix GUI: language dialog: when the user switches between the two edit
modes, the mode's corresponding first control is automatically focussed.
Bug fixes
* all: language lists: the entries for "Ancient Greek (to 1453)" and "Modern
Greek (1453-)" have been renamed to "Greek (ancient, -1453)" and "Greek
(modern, 1453-)" respectively in order to be easier to find.
* mkvmerge: VobSub reader: files containing `id: --` lines to indicate that
the track language isn't known were rejected by `mkvmerge`. Now they're
accepted, and `und` (undetermined) is used as the language.
* MKVToolNix GUI: chapter editor: the "Save to Matroska or WebM file" function
was using the wrong standard file dialog (the "open file" one instead of
"save"), leading to confusing button names.
* MKVToolNix GUI: high DPI scaling: fixed the icons in the tool selector
having the wrong size for scaling factors other than 100% or 200%.
Build system changes
* The bundled `fmt` library was updated to v8.0.1.
* The bundled `nlohmann-json` library was updated to v3.9.1.
* The bundled `pugixml` library was updated to v1.11 revision 6a76cac.
* The bundled `utf8-cpp` library was updated to v3.2 revision b85efd6.
|
|
|
|
|
|
Version 63.0.0 "Everything" 2021-11-14
New features and enhancements
* mkvmerge: AC-3 parser: E-AC-3 with BSID values > 10 and ≤ 15 are recognized
now, too.
* mkvmerge: when using language codes for track selection (e.g. `-a und,en`)
all tracks that do not have a language property (due to their container not
providing one, e.g. AVIs) will be treated as if they did have one set to
`und` ("undetermined") as that is the language the track will have in the
Matroska file anyway. Before this change it wasn't possible to match such
tracks via language codes.
* MKVToolNix GUI: only on Windows: when compiled with Qt ≥ 5.14 and < 6 (which
is the case for the officially provided binaries) fractional screen scaling
will be enabled. This means that the GUI will be scaled appropriately if
Windows is set to 125%, 150% or 175% instead of being too small or too
large.
* MKVToolNix GUI: the spinner in the bottom right corner will now be hidden
when no jobs are currently running.
* MKVToolNix GUI: header editor: a new column has been added to the tree view
showing the status of the "track enabled" flag. The information is also
shown on the track overview page on the right.
* MKVToolNix GUI: header editor: users can now reorder tracks by dragging &
dropping.
Bug fixes
* mkvmerge: AVI reader: fixed reading AVI files that contain `vprp` video
properties header chunks; reading aborted too early.
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (for legal reasons?):
./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.i386.tar.gz
./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.x86_64.tar.gz
./multimedia/libdvdcss/distinfo libdvdcss-1.4.3.tar.bz2
|
|
Version 62.0.0 "Apollo" 2021-10-10
New features and enhancements
* all: IETF BCP 47/TFC 5646 language tags: all ISO 639 languages are now
available, even the ones that aren't of types "Constructed", "Living" or
"Special".
* mkvmerge, mkvpropedit: chapters: both programs will now write elements set
to their default value, too (e.g. the legacy language element if it's set to
`eng`). This is done to be more consistent with how MKVToolNix GUI writes
chapters.
* MKVToolNix GUI: multiplexer: when adding new files as attachments the GUI
checks if there are other attachments with the same name. If so, the GUI
would ask whether to skip the affected files or add them anyway. There's now
an option in the preferences to always skip such files, and it's enabled by
default.
* MKVToolNix GUI: chapter editor: removed the support for explicitly setting
the legacy country elements. Instead the legacy country elements are derived
from the region parts of the IETF BCP 47 languages.
Bug fixes
* mkvmerge: fixed a crash when splitting by chapters is enabled but there are
no chapters at all.
* mkvmerge: the error message when trying to split by a chapter number that
doesn't exist contained the wrong number of chapters that actually do
exist.
* mkvmerge: AVC ES parser: fixed mkvmerge aborting due to uncaught exception
when encountering bad SPS data.
* mkvmerge: AVC/H.264 parser: re-added the hack `--engage
all_i_slices_are_key_frames` which was accidentally removed in release v61.
* mkvmerge: AVI reader: fixed a crash trying to allocate too big of a memory
chunk due to an integer overflows in check conditions.
* mkvmerge: HEVC ES parser: fixed another issue with frame type
recognition. Certain frames were marked as B frames/discardable on the
container level even though they could be reference pictures. Now only SLNR
pictures (sub-layer non-reference) are marked that way.
* mkvmerge: HEVC ES reader: improved file content detection for HEVC ES files
with wrong file name extensions (e.g. `.mkv`), which fixes them being
mis-detected as something else, e.g. DTS.
* mkvmerge: HEVC ES parser: "end of sequence" NALUs are kept now, and no
superfluous flushing will be done when one is found. This prevents splitting
NALUs into two different Matroska blocks when they should really be part of
a single one, also causing problems with erroneous timestamps. Mostly
affects DoVi NALUs.
* mkvmerge: Matroska reader, TrueHD: mkvmerge will now probe much more TrueHD
frames trying to find the first sync frame. This fixes track detection in
situations when a TrueHD doesn't start with a sync frame, e.g. when the
source file's the result of splitting between sync frames.
* mkvmerge, MKVToolNix GUI's chapter editor: IETF BCP 47/RFC 5646 language
tags: when reading chapters from MPLS playlist files, the `ChapLanguageIETF`
element will now be set to the configured default chapter language, not just
the legacy `ChapterLanguage` element.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF BCP 47 elements
will now always be created before writing chapters unless IETF BCP 47
elements are disabled.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when a chapter
display element contains legacy language & country elements but no IETF BCP
47 elements and IETF BCP 47 elements aren't disabled, the IETF BCP 47
elements created will contain the region from the legacy element.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: Legacy country
elements are now created when IETF BCP 47 elements are present & contain a
region code allowed in legacy country elements.
Build system changes
* The `tools` sub-directory is now always built. The corresponding `configure`
option `--with-tools` has been removed. The `install` target still doesn't
install them, though.
|
|
|
|
|
|
Version 61.0.0 "So" 2021-08-30
New features and enhancements
* all: IETF BCP 47/RFC 5646 language tags: implemented support for officially
registered IANA language tag extensions.
* mkvmerge: track selection: when using language tags for selecting which
tracks to keep, mkvmerge will now use component-based language tag matching
instead of comparing them verbatim. This means that only those components
(language, region etc.) the user specified will be required to exist and be
equal. For example, if a file contains three subtitle tracks with languages
`es` (generic Spanish), `es-MX` (Spanish as spoken in Mexico) and `es-ES`
(Spanish as spoken in Spain), the user can use `--stracks es` to match all
three tracks or be more specific with e.g. `--stracks es-MX` which would
only match one track. Similarly inverting the selection with e.g. `--stracks
!es` would get rid of all three tracks, not just the one for the generic
Spanish.
* MKVToolNix GUI: multiplexer: deriving track languages from file names: the
GUI can now detect full BCP 47/RFC 5646 language tags in file names.
* MKVToolNix GUI: multiplexer: deriving track languages from file names: the
default list of boundary characters now includes `-`.
* MKVToolNix GUI: multiplexer: the GUI now defaults to the "lower" process
priority setting for new installations in order to leave more room for other
applications, especially interactive ones. Up to and including v59 the
default was the "normal" process priority. v60 changed that to "lowest",
which turned out to be much slower on Windows for no real gain over
"lower". The setting will be auto-corrected by the GUI if the settings file
were saved last with a version between v60.0.0.0 & v60.0.0.17 & "lowest" &
it is still set to "lowest".
* HEVC dumper development tool: the tool has been renamed to `xvc_dump` and
extended to be able to dump AVC/H.264 bitstreams, too. It now also detects
the type of bitstream framing (ISO 14496-15 vs. ITU-T H.264/H.265 Annex B).
Bug fixes
* all: IETF BCP 47/RFC 5646 language tags: fixed a corner case of wrongfully
allowing scripts/variants not listed in any of the entries in the prefix
list when the prefix list contains prefixes restricting scripts/variants and
a prefix solely with the language at the same time (example: the variant
`ekavsk` with its prefixes `sr`, `sr-Cyrl` and `sr-Latn` where
e.g. `sr-ekavsk` and `sr-Cyrl-ekavsk` should be allowed but not
`sr-Bali-ekavsk`).
* mkvmerge: HEVC/H.265: the frame type of B frames was often wrongfully
signalled as P frames instead, both with `BlockGroup` (missing second
references) and `SimpleBlock` ("discardable" flag not set) elements.
* mkvmerge: SSA/ASS packetizer: the frame numbers will now be re-calculated
when appending SSA/ASS tracks so that frame numbers of appended tracks are
always strictly higher than frame numbers of the track they're appended to.
* mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags:
when BCP 47 language tags are used with a language code that isn't part of
ISO 639-2, the programs will now write a legacy language element set to
`und` ("undetermined") instead of not writing such an element at all or
writing one with an invalid code.
* mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags:
the programs will ensure that the legacy and IETF language elements written
will be unique within the scope of the same "chapter display" element.
* mkvinfo, MKVToolNix GUI's info tool: in summary mode the frame type was
reported wrong for `BlockGroup` elements in which the `ReferenceBlock`
elements were located behind the `Block` element.
Build system changes
* all: `std::codecvt_utf8` is now used instead of Boost's
`utf8_codecvt_facet`. The bundled copy the latter in `lib/boost` has
therefore been removed.
|
|
Version 60.0.0 "Are We Copies?" 2021-07-31
New features and enhancements
* all: IETF BCP 47/RFC 5646 language tags: added support for language families
from ISO 639-5 that aren't part of 639-2.
* all: IETF BCP 47/RFC 5646 language tags: implemented support for Alpha 2
country codes of the "user-defined" category: `AA`, `QM`–`QZ`, `XA`–`XZ` and
`ZZ`.
* all: IETF BCP 47/RFC 5646 language tags: updated the various lists of valid
subtags from the official specs.
* MKVToolNix GUI: multiplexer: pressing the keyboard shortcut for the track's
"Language" label (Alt+L for English) will now open the language dialog.
* MKVToolNix GUI: multiplexer: added an option in the preferences for turning
off the colored boxes indicating which file each track belongs to.
Bug fixes
* all: IETF BCP 47/RFC 5646 language tags: fixed validating extended language
& variant subtags against their allowed prefixes (e.g. a valid tag with a
country code as in `de-CH-1996` is recognized as valid while two generally
known variants that aren't allowed together as in `de-1901-1996` is
recognized as invalid).
* all: IETF BCP 47/RFC 5646 language tags: when looking up a language for a
two- or three-letter code, the programs will no longer compare that code
with language names as that was unintended, ambiguous (e.g. the code "Ga"
could be interpreted as the 639-2 alpha-2 code for "Irish" or as the name of
the language called "Ga") and only worked with languages whose name was at
most three letters long.
* mkvmerge: HEVC/H.265: appending Matroska files with HEVC tracks might lead
to the loss of the first couple of frames from each of the second and all
following files.
* mkvmerge, mkvextract: HEVC/H.265 parser: fixed the programs aborting when
parsing VPS or SPS NALUs with invalid content due to unhandled
exceptions.
* MKVToolNix GUI: multiplexer: when the option "use legacy MIME types for font
attachments" is enabled, the GUI will now use `application/x-truetype-font`
for font collection files.
* MKVToolNix GUI: multiplexer: fixed escaping the `mkvmerge` argument in the
"Show command-line options" dialog for the "Windows (cmd.exe)" mode.
* MKVToolNix GUI: multiplexer: when adding multiple files at once, the GUI
will sort file names with numbers the way a human would expect it to. For
example, `1.mp4`, `9.aac`, `10.srt`, `11.srt` are now sorted exactly that
order instead of `1.mp4`, `10.srt`, `11.srt`, `9.aac`.
* MKVToolNix GUI: header editor: the header editor will now honor the "use
legacy MIME types when adding font attachments" setting when adding new
attachments.
|
|
|
|
Version 59.0.0 "Shining Star" 2021-07-10
New features and enhancements
* mkvmerge: WebVTT parser: the parser now follows the specs' rules for parsing
timestamps more closely by being more lenient: it allows arbitrary number of
spaces & tabs at the start of the line & around the arrow; it allows any
number of digits for the hours.
* MKVToolNix GUI: multiplexer: when adding a Blu-ray playlist without scanning
for other playlists the GUI will now look for disc library information & let
the user select which one to use if there's more than one entry.
* MKVToolNix GUI: multiplexer: added an option for sorting files & tracks by
track types when adding them to multiplex settings. The order is: video
first followed by audio, subtitles and other types. Files & tracks can still
be reordered manually later. The option is enabled by default & can be found
in the preferences → "Multiplexer" page → "Adding files" section.
* MKVToolNix GUI: multiplexer: added an option for recognizing file name
sequences such as `movie.001.mp4`, `movie.002.mp4`, `movie.003.mp4` when
adding multiple files at once. If a sequence is detected, the only first
file will be added while the second and following file names will be
appended to the first one. The option is enabled by default & can be found
in the preferences → "Multiplexer" page → "Adding files" section.
* MKVToolNix GUI: multiplexer: added small colored boxes for each file & track
in order to indicate from which file each track is read. The colors used can
be configured in the preferences → "Multiplexer" page → "File & track
colors" section.
Bug fixes
* build system: fixed compilation with fmt v8.
* mkvmerge: SRT subtitle reader: characters that aren't valid according to the
assumed encoding of the file will now be replaced by the Unicode
"Replacement Character" U+FFFD instead of keeping the invalid characters,
potentially violating the Matroska specs.
* mkvmerge: WebVTT parser: the parser now accepts timestamps with hours
larger than 99.
* mkvextract: TTA extraction, only on Windows: fixed removing the temporary
file created during extraction.
* mkvmerge, mkvpropedit, MKVToolNix GUI's multiplexer & header editor: MIME
type detection is now done using Qt instead of the `magic` library. The main
impact is the MIME types of TrueType & OpenType fonts are now detected
correctly.
* mkvmerge, mkvinfo, MKVToolNix GUI's info tool: only on Windows: displaying
dates before 1970-01-01 00:00:00 UTC or after 2038-01-19 03:14:08 UTC was
broken. Note that the header editor was not affected.
* MKVToolNix GUI: only on 64-bit Windows: under certain conditions, the 64-bit
Windows binaries crashed when opening dialog windows. Even though the
underlying bug hasn't been identified, the investigation showed that
building it with newer versions than 10.2.0 of the mingw/gcc cross-compiler
enabled the crashes, while binaries built with 10.2.0 were fine. This
affected v57 and v58 which were built with gcc versions 10.3.0 and 11.1.0
respectively. For the time being I've switched back to building Windows
binaries with gcc 10.2.0.
* MKVToolNix GUI: multiplexer: when adding files to the multiplexer by running
the GUI's executable with file names as command line arguments, the source
directory will be remembered as the "last open directory" again, causing
subsequent uses of the "open file" dialog to start in the same directory.
* MKVToolNix GUI: multiplexer: the "default track flag" column in the track
list was missing its icons. Additionally it contained text even for things
that aren't regular tracks and therefore do not actually have that flag
(e.g. chapters or tags).
* MKVToolNix GUI: multiplexer: the default for the dialog asking the user what
to do with dragged & dropped files if they've never seen the dialog is back
to adding the files to the current multiplex settings instead of "add as
additional parts" which was an unintentional default.
* MKVToolNix GUI: multiplexer: the "show command line" dialog will now always
use backward slashes for the "Windows (cmd.exe)" mode and forward slashes
for the "Linux/Unix shells" mode, regardless of the operating system it's
currently running on.
Build system changes
* The Qt library is now required for building all applications, even the
command-line ones, as they use Qt's MIME type detection capabilities. In
turn this means that you cannot disable the Qt usage anymore; either Qt5 or
Qt 6 is required.
You can still chose not to build MKVToolNix GUI, though. A new option has
been added to `configure` for this purpose: `--disable-gui`.
* The `gmp` library is now required.
* The `magic` library is not used anymore.
* The `PCRE2` & `JPCRE2` libraries are not used anymore. The bundled version
of `JPCRE2` was removed.
* Boost's "rational" library is not used anymore.
* `configure`: the option `--enable-appimage` has been removed. The location
of the relevant directories within an AppImage is now detected
automatically.
* The bundled `fmt` library was updated to v8.0.0.
|
|
Version 58.0.0 "Supper's Ready" 2021-06-13
New features and enhancements
* mkvmerge, MKVToolNix GUI's multiplexer: the handling of the "default track"
flag has been changed to match the recent changes to the Matroska
specifications. The new semantics are that if it is set, it is supposed to
signal to the player that this track is eligible for being played by
default, potentially taking other factors such as user preferences regarding
languages into account.
This implies that more than one track of each type can have this flag
set. For example, a Blu-ray disc with three audio tracks might have
the main audio in both English and Japanese, whereas the third audio
track contains the director's comments. In such a case the first two
tracks should have the "default track" flag set, the third one
shouldn't.
Earlier `mkvmerge` was enforcing that only one track of each type could have
the flag set. This restriction has been removed, both in `mkvmerge` and in
the GUI's multiplexer.
`mkvpropedit` and the GUI's header editor are unaffected as they've always
allowed to set the flag on as many tracks as the user wanted.
* mkvmerge: AVC/H.264 & HEVC/H.265 identification: added the stream's pixel
dimensions (AVC only; were present for HEVC already) & default
duration.
* mkvmerge, mkvextract: HEVC/H.265: added support for reading single-layer
Dolby Vision from Annex B type bitstreams (elementary streams, MPEG
transport streams). Patch by quietvoid.
* mkvinfo: the option `-X`/`--full-hexdump` now affects all binary elements,
not just the frame data in `SimpleBlock` and `BlockGroup` elements.
* MKVToolNix GUI: multiplexer: the "delay" and "sync" options can now be used
for chapters in source files, too.
* MKVToolNix GUI: when moving list entries up & down with the optional buttons
or the keyboard shortcuts (instead of using drag & drop), the GUI ensures
that the top-most selected entry remains visible after the move.
* MKVToolNix GUI: added an option in the preference to use legacy MIME types
for font attachments instead of the current standard ones
(e.g. 'application/x-truetype-font' instead of 'font/sfnt' and 'font/ttf').
Bug fixes
* build system: fixed filtering out optimization options when compiling the
file `iso639_language_list.cpp` (before only numeric optimization levels
were filtered out and only if it wasn't the last option in the list of
flags).
* build system: when libmagic was detected via `pkg-config`, MKVToolNix was
actually compiled without support for libmagic due to a preprocessor symbol
not being defined.
* mkvmerge: MP4 reader: fixed an issue with timestamps overflowing when the
file's or the track's time scale is large.
* mkvmerge, mkvextract: fixed key frame handling for `BlockGroup` elements
with a forward reference but no backward references. Patches by Tom Yan.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: the programs will no
longer omit writing mandatory elements set to their default value if other
elements of the same type are present in the same master. This affects
mostly the "chapter language" element which may occur multiple times within
the same "chapter display" master. If it does occur multiple times and one
of them is set to "English" (which is that element's default value), that
element will now be written, too.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when parsing chapter
files IETF & legacy language elements as well as legacy country elements
will now be properly generated depending on which exist already, especially
when there's more than one language and/or country element in a "chapter
display" element.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: fixed reading
OGM-style chapter files with timestamps that don't have exactly three
decimal places. Any number of decimal places between one and nine is now
supported for nanosecond precision.
* MKVToolNix GUI: chapter editor: added/fixed support for "chapter display"
elements with multiple languages or countries.
Build system changes
* Qt 6: added support for building with Qt 6. `configure` will look for Qt 6
first and only continue looking for Qt 5 if Qt 6 isn't found or disabled via
`--disable-qt6`.
Qt 6 detection works by first looking for the `qmake6` binary. Its location
can be specified with the `--with-qmake6=…` option.
All other Qt 6 related facts (such as compiler & linker flags or the
position of the other required tools such as `lconvert`, `moc`, `rcc` and
`uic`) will be derived from the output generated by `qmake6`.
Note that at this point Qt 6 is not yet supported for the cross-compilation
build to Windows, nor is a static Qt 6 build supported yet.
Note that the command line options `--enable-static-qt`,
`--with-qt-pkg-config-modules` and `--without-qt-pkg-config` only apply to
the Qt 5 and have no effect on Qt 6.
* Qt 5: the options for specifying the position of the tools (`--with-moc=…`,
`--with-rcc=…` and `--with-uic=…`) have been removed. Their position will
now be derived from the output generated by `qmake`.
* `configure`: completely disabling the GUI now requires passing both
`--disable-qt6` and `--disable-qt` options.
* Boost's multi-precision library is now required.
* Boost v1.66 or newer is now required.
Other changes
* The Windows build is now using an updated version of the
`file`/`magic` library for MIME type detection of attachments. This
affects fonts whose MIME types will now be the current standard MIME
types (e.g. `font/sfnt` or `font/ttf` for TrueType fonts). As this
might pose problematic with older players that only support the
legacy MIME type (e.g. `application/x-truetype-font`), a new option
was added in the GUI's preferences to use the legacy MIME types
instead of the current standard ones. This is off by default.
Builds for other operating systems have already been using newer
versions of the `file`/`magic` library for a long time.
|
|
|
|
Version 57.0.0 "Till The End" 2021-05-22
New features and enhancements
* mkvmerge: MP4 reader: added support for reading Dolby Vision from MP4 files
(FourCCs `dvh1` and `dvhe`; configuration records `dvcC`, `dvvC` and `hvcE`
will be converted into block addition mappings).
* mkvmerge: SRT subtitles: mkvmerge now accepts empty text files with the
extension `.srt` as SRT subtitle files, enabling the creation of empty SRT
tracks.
* mkvmerge, mkvextract: HEVC/H.265: access unit delimiter NALUs will no longer
be discarded, neither during muxing nor during extraction.
* MKVToolNix GUI: preferences: switched the order & wording of controls in the
"enabling items" panel to make it clearer that certain controls define
exceptions.
Bug fixes
* mkvmerge: HEVC/H.265 parser: several NALU types, notably the Dolby
Vision-specific NALUs ("unspecified 62" and "unspecified 63") and suffix SEI
NALUs, are now stored with the frame they belong to instead of with the next
frame.
* mkvmerge: HEVC/H.265 packetizer: fixed setting the track's default duration
when reading HEVC/H.265 from Matroska files that don't have a default
duration set.
* mkvmerge: HEVC/H.265 packetizer: fixed the calculation of the duration of
frames so that `SimpleBlock` elements can be used again instead of
`BlockGroups` with `BlockDuration` elements.
* mkvmerge, mkvextract: HEVC/H.265 parser: fixed issues with ordering &
duplication of certain NALUs (parameter set & prefix SEI NALUs).
* MKVToolNix GUI: multiplexer: when dragging & dropping files to the
multiplexer, the source directory will be remembered as the "last open
directory" again, causing subsequent uses of the "open file" dialog to start
in the same directory.
* mkvinfo: fixed the position of frames in block groups containing "block
duration" elements in summary mode (e.g. for subtitle tracks).
Build system changes
* `configure` will now try to detect `libmagic` via `pkg-config` and fall back
to including & linking directly if it cannot be found via `pkg-config`.
|
|
|
|
|
|
Version 56.1.0 "My Friend" 2021-04-09
New features and enhancements
* mkvmerge: AAC: added support for LOAS/LATM files with channel configuration
indexes 9–21 (e.g. channel count 22.2 for index 13) according to Rec. ITU-R
BS.1196-7 & ISO/IEC 23008-3:2019.
Bug fixes
* mkvmerge: HEVC/H.265 parser: fixed invalid memory access that could happen
when reading certain types of HEVC data (e.g. with changing parameter sets
mid-stream) from certain containers (e.g. Matroska). This bug was introduced
in release 56.0.0.
* mkvextract: AAC: mkvextract will now abort with an useful error message when
the user tries to extract a track whose 'audio-specific config' element in
`CodecPrivate` signals a number of channels of 7 or greater than 8 as that
isn't supported by the ADTS format.
Build system changes
* configure: the `--enable-ubsan` option hasn't actually enabled anything
since release 39.0.0.
|
|
Version 56.0.0 "Strasbourg / St. Denis" 2021-04-05
New features and enhancements
* mkvmerge, mkvpropedit: tags: the programs will no longer write tag elements
that are mandatory and set to their default value (e.g. "tag language" set
to `und` = undetermined).
* mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: the programs
will no longer write chapter elements that are mandatory and set to their
default value (e.g. "chapter language" set to `eng` = English or "Chapter
flag enabled" = 1).
* mkvextract: chapters: mkvextract will no longer add a `ChapterLanguage`
element set to `eng` to the generated XML content if the source file doesn't
contain such an element.
* MKVToolNix GUI: multiplexer: when using the "tab widget below the files &
tracks" layout option for the track properties the elements in the "general
options" tab will use six rows à four columns instead of twelve rows à two
columns, greatly reducing the required height.
Bug fixes
* mkvmerge: AAC reader: fixed mkvmerge aborting to read AAC files bigger than
2 GB with a message about not being able to allocate memory.
* mkvmerge: chapters: `ChapLanguageIETF` elements were still created when the
option `--disable-language-ietf` was given after an option leading to the
creation of chapters. Now the position doesn't matter anymore.
* mkvmerge: chapters: when the option `--disable-language-ietf` is used,
`ChapLanguageIETF` elements won't be written even when sources are read
(Matroska files or XML chapters files) that do contain those elements.
* mkvmerge: tags: when the option `--disable-language-ietf` is used,
`TagLanguageIETF` elements won't be written.
* mkvmerge: tags: mkvmerge will no longer write language elements for the
track statistics tags it creates, making the effective language
"undetermined" due to `und` being the default value for the legacy tag
language element.
* mkvmerge: tags: the XML tag parser will now validate all `<Simple>` children
of `<Tag>` elements, not just the first for each `<Tag>`.
* mkvmerge: tags: the XML tag parser now uses the spec-compliant `und`
("undetermined") as the default language for `<Simple>` tags instead of
`eng`.
* mkvmerge, mkvpropedit: tags: mkvmerge will no longer set the "target type"
for track statistics tags (earlier it used `MOVIE`). The "target type value"
will still be set to `50`.
* mkvmerge, mkvextract: HEVC/H.265: both programs will now normalize the
placement of VPS, SPS and PPS NALUs. Each key frame is prefixed with exactly
one copy of the currently active parameter sets. This fixes certain classes
of bugs related to splitting/appending.
* mkvinfo: when compiled with newer versions of the `fmt` library, certain
numbers were not output correctly (e.g. a track's audio sampling frequency
of 48000 might be output as 48).
* MKVToolNix GUI: multiplexer: deriving the track language from the file name
will match languages case insensitively again (like versions prior to
v55).
* MKVToolNix GUI: multiplexer: under certain circumstances keyboard shortcuts
such as `Ctrl+W` for closing the active tab or `Ctrl+R` for starting to
multiplex ceased to work until the user did certain other things (such as
switching to a different tool & back to the multiplexer or opening the
multiplexer menu). This started with v54.
* MKVToolNix GUI: chapter editor: the editor will no longer create empty
`ChapterCountry` elements when adding a chapter name with no default country
selected in the preferences.
Build system changes
* The bundled `fmt` library was updated to v7.1.3.
|
|
|
|
Version 55.0.0 "Waiting For Space"
Bug fixes
* all programs, only on Windows: fixed checking existence of & creating
directories with UNC paths such as `\\server\share\folder\file.mkv`.
* all programs, only on Windows: implemented several workarounds for bugs in
`std::filesystem` wrt. UNC paths. The effect of those bugs was that Blu-rays
and DVDs couldn't be added from UNC paths.
* mkvmerge, only on Windows: fixed non-ASCII characters getting mangled in the
destination file name when splitting is active.
* MKVToolNix GUI, only on Windows: fixed the GUI hanging when trying to browse
for files on drives that don't actually exist.
* MKVToolNix GUI, only on Windows: the GUI did not remember UNC paths as the
"most recently used source directory" properly.
* MKVToolNix GUI: only on Windows: when dragging & dropping files from other
applications to MKVToolNix GUI the GUI will force the drop action to be a
copy action, no matter which keys were pressed by the users. This prevents
Windows Explorer from deleting the dragged file when the user presses shift
while dropping the file onto MKVToolNix GUI.
* MKVToolNix GUI, only on Windows: when using the file dialog for selecting a
file name to save to (e.g. when browsing for the destination file name in
the multiplexer or saving an attachment in the header editor) non-ASCII
characters in the default file name were mangled.
* MKVToolNix GUI: multiplexer: the user can now configure what to do when
using the "Add source files" button independently of the setting for what
happens when files are dragged & dropped onto the GUI. The same options are
available, but they're distinct settings, allowing for different use
cases.
* MKVToolNix GUI: multiplexer: deriving the track language from file names
doesn't use one big regular expression of all enabled languages
anymore. Instead, the file name is split into parts on a list of characters
(such as `.` or `(` and `)`; configurable in the preferences). This prevents
the regular expression becoming too big for the regular expression library
to handle when many languages are enabled.
* MKVToolNix GUI: preferences: the language lists for "deriving track
languages" and "enabling items by language" always included all the ISO
639-3 languages, even if those weren't enabled in the "often-used languages"
pane.
Other changes
* mkvmerge, MKVToolNix GUI multiplexer: the functionality for changing the
length of the NALU "size" field for AVC/H.264 and HEVC/H.265 tracks has been
removed. The corresponding command-line option will continue to be
recognized by mkvmerge as not to break existing third-party applications,
but it won't actually do anything.
|
|
Version 54.0.0 "F Maj Pixie"
New features and enhancements
* mkvmerge: added support for using ISO 639-3 language codes in IETF BF47
language tags.
* mkvmerge: AC-3 parser: added support for byte-swapped AC-3 data.
* mkvmerge: Matroska reader: for audio tracks that have the bit depth track
header set mkvmerge will now keep that header even for codecs that don't
require it for decoding.
* mkvmerge: MPEG transport stream reader, PCM audio tracks: mkvmerge will now
re-order the channels for 5.1, 7.0 and 7.1 channel tracks from the Blu-ray
layout to the WAVEFORMATEXTENSIBLE layout expected in Matroska.
* mkvmerge, mkvinfo, mkvpropedit, MKVToolNix GUI: added support for the
following new track header elements: "hearing impaired" flag, "visual
impaired" flag, "text descriptions" flag, "original" flag, "commentary"
flag.
* MKVToolNix GUI: added support for using ISO 639-3 language codes in IETF
BF47 language tags. As there are several thousand of them, they're
deactivated by default and must be activated in the preferences ("GUI" →
"Often used selections" → "Languages").
* MKVToolNix GUI: multiplexer: when adding Blu-rays the user can select
multiple playlists to add simultaneously in the "select playlist to add"
dialog.
* MKVToolNix GUI: multiplexer: the file name extensions "eb3" and "ec3" were
added for Dolby Digital Plus & "mpl" for Dolby TrueHD in the file
dialogs.
* MKVToolNix GUI: multiplexer: when adding multiple files the dialog asking
the user what to do with them has gained a new checkbox. If enabled, all
files containing at least one video track will always be placed in newly
created multiplex setting.
* MKVToolNix GUI: multiplexer: added a menu entry in the "Multiplexer" for
adding all files that are currently in the clipboard.
Bug fixes
* all: Windows: fixed compatibility with gettext 0.21 and newer on mingw.
* all: Windows: fixed several of the programs having problems with certain
Unicode characters (primarily emojis) in file names (e.g. mkvextract
wrongfully complaining about an "invalid mode" or the GUI not being able to
find parts of Blu-ray file structures).
* mkvextract: AAC: fixed wrong channel mask field in the ADTS headers for 7.1
channel layouts.
* mkvextract: h.265/HEVC extraction: if the first frame starts with the
parameter sets (SPS, PPS & VPS), the ones from CodecPrivate aren't written
and the ones from the first frame are kept.
* mkvmerge: fixed the calculation of chapter timestamps read from NTSC
DVDs.
* MKVToolNix GUI: IETF BCP 47 language widget: the language combo box will now
always contain the language code the user enters in the free-form field,
even if it isn't in the list of often-used languages the user configured in
the preferences.
* MKVToolNix GUI: multiplexer: when browsing for the destination file name the
default directory is now chosen according to the preferences regarding how
the destination file name should be formed. For example, if the policy is
set to "fixed output directory" then that output directory will be the one
initially set when the directory selection dialog is opened.
* MKVToolNix GUI: multiplexer: fixed the removal of appended source files if
the "delete source files" end-of-job action is enabled.
* MKVToolNix GUI: chapter editor: when importing chapters from DVDs the IETF
BCP 47 language elements will be set, too, not just the legacy language
elements.
Build system changes
* libEBML v1.4.2 and libMatroska v1.6.3 are now required. The optional,
bundled copies of both libraries have been updated to those versions. This
bump in requirements fixes several heap overflow bugs in libEBML.
* MKVToolNix is now using the C++17 library feature "file system library"
instead of Boost's "file system" and "system" libraries. For the GNU
Compiler Collection (gcc) libstdc++ this means v8 or newer is required; for
clang's libc++ it means v7 or newer. For macOS this means that provided disk
image will only run on 10.15 "Catalina" or newer.
|
|
|
|
Version 53.0.0 "Fool's Gold"
New features and enhancements
* mkvmerge: AVI reader: added support for reading the video aspect ratio from
the video properties header (`vprp` chunk) if present and setting the
display dimensions accordingly.
* mkvmerge: MP4 reader: for h.264/AVC tracks that don't have an
`AVCConfigurationBox` (`avcC` atom) in their sample description (`stsd`)
atom or whose `avcC` atom contains no content `mkvmerge` will now re-derive
the `AVCConfigurationBox` from the bitstream.
* mkvextract: mkvextract will now check if any of the destination file names
is the same as the source file name and abort with an error if that's the
case.
* MKVToolNix GUI: when querying the user for a file name for saving things
(e.g. multiplexer settings or an attachment in the header editor), the
automatically suggested file name will now be based on the
situation-specific file names (e.g. the destination file name for
multiplexer settings or the attachment's name when saving an attachment in
the header editor) instead of the directory's name.
* MKVToolNix GUI: multiplexer: when deriving track languages from file names
the GUI will now select the right-most match instead of the left-most
one. For example, "La.vie.en.rose.(fr).srt" will now be detected as French
(fr) instead of English (en).
* MKVToolNix GUI: preferences: the items in the "pre-defined …" lists can now
be renamed by double-clicking with the mouse or pressing the F2 key.
* Windows installer: the `bluray_dump` command-line utility will be installed
into the `tools` sub-directory. `bluray_dump` can read & dump certain file
types used on Blu-rays: `.mpls` playlists, `.clpi` clip information
databases, `.bdmv` index files, `bdmt_….xml` disc library databases and
`tnmt_….xml` track & chapter name databases.
Bug fixes
* mkvmerge: stretching chapter timestamps with `--chapter-sync` now works
correctly with floating point values including fractions of floating point
numbers (e.g. `12.3/45.67`). The tooltips in the GUI have been adjusted
accordingly.
* mkvmerge: MPEG 1/2 video handling: the "default duration" header field was
often half the value it actually should be, resulting in all video frames
having an explicit block duration with the correct value. This has been
fixed with a patch by Tom Yan.
* mkvmerge: MPEG 1/2 video handling: the data stored in `Codec private` and
`Codec state` doesn't contain extensions other than sequence & sequence
display extensions anymore. Fix by Tom Yan.
* mkvmerge: tag handling: when remuxing a Matroska file with the
`--no-track-tags`, existing `SOURCE_ID` track tags are now skipped, too.
* MKVToolNix GUI: multiplexer: the drop-down boxes with pre-defined track
names now follow the order set in the preferences instead of sorting the
entries alphabetically.
|
|
Version 52.0.0 "Secret For The Mad"
New features and enhancements
* MKVToolNix GUI: job queue: the maximum number of jobs to run concurrently
can now be increased in the preferences. The default remains
at 1.
* MKVToolNix GUI: the GUI will now add a context-specific default extension to
file names selected for saving on platforms that don't add one itself
(e.g. GNOME). For example, when saving multiplexer settings the extension
`.mtxcfg` will be added.
* MKVToolNix GUI: added an option to the preferences for the window to stay on
top of other windows.
Bug fixes
* mkvextract: h.265/HEVC extraction: the code for skipping extraction of
prefix SEI NALUs in the first frame was skipping two bytes too few,
resulting in broken processing of all following bytes. Patch by Mike Chen.
* libEBML: the optional, bundled version of libEBML was updated to v1.4.1.
Build system changes
* libEBML v1.4.1 is now required due to a bug in libEBML that caused pointers
to just-freed memory being returned to the caller under certain invalid data
constellations, causing use-after-free errors in all of MKVToolNix's
programs.
|
|
|
|
|
|
|
|
Version 51.0.0 "I Wish" 2020-10-04
New features and enhancements
* mkvmerge, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added
missing support for UN M.49 regions for which there are no corresponding ISO
3166 alpha codes. This enables language tags such as `es-419` = Spanish in
Latin America and the Caribbean.
* MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying
the current language & the corresponding edit button is now displayed like a
link (depending on the theme: different color & underlined), making it
clearer that not just the edit button can be clicked but the text, too.
Bug fixes
* mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due
to certain data conditions. Found by fuzzying.
* mkvmerge: AV1 packetizer: the duration of frames wasn't set properly. When
appending AV1 IVF or OBU files this meant that the last frame of the Nth
file and the first frame of file N+1 had the same timestamp.
* mkvmerge: DTS reader: fixed handling of buffers with an odd length when
byte-swapped DTS is detected so that mkvmerge doesn't abort with a failed
assertion. Found by fuzzying.
* mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will
no longer claim to recognize data that looks like AVC or HEVC but with
invalid video width/height values as that lead to failed assertions in
libEBML later. Found by fuzzying.
* mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught
exceptions due to certain data constellations found by fuzzying.
* mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero"
error due to certain data conditions. Found by fuzzying.
* mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the
timestamp scaling factor being 0 after handling certain data constellations
found by fuzzying.
* mkvmerge: track statistics: fixed a "division by zero" error when the
content's shorter than 1ms. Found by fuzzying.
* mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an
invalid memory access under certain data conditions. Found by fuzzying.
* MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer
open the language dialog when clicking on a disabled language display
widget.
* MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were
not populated even when the language tag was valid and contained at a
variant.
* MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at
least one of the other components (extended subtags, region, or variants)
has something selected and "private use" is not empty, the GUI would claim
this to be a valid tag, which it isn't.
* MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes
from "at least one entry selected" to "no entry selected", the input
controls will be reset to their default state and not just disabled.
Build system changes
* `configure` now checks for the presence of the a system-wide installed copy
of the JPCRE2 C++ wrapper library for the PCRE2 library and uses that if
it's new enough (at least v10.32.1). If not, the bundled version will be
used as a fallback.
|