* Sun Apr 28 2024 Luigi Baldoni <aloisio@gmx.com>
- Update to version 84.0
New features and enhancements:
* mkvmerge: added a new file-specific option
`--regenerate-track-uids`. When used for Matroska files,
`mkvmerge` will generate new random track UIDs instead of
keeping existing track UIDs. This is done automatically when
a Matroska file was created by MakeMKV.
* mkvmerge: MP4 reader: added support for FLAC in MP4.
* MKVToolNix GUI: multiplexer: the "Attachments" tab's title
will now include the total number of attachments (both from
source files & to newly attach).
* translations: added a Norwegian Bokmål translation of the
programs by Roger Knutsen (see `AUTHORS`).
Bug fixes:
* configure: when called with `--disable-gui` the build system
still ran the check for the GUI libraries & failed if they
weren't found. This check is now skipped when the option is
given.
* mkvmerge: several color-related track header properties were
parsed into & stored as a wrong integer type internally. This
could result in wrong values being copied when very large
values were present in source files, or in error messages
when very large values were used as command-line parameters.
* MKVToolNix GUI: multiplexer: the keyboard shortcuts from the
"modify selected tracks" sub-menu didn't work right after
opening a file. They only started working after opening the
"multiplexer" menu.
Build system changes:
* Release v8.0.0 of the `fmt` library is now required. If not
found, the bundled copy will be used.
* A C++20 compatible compiler is now required for several but
certainly not all C++20 features. g++ v10 & clang++ v10
should suffice.
* Sun Mar 10 2024 Luigi Baldoni <aloisio@gmx.com>
- Update to version 83.0
New features and enhancements:
* translations: added a Belarusian translation of the programs
& the man pages by prydespar (see `AUTHORS`).
* mkvmerge, MKVToolNix GUI's chapter editor: added support for
reading chapters from ffmpeg metadata files.
* MKVToolNix GUI: added a new action type for execution after
jobs or the queue finishes: quitting MKVToolNix.
Build system changes:
* The bundled `fmt` library was updated to v10.2.1.
Other changes:
* Tons of changes were made to support the latest development
versions of libEBML & libMatroska.
* Wed Jan 03 2024 Luigi Baldoni <aloisio@gmx.com>
- Update to version 82.0
New features and enhancements:
* mkvmerge: Matroska reader: the "video alpha mode" track
header property will be copied to the output file if present.
* mkvmerge: Matroska reader: the "video alpha mode" track
header property will be reported in JSON identification mode
as the track property `alpha_mode`.
* mkvmerge: Matroska reader: the file's timestamp scaling
factor will be reported in JSON identification mode as the
container property `timestamp_scale`.
* mkvmerge: MPEG transport stream reader: teletext subtitles
intended for hearing impaired people (type 0x05) are now
marked as such via the appropriate flag in the track headers.
* mkvmerge: file identification: the JSON identification
output schema version has been bumped to 19.
* mkvmerge: added a new hack `always_write_block_add_ids` that
can be used as a workaround for players that don't support
the handling of missing "Block Addition ID" sub-elements of
"Block More" elements in block additions properly. These are
used for e.g. alpha channel data in VP9 with a "Block
Addition ID" value of 1, which is also its default value.
* mkvinfo: added support for the "video alpha mode" track
header element.
* mkvpropedit, MKVToolNix GUI's header editor: added support
for the "video alpha mode" track header property. In
`mkvpropedit` it's called `alpha-mode`.
* MKVToolNix GUI: multiplexer: when adding files the GUI can
automatically enable the "hearing impaired" flag for audio
and subtitle tracks if the file name contains the word "cc"
or "sdh" delimited by certain characters (configurable).
This feature is turned on by default.
* MKVToolNix GUI: multiplexer: when scanning for Blu-ray
playlists the GUI will now ignore playlists that are likely
meant for menus. Currently the GUI considers this to be the
case when a playlist contains the same item at least five
times. This behavior can be turned off in the preferences.
Bug fixes:
* mkvmerge: MPEG transport stream reader: fixed a crash
introduced in v81 that occurred when there was at least one
PCM track that wasn't copied from the transport stream file.
* mkvmerge: when reading data from Matroska files damaged in a
specific way, mkvmerge ended up trying to write various types
of elements that aren't allowed to be written (so-called
`EbmlDummy` elements as well as elements that don't have a
value set) to the output file, which caused the underlying
`libebml` library to abort. These types of broken elements
are now filtered out.
Build system changes:
* Qt 5 is no longer supported. Qt 6 is now required for
building MKVToolNix. This implies that the options to
`configure` revolving around configuring Qt 5 or choosing
between the two have been removed (e.g. `--disable-qt6`).
* Qt 6 detection: if detection fails, error messages from
`qmake` can now be found in `config.log`.
* Qt 6 detection: `configure` will only consider Qt 6.2.0 or
newer, not 6.0.x or 6.1.y anymore, due to the lack of
support for the multimedia module.
* Qt 6 detection: `configure` will now fail to detect Qt 6 if
the 'multimedia' module is not found by `qmake` (e.g. due to
development packages not being installed).
* The bundled `fmt` library was updated to v10.1.1.
* Sat Dec 02 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 81.0
New features and enhancements:
* mkvmerge: MPEG transport stream reader: HEVC/H.265: added
support for reading single-layer Dolby Vision from Annex B
type bitstream read from MPEG transport streams.
* mkvmerge: MPEG transport stream reader, HEVC/H.265
elementary stream reader: added support for reading
dual-layer Dolby Vision with both the base & enhancement
layers in the same track from Annex B type bitstreams in MPEG
transport files & elementary stream files.
* mkvmerge: MPEG transport stream reader: HEVC/H.265:
implemented combining dual-layer Dolby Vision with base &
enhancement layers in different tracks.
* MKVToolNix GUI: multiplexer: added a new option in the
preferences for always enabling 'forced' subtitle tracks.
A subtitle track is considered to be 'forced' if: the
corresponding property is set in the source file; the
track's name contains the word 'forced' (in English);
deriving the 'forced display' flag from file names is active
& the file name matches the corresponding pattern. The option
is disabled by default.
* MKVToolNix GUI: multiplexer: the functionality for detecting
file name sequences when adding files can now recognize the
patterns used by GoPro's cameras for chaptered video files.
* xyzvc_dump: the end position of the current NALU will be
output in non-portable format as well.
* xyzvc_dump: HEVC: the tool will now also output the inner
NALU type of Dolby Vision NALUs (`unspec62` and `unspec63`).
Bug fixes:
* mkvmerge: when the user requests processing be stopped after
the video ends `mkvmerge` will now take appending files into
account properly. It won't stop processing unconditionally
after the first file ends anymore.
* mkvmerge: AV1 handling in readers: the readers will now
provide the pixel dimensions to the AV1 packetizer as early
as possible, just like for other video packetizers. That way
the pixel dimensions are available for calculating the
display dimensions when command-line options such as
`--aspect-ratio` & `--aspect-ratio-factor` are used. Before
the change the calculation was done based on initial pixel
dimension values of 0x0, resulting in display dimensions of
0x0, too.
* mkvmerge: HEVC/H.265 packetizer: when reading & appending
HEVC/H.265 from Matroska, MP4/MOV or FLV files the first
frame of all the appended files was sometimes dropped,
resulting in broken video at the point where video is
appended.
* mkvmerge: MPEG transport stream reader: when reading MPEG
transport streams from Blu-rays the four-byte long
`TP_extra_header` structure in front of the transport
packets are now skipped properly. Before the fix a stray
byte with value of `0x47` inside that `TP_extra_header`
structure could have thrown off the detection of where the
transport packets start, leading to mkvmerge dropping a few
audio and/or video frames at the start of the file.
* mkvextract: AAC extractor: when an invalid program config
element in the GA-specific config element is encountered,
the program config element will be disregarded, which avoids
mkvextract aborting with an exception.
* xyzvc_dump: fixed the tool aborting with an exception when
the last NALU in an Annex B type file was shorter than four
bytes.
Other changes:
* AVC & HEVC dumper development tool: the tool has been
renamed from `xvc_dump` to `xyzvc_dump` as `xvc` is an
abbreviation for an existing video codec (Extreme Video
Coding), and the tool has nothing to do with that codec.
* Mon Oct 30 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 80.0
New features and enhancements:
* MKVToolNix GUI: if the system's locale uses one of the Han
scripts, the GUI will force Arabic numerals to be used in
spin boxes. This prevents Suzhou numerals from being used.
Bug fixes:
* build system: fixed detection of Qt6 if `clang` is used for
compilation on Linux. In that case Qt's `qmake` added a
`gcc`-specific option that `clang` doesn't understand,
`-mno-direct-extern-access`. `configure` will now pass the
parameter `-spec linux-clang` to `qmake` so that it uses the
correct compiler flags.
* build system: fixed the use of `mktemp` to be more portable.
* mkvmerge: if a video aspect ratio was given with
`--aspect-ratio-factor`, the code would apply a second
factor based on the pixel resolution, resulting in much too
large values for the `DisplayWidth` element. For example,
with a pixel resolution of 720x520 & an aspect ratio factor
of 1/1 the result should be 720x520, but instead it was
900x520. Up until release 76.0 this has only happened when a
track order was given (which unfortunately includes all
invocations with MKVToolNix GUI as it always includes the
track order). Starting with release 77.0 this has always
happened due to the automatic sorting of tracks implicitly
creating a track order, even if none was given.
* Tue Aug 22 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 79.0
New features and enhancements:
* mkvmerge: AV1: added support for reading Dolby Vision from
AV1 IVF & OBU streams. Patches by Quietvoid.
* mkvmerge: MPEG TS reader: added support for colors in
teletext subtitles.
* MKVToolNix GUI: multiplexer: when adding files the GUI can
automatically enable the "forced display" flag for subtitle
tracks if the file name contains the word "forced" delimited
by certain characters (configurable). This feature is turned
on by default.
* MKVToolNix GUI: multiplexer: added the option
`--stop-after-video-ends` to the dialog for additional
command line options.
* MKVToolNix GUI: multiplexer: when adding Blu-ray playlists
the dialog allowing the user to select the playlist to add
will now show audio & video track properties as well (pixel
dimensions for video; sampling frequency, channels for audio).
* MKVToolNix GUI: header editor: in order to reduce confusion
with users non that versed in Matroska elements, the naming
of the two "language" track properties has been changed:
the old element is now titled "Language (obsolete)" & the
current, IETF BCP 47 based one is simply called "Language".
* MKVToolNix GUI: preferences: you can now use the "delete"
key to remove entries from simple list widgets for strings
(e.g. the list of recently used destination directories).
Bug fixes:
* mkvmerge: DTS reader: if a DTS stream doesn't start with a
DTS core but a sub-stream element (EXSS), the reader will
now look for a core. If found, it'll start processing from
there instead of from the start. This fixes the timestamp
calculation if the sampling frequency in the core & in the
extensions are different.
* MKVToolNix GUI: multiplexer: the "emphasis" and
"stereoscopy" combo-boxes now have a much smaller minimum
width, allowing to make the whole "properties" pane much
smaller again.
* Mon Jul 03 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 78.0
New features and enhancements:
* MKVToolNix GUI: header editor: for files that only contain
legacy track language elements but no IETF language elements
the header editor will now derive the IETF language elements
from the legacy elements.
Bug fixes:
* all: Linux: if initializing the locale system based on the
system's settings fails, e.g. if environment variables such
as `LC_ALL` have been set to `fr_FR.UTF-8` but the locale
for `fr_FR.UTF-8` hasn't been built, MKVToolNix
will try to fall back to `en_US.UTF-8` first & `C.UTF-8`
second. If neither of the three succeeds, an error message
will be shown, and the program will abort. This fixes the
programs not catching an exception from the
`boost::filesystem` library which doesn't cope with
mis-configured locale systems well.
* mkvmerge: sorting tracks by type did not work properly when
some tracks weren't copied.
* mkvmerge: track numbers in the destination file were
assigned out-of-order when the track order in the source
files differs from the one in the destination file. Now
they're assigned sequentially in the order the tracks
appear in the destination file again.
* MKVToolNix GUI: under certain circumstances the GUI would
try to display error messages from a secondary thread, which
isn't allowed in Qt, causing to program to either hang or
outright crash.
* MKVToolNix GUI: the GUI will check for several potential
installation issues wrt. to having write access to certain
directories (system's temporary directory, MKVToolNix's file
identification cache directory and others) & display proper
error messages if not.
* MKVToolNix GUI: header editor: fixed the application
crashing whenever you change a property below the "segment
information" node. This bug was introduced in v77.
* MKVToolNix GUI: header editor: when reading files that only
contain legacy track language elements but no IETF track
language elements, the header editor was showing all tracks
as having "English" as the language. This bug was introduced
in v77.
* MKVToolNix GUI: header editor: when a legacy track language
element contains a country code (e.g. `fr-CA`), the header
editor was wrongfully using `und` = "undetermined" as the
language for that element. Now it'll use the language from
the language/country pair, which would be `fr` in the earlier
example.
* MKVToolNix GUI: header editor: the keyboard shortcuts from
the "modify selected track" sub-menu didn't work right after
opening a file. They only started working after opening the
"header editor" menu.
Build system changes:
* The compilation database (`compile_commands.json`) is now
always built. The variable `BUILD_COMPILATION_DATABASE` is
not evaluated anymore.
* Sun Jun 04 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 77.0
New features and enhancements:
* mkvmerge: tracks in the destination file will now be sorted
by their type automatically unless the track order is
specified with the `--track-order` option. The order is as
follows: video tracks first followed by audio & subtitle
tracks with other rarely used types of tracks last. Tracks
of the same type will be sorted in the same order as their
source files occur in the command-line arguments. Note that
this doesn't affect file identification.
* MKVToolNix GUI: multiplexer: the default list colors used
for distinguishing source files does not include the darkest
tier anymore (the ones where one or two components are set
to the value 0x3f) as they're hard to distinguish from each
other. Only affects new installations, or when the user
presses the "reset to default colors" button.
* MKVToolNix GUI: multiplexer: the GUI will now check the
state of the 'track enabled' flag of all video, audio &
subtitle tracks when starting to multiplex or adding a job to
the job queue. If there's no track with its flag turned on
for a type, the GUI will turn on the flag for the first track
of the type. This behavior can be turned off in the
preferences.
* MKVToolNix GUI: header editor: the columns in the
tracks/attachments view and the values on the "track type"
page will now be updated each time a corresponding property
is changed (e.g. when a track's name is changed) instead of
showing what's in the file on disk.
* MKVToolNix GUI: Windows: a new settings in the preferences
lets the user chose whether to use the light or the dark
color palette, or to follow the system settings.
Bug fixes:
* Fixed compilation with fmt v10.0.0.
* mkvmerge: fixed several instances of wrong format strings
for `fmt::format` used in debug messages.
* mkvmerge: AV1 packetizer: the packetizer did not honor the
aspect ratio (factor) given on the command-line via the
`--aspect-ratio` or `--aspect-ratio-factor` options.
* mkvmerge: JSON identification: cropping parameters are
reported again even if some of the four values are not
present in the file or set to 0.
* MKVToolNix GUI: the defunct "disable the dark mode" checkbox
was removed from the preferences.
* MKVToolNix GUI: language dialog: under certain conditions
the controls for the individual components remained disabled
when the dialog is opened even though editing of individual
components is selected.
* MKVToolNix GUI: language dialog: the controls for the
individual components weren't re-initialized properly after
opening the dialog for the second & all following times,
potentially leaving previously selected/entered entries
intact, primarily when editing multiple tracks at once.
* MKVToolNix GUI: header editor: using the actions from the
"modify selected track" context menu only worked if the user
right-clicked on the first column in the view. They now work
for clicks on any of the columns.
* MKVToolNix GUI: header editor: some of the actions toggling
specific flags from the "modify selected track" did not work
correctly if the flag wasn't currently present in the file,
especially if the underlying value has a default value in the
Matroska specs.
Build system changes:
* The bundled `fmt` library was updated to v10.0.0.
* MKVToolNix GUI now uses an external Qt resource file instead
of compiling it into the executable. The resource file has
reached a size at which the C++ compiler exhausts available
virtual memory on some 32-bit architectures.
The GUI will look for the file in the directory set with
`configure`'s `--datadir` parameter on other systems
(which usually means `/usr/share/mkvtoolnix`). The `install`
build system commands installs it into that folder.
* Sun Apr 30 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 76.0
Important notes:
* mkvmerge: removed the option `--blockadd`. Removing block
additional data is not possible anymore, as it is often
required for proper decoding.
New features and enhancements:
* mkvmerge: JSON file identification: added a child element
called `num_index_entries` to the `properties` track element
containing the number of index entries found for a track.
Currently only implemented for Matroska files where it
contains the number of cue points.
* mkvmerge: the maximum block addition ID track header value
is now calculated automatically from both the existing
mappings & the actually used block additions in the block
groups.
* mkvmerge: Matroska reader: when reading WebM files that use
block additions with ID 4 (HDR for VP9) an appropriate block
addition mapping will be created automatically.
* mkvmerge: MP4 reader: the title/movie name meta data
(content of the `udta.meta.ilst.©nam` atom) will now be
copied over as the segment title track header attribute.
* mkvmerge: MP4 reader: the comment & encoder meta data
(content of the `udta.meta.ilst.©cmt` & `….©too` atoms) will
now be copied over as global tags `COMMENT` & `ENCODER`
respectively.
* mkvmerge, MKVToolNix GUI's multiplexer: added an option to
stop processing after the primary video track ends called
`--stop-after-video-ends`. This discards any remaining
packets of other tracks.
* MKVToolNix GUI: multiplexer: automatically setting the
destination file name: added an option in the preferences
for using the first source file's directory name instead of
its file name as the basis for the destination
file name.
* MKVToolNix GUI: multiplexer: double-clicking on certain
columns in the "tracks" view will now toggle them directly
(columns "Default track" & "Forced track") or activate the
corresponding control (columns "Language", "Name" &
"Delay"). Double-clicks on other columns will do what
they've done before, too: toggling the "Copy item" state.
* MKVToolNix GUI: the dialog for editing language tags is now
created only the first time the user wants to edit a
language tag & cached afterwards instead of creating a new
instance each time. This makes subsequent uses instant.
Bug fixes:
* mkvmerge: mkvmerge will now only try to probe for VobSubs if
the name of the file to identify ends in either `.idx` or
`.sub`, preventing mis-identification of other file types if
VobSubs with the same base name exist in the same directory.
* mkvmerge: AC-3: mkvmerge will now skip certain types of
garbage data (16 bytes starting with 0x01 0x10) that can
occur before each sync frame, fixing the file not being
identified as AC-3.
* mkvmerge: Matroska reader: when reading files that use block
additions with IDs other than 1 (e.g. 4 for HDR for VP9) the
IDs will now be kept & written to the output file. Before no
ID would be written, effectively using 1 as that's the
default value for the corresponding element.
* mkvmerge: mkvmerge will no longer write block addition
mappings or the max block addition ID track header elements
when creating a WebM file as those elements aren't supported
there.
* mkvpropedit: fixed replacing chapters & tags in files that
don't contain tracks.
Version: 75.0.0-bp155.1.5
* Sun Mar 26 2023 Luigi Baldoni <aloisio@gmx.com>:
- Update to version 75.0.0
New features and enhancements:
* mkvmerge: MP4 reader: mkvmerge will now read Timed Text
(FourCC `tx3g`) subtitle tracks & convert them on the fly to
Matroska's simple text subtitle format (`S_TEXT/UTF8`; text
only, no styles).
Bug fixes:
* all: switched back to using `boost::filesystem` functions
for creating directories instead of the ones introduced to
work around bugs in `std::filesystem`. The latter didn't
work correctly with UNC paths after the switch to
`boost::filesystem::path` in v74.
* mkvmerge: VobSub reader: mkvmerge will now probe the `.idx`
file during VobSub identification even if the `.sub` file is
passed as the source. Avoids mis-detection of the `.sub` as
MPEG program streams.
* MKVToolNix GUI: the GUI could abort with an exception on
startup while looking for the `mkvmerge` or `mediainfo`
executables due to inaccessible folders.
* MKVToolNix GUI: preferences: when opening the preferences
the first time the UI might pre-select the first entry in
the list of interface languages if the operating system's
language is not available for MKVToolNix. This might also
happen on Linux if e.g. `en_GB` is set, even though `en_US`
is available. Now English (`en_US`) will be selected instead.
* MKVToolNix GUI: multiplexer: when adding files the GUI has
special handling for chapter/tags/segment info files. This is
done by comparing their content to certain patterns. This
recognition could wrongfully be triggered if any such file
was embedded in another file verbatim, e.g. with a chapter
XML file attachment in a Matroska file. When trying to add
that Matroska file, the GUI would treat it as a chapter file
instead of a regular one. This content-based detection was
fixed.
Other changes:
* mkvpropedit, GUI's header editor: removed support for the
deprecated "minimum cache" & "maximum cache" track header
elements.
* Thu Mar 16 2023 Max Lin <mlin@suse.com>
- Requires qt6-multimedia in Leap 15.5
* Sun Feb 12 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 74.0.0
New features and enhancements:
* mkvmerge: SRT handling: added a hack called `--engage
keep_whitespaces_in_text_subtitles` which disables stripping
whitespaces from the start & end of each line of SRT entries
during muxing.
Bug fixes:
* all: Windows: UNC paths of type `\\?\C:\…` are supported
again by switching back to Boost's file system library
instead of using C++17's file system library.
* mkvmerge: AVC/H.264 & HEVC/H.265 packetizers: when appending
tracks the pixel dimensions will be checked & muxing will be
aborted if they don't match.
* mkvmerge: file type detection: file types that can be
detected unambiguously by their content (e.g. Matroska, MP4,
WAV…) will now preferred in the detection order over file
types based on their extension. Prevents certain cases of
mis-detection, e.g. DTS in WAV but with a file name
extension of `.dts` being detected as the wrong type of DTS.
* mkvmerge: SRT handling: whitespaces will now be stripped
from the start & the end of each line of each entry, not
just from the end of the last line.
* mkvextract: SRT extraction: whitespaces will not be stripped
from the start & end of the whole entry anymore.
* MKVToolNix GUI: multiplexer: when adding multiple files that
include certain file types (chapters, segment info and tag
files) and when the choice where to add them is "all files
to a single new tab", these certain file types will now be
added in the newly added tab as well instead of the current
tab that had already been open.
* build system: fixed compatibility with Ruby 3.2.0 by using
`FileTest.exist?` instead of `File.exists?`, `Dir.exists?` &
`FileTest.exists?` which were removed in that release.
Build system changes:
* MKVToolNix is now using & requiring Boost's "file system"
and "system" libraries again instead of C++17's file system
library. This is due to gcc's library not supporting UNC
paths of types `\\?\C:\dir\file.ext`.
* Tue Jan 03 2023 Luigi Baldoni <aloisio@gmx.com>
- Update to version 73.0.0
New features and enhancements:
* mkvmerge: greatly enhanced the speed of Base64 decoding
which is used used e.g. when reading pictures embedded in
Ogg or FLAC files or for binary data inside XML chapter &
tag files. Even small blocks of data could take unreasonably
long.
* mkvmerge: added support for reading HEVC/H.265 video from FLV
containers.
Bug fixes:
* mkvmerge: splitting: fixed a typo in the string output in
GUI mode regarding the timestamps before which splitting was
done.
* MKVToolNix GUI: job output: after having run multiple jobs
the "Clear output" functionality only reset the visible
parts. However, using the "save output" function would also
save the output generated before the user used "clear
output". Now only the output after the last use of "clear
output" is saved.
* build system: when probing for the FLAC library the Ogg
libraries will be linked with the compiled test program as
well. This fixes detection if the `pkg-config` settings for
FLAC don't list Ogg & the linker doesn't find the library
automatically.
* Sun Nov 13 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 72.0.0
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.
* 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.
* Sun Oct 09 2022 C J <c.j@tuta.io>
- Update to version 71.1.0
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.
- Add Qt multimedia as a requirement for the GUI as it doesn't run
without it.
* Sun Oct 09 2022 C J <c.j@tuta.io>
- Update to version 71.0.0
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. Implements #3401.
* MKVToolNix GUI: greatly sped up closing the preferences dialog
by only re-running certain initialization functions when their
corresponding settings have changed. Also fixes issues such as
[#3406].
* 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. Fixes #3394.
* Wed Aug 17 2022 Luigi Baldoni <aloisio@gmx.com>
- Switch to Qt6 build for Tumbleweed (fixes boo#1202446)
* Sun Aug 14 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 70.0.0
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.
* Sat Jul 09 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 69.0.0
Important notes:
* all: the spelling of "colour" was changed to "color"
throughout all programs to match the use of American English
spelling in MKVToolNix.
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.
* Mon May 23 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 68.0.0
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-bp154.1.42
* Sat Apr 16 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 67.0.0
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.
* 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:
* 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.
* Sun Mar 13 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 66.0.0
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.
* Sun Feb 06 2022 Luigi Baldoni <aloisio@gmx.com>
- Update to version 65.0.0
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.
* Mon Jan 10 2022 Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update _constraints to cover all architectures, not only ppc64
* Mon Dec 27 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 64.0.0
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.
* Sun Nov 14 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 63.0.0
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: 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.
* Sun Oct 10 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 62.0.0
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.
- Add tools subpackage
* Mon Aug 30 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 61.0.0
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.
- Drop mkvtoolnix-use-system-boost.patch (no longer necessary)
* Sat Jul 31 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 60.0.0
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: 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.
* Sat Jul 10 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 59.0.0
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. Fixes #3151.
* 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.
* 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.
- Use system version of utfcpp
Version: 59.0.0-bp153.2.3.1
* Mon Jul 12 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 59.0.0 (fixes boo#1188209)
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. Fixes #3151.
* 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.
* 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.
- Use system version of utfcpp
* Sun Jun 13 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 58.0.0
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).
* 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.
* 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.
* Sat May 22 2021 Luigi Baldoni <aloisio@gmx.com>
- Up date to version 57.0.0
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-bp153.1.2
* Fri Apr 09 2021 aloisio@gmx.com
- Update to version version 56.1.0
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.
* Mon Apr 05 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 56.0.0
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.
* Sat Mar 06 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 55.0.0
Bug fixes:
* 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.
* Fri Feb 26 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 54.0.0
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:
* 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.
* Sat Jan 30 2021 Luigi Baldoni <aloisio@gmx.com>
- Update to version 53.0.0
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.
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.
* 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.
* 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.
* Tue Jan 05 2021 aloisio@gmx.com
- Update to version 52.0.0
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.
* 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.
* Sun Oct 04 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 51.0.0
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.
* Sun Sep 06 2020 aloisio@gmx.com
- Update to version 50.0.0
New feature: IETF BCP 47 language tags:
* I've written up a [nice FAQ
https://gitlab.com/mbunkus/mkvtoolnix/-/wikis/Languages-in-Matroska-and-MKVToolNix
about the switch to using IETF BCP 47 language tags, how
they interact with legacy language elements, how the programs
actually behave and how to disable their use if necessary.
* mkvmerge: IETF BCP 47/RFC 5646 language tags: mkvmerge will
now accept full BCP 47 language tags for all options taking
a language. mkvmerge will always write "LanguageIETF" track
header elements. If the language tag contains a valid ISO
639-2 language code it will also set the legacy "Language"
track header element to the included ISO 639-2 code.
* mkvmerge: IETF BCP 47/RFC 5646 language tags: if present the
"LanguageIETF" track header element will be reported as the
`language_ietf` property in JSON identification mode.
* mkvmerge: IETF BCP 47/RFC 5646 language tags in chapters:
mkvmerge will now write "ChapLanguageIETF" elements when
creating chapter atoms, either when reading the simple
chapter format or when generating
chapters due to the `--generate-chapters` command line
option.
* mkvmerge: IETF BCP 47/RFC 5646 language tags in tags:
mkvmerge will now write "TagLanguageIETF" elements when
creating "simple tag" elements, either when reading tag XML
files or when generating them.
* mkvmerge: IETF BCP 47/RFC 5646 language tags: added an option
`--disable-language-ietf` that causes mkvmerge to only write
the legacy language elements.
* mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF
BCP 47/RFC 5646 language tags in chapters: when reading XML
chapter files the programs will now add "ChapLanguageIETF"
elements for atoms that don't contain them. The values are
derived from existing "ChapterLanguage" elements.
* mkvpropedit: IETF BCP 47/RFC 5646 language tags:
setting/deleting the track language now acts on both the old
language element as well as the "LanguageIETF" track header
element.
* mkvpropedit: IETF BCP 47/RFC 5646 language tags: added an
option `--disable-language-ietf` that causes mkvpropedit to
apply changes to the `language` track header property only
to the legacy language track header element.
* mkvinfo: IETF BCP 47/RFC 5646 language tags: added support
for the "LanguageIETF" track header element.
* MKVToolNix GUI: multiplexer: added full support for IETF BCP
47/RFC 5646 language tags for both track and chapter
languages.
* MKVToolNix GUI: chapter: added full support for IETF BCP
47/RFC 5646 language tags for chapter languages.
* MKVToolNix GUI: header editor: added full support for IETF
BCP 47/RFC 5646 language tags for track header languages.
The header editor allows editing of the legacy language
elements and the IETF BCP 47 language elements independent
of each other.
Other new features and enhancements:
* mkvmerge: the chapter generation mode `when-appending` now
also works with the splitting modes `parts:` &
`parts-frames:` when using the `?,+?` syntax for appending
other sections of the source file to the same destination
file.
* MKVToolNix GUI: multiplexer: the file selection dialogs now
include the extension `.dtsma` for DTS files.
* mkvmerge: MP4 reader: sped up parsing MP4 DASH files with a
lot of segments (`trun` atoms) quite a bit.
* The PCRE2 regular expression library is now used instead of
`std::regex` for big performance improvements in all places
where regular expressions are used for parsing big chunks of
text, e.g. in the subtitle parsers.
Bug fixes:
* MKVToolNix GUI: preferences: under certain conditions
changing the selected entry in the page tree on the left did
not cause the page shown on the right to be updated.
* mkvmerge: splitting text by a fixed string (e.g. `,`) is now
done by using `std::string.find()` instead of using a
regular-expression-based text splitting function, greatly
improving its performance.
* mkvmerge: MP4 reader: fixed handling of `tkhd` atoms of
version 1.
Build system changes:
* The PCRE2 library (the 8-bit variant) is now required.
* Sun Aug 02 2020 aloisio@gmx.com
- Update to version 49.0.0
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.
* configure: fixed detection of QtDBus. Fixes #2886.
Build system changes:
* libMatroska v1.6.1 is now required. The bundled version has
been updated to that version.
* Sun Jun 28 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 48.0.0
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.
* 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`.
* Tue Jun 02 2020 Michel Normand <normand@linux.vnet.ibm.com>
- Add _constraints file to avoid build error for ppc64/ppc64le
* Sat May 30 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 47.0.0
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 built 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` 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.
Version: 46.0.0-bp152.1.10
* Fri May 01 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 46.0.0
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. Implements #2791.
* 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. Implements #2774.
* 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". Implements #2798.
Bug fixes:
* mkvmerge: Matroska reader: when regenerating UIDs for
chapters mkvmerge will now fix referencing tag chapter UID
targets to have the same values. Fixes #2804.
* 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. This fixes #2782, a bug introduced in v45.
* 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. Part
of the fix of #2789.
* mkvmerge: MPLS handling/MPEG TS reader: under certain
circumstances mkvmerge copied one frame too many before
switching to the next play item. Part of the fix of #2789.
* 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). Fixes #2790.
* MKVToolNix GUI: fixed a crash that happened when closing the
preferences after having closed at least one multiplexer tab.
Fixes #2785.
* Sat Apr 04 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 45.0.0
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. Implements #2768.
* MKVToolNix GUI: added an option in the preferences to
disable all tooltips.
* MKVToolNix GUI: multiplexer: if the file identification
fails due to a JSON parser error, the output generated by
`mkvmerge` will be output to `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.
Implements #2778.
* MKVToolNix GUI: job queue: added an option in the
preferences for removing completed jobs when exiting the
program depending on their status. Implements #2769.
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. Fixes #2747.
* 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. Fixes #2777.
* 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 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).
Fixes #2765.
* MKVToolNix GUI: multiplexer, info tool: fixed the "warn
before overwriting" check wrt. jobs creating the same file.
Fixes #2758.
* Mon Mar 09 2020 aloisio@gmx.com
- Update to version 44.0.0
New features and enhancements:
* MKVToolNix GUI: header editor: the attachments can now be
reordered via drag & drop. Implements #2753.
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. Fixes #2737.
* MKVToolNix GUI: multiplexer: the "ask before overwriting"
functionality did not look for the correct file names when
splitting was active. Fixes #2741.
* Mon Jan 27 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 43.0.0
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. Implements #2723.
* 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. Part of the
implementation of #2709 and part of the fix of #2250.
* 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). Part of the fix of
[#2250].
* mkvmerge: MPEG TS reader: fixed detection of MPEG-1/2 video
tracks consisting of very few frames. Fixes #2732.
* mkvmerge: Ogg Opus reader: fixed the handling of Ogg Opus
streams that contain a just one Ogg page (`mkvmerge` aborted
with an exception). Fixes #2722.
* 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. Fixes #2718.
* Thu Jan 02 2020 Luigi Baldoni <aloisio@gmx.com>
- Update to version 42.0.0
New features and enhancements:
* mkvmerge: added an option for creating byte-identical files:
`--deterministic <seed>`. Part of the implementation of
[#2698].
* mkvmerge: Matroska reader: mkvmerge will remove the `icpf`
atom headers if they're present in frames read from Matroska
files. Implements #2692.
* 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.
Implements #2714.
* mkvpropedit: when changing track UIDs the referring elements
in existing chapters & tags will be updated automatically,
too. Part of the implementation of #2700.
* mkvinfo: when the option `-p`/`--hex-positions` is used,
element positions will be output regardless of the verbosity
level. Part of the implementation of #2713.
* mkvinfo: added the option `-P`/`--positions` for showing the
position of each element in decimal regardless of the
verbosity level used. Part of the implementation of #2713.
* mkvinfo: added the option `-o`/`--continue` for continuing
processing when the first cluster is encountered regardless
of the verbosity level used. Part of the implementation of
[#2713].
* 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. Part of the implementation of #2713.
* MKVToolNix GUI: multiplexer: added an option in the
preferences for disabling adding cover images from Blu-ray
discs. Implements #2693.
* MKVToolNix GUI: multiplexer: added mkvmerge's new
`--deterministic` option in the "additional command-line
options" dialog. Part of the implementation of #2698.
* MKVToolNix GUI: header editor:: when changing track UIDs the
referring elements in existing chapters & tags will be
updated automatically, too. Part of the implementation of
[#2700].
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. Patch by Torsten
Hauska. Fixes #2710.
* 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. Fixes
[#2687].
* mkvmerge: MPEG elementary stream parser: fixed an invalid
memory access and use of uninitialized memory that could
happen under certain circumstances. Fixes #2690.
* mkvmerge: RealMedia reader: fixed a division by zero when
all audio timestamps were zero. Fixes #2689.
* mkvmerge: RealMedia reader: fixed an invalid memory access
in the video frame assembly code triggered by invalid data
in the file. Fixes #2691.
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.
* Fri Dec 06 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 41.0.0
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. Part of the implementation of #2673.
* mkvmerge: MP4 reader: added support for reading VP9 video
from MP4 files. Part of the implementation of #2673.
* 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). Part of the implementation
of #2654.
* 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.
Implements #2674.
* MKVToolNix GUI: general: line edits & combo boxes will now
have a "clear text" button appear whenever they're not
empty. Part of the implementation of #2654.
* 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. Fixes
[#2685].
* mkvmerge: MPLS handling: re-added caching when using MPLS
playlists as input files. Fixes #2666.
* 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. Fixes #2670.
* 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. Fixes #2660.
* MKVToolNix GUI: multiplexer: the progress dialog shown when
scanning a Blu-ray wasn't closed properly in certain
situations. Fixes #2678.
* 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. Fixes #2671.
* Sat Nov 09 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 40.0.0
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.
Implements #2648.
* 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.
Implements #2651.
* 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. Implements #2646.
* 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. Fixes #2650.
* 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.
* Tue Nov 05 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 39.0.0
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. Part of the
implementation of 2486.
* 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). Implements #2644.
* 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. Part of the fix of #2642.
* MKVToolNix GUI: header editor: attachments with an empty
name element will be shown as `<unnamed>` as originally
intended. Part of the fix of #2642.
* Linux AppImage: the AppImage will no longer change
directories before running the desired executable allow the
use of relative file names. Fixes #2632.
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.
- Use system nlohmann-json
- Spec cleanup
* Sun Oct 06 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 38.0.0
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. Implements #2614.
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. Fixes #2620.
* mkvmerge: when splitting by chapters the user can now split
by chapters coming from one of the appended files, too.
Fixes #2625.
* mkvmerge: AAC reader: fixed reading codec parameters
(channels, sample rate) if a file starts with garbage that
includes valid-but-bogus AAC headers. Fixes #2622.
* MKVToolNix GUI: Hebrew was added to the list of often-used
languages so that it can be selected by default again. Fixes
[#2610].
* 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.
Fixes #2611.
Build system changes:
* Boost's Operators header library is now required.
* Mon Sep 02 2019 Ismail Dönmez <idonmez@suse.com>
- Update to version 37.0.0
New features and enchancements:
* 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.
* mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and
H.265/HEVC tracks whose pixel dimensions differ. Implements #2582.
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. Fixes #2605 and #26008.
* source code: fixed building with Boost 1.71.0. Fixes #2599.
* 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. Fixes #2601.
* 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. Fixes #2594.
* Wed Jun 26 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 35.0.0
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. Implements #869 and #2570.
Bug fixes:
* mkvmerge: the "codec name" track property wasn't copied from
Matroska files. Fixes #2566.
* MKVToolNix GUI: multiplexer: Windows: clearing the
destination file name will reset the tab name to
"\<No destination file\>" again. Fixes #2571.
* MKVToolNix GUI: multiplexer: the file types were not
re-translated if the UI language was changed. Fixes #2572.
* Fri Jun 07 2019 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 34.0.0:
* mkvmerge: bugfix: all subtitle frames are now treated as key
frames in order to fix wrong data in source files.
bugfix: AV1: fixed frame timestamp calculation when reading
bitstreams that lack timing information from IVF files.
bugfix: 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.
* Tue Apr 16 2019 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 33.1.0:
* Build with stack protection
- Update to version 33.0.0:
* mkvinfo: bugfix: when using the `--size` option, mkvinfo will
now report the correctly if an element has an unknown size.
* MKVToolNix GUI: bugfix: info tool: clusters with an unknown
size will now be read and displayed correctly.
bugfix: 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.
- Update to version 32.0.0:
* mkvinfo: new feature: when sizes are output the size of the
element's data portion is output in addition to the element's
total size.
* MKVToolNix GUI: new feature: info tool: the element's data
portion is shown as an extra column.
new feature: multiplexer: added column "Delay" to the track list
containing the additional delay to apply during multiplexing.
bugfix: 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.
bugfix: 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.
bugfix: 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.
* all: fixed handling of Unicode code points > U+FFFF.
- Update to version 31.0.0:
* all programs: New Feature: 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: New Feature: when closing files that were
opened for writing, cached data will not be flushed to storage
automatically anymore. A new option was added to both programs
(`--flush-on-close`) that re-enables flushing for people who are
affected by data loss.
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.
Bugfix: AVI reader: using DV type 1 AVIs will now result in an
unsupported file type being reported instead of crashing mkvmerge
Bugfix: 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.
Bugfix: 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.
Bugfix: 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: New Feature: multiplexer: the dialog previewing
different character sets for text subtitles will now keep the
position of the displayed text when switching between character
sets.
Bugfix: multiplexer, chapter editor: fixed drag & drop handling
with Qt 5.12.0 and newer.
Bugfix: multiplexer: the GUI did not clean up temporary files
created when running `mkvmerge`.
* Tue Mar 19 2019 plater <davejplater@gmail.com>
- Fix Factory build by changing rubygem-rake build requirement to
rubygem(rake) and adding libboost_system build dependency again,
fixes boo#1129626
* Mon Jan 14 2019 Martin Pluskal <mpluskal@suse.com>
- Drop libboost_system dependency as it is not needed
* Sat Jan 12 2019 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 30.1.0:
* MKVToolNix GUI: bugfix: 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.
- Update to version 30.0.0:
* MKVToolNix GUI: New Feature: 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.
New Feature: 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.
New Feature: The predefined split sizes and durations can now be
customized in the preferences.
New Feature: chapter editor: added an option in the "Chapter
editor" menu for appending chapters from an existing file to the
currently open editor tab.
New Feature: Added an action in the context menu for copying the
selected entry and all of its children to another open editor tab.
Bugfix: removing a file added as an "additional part" will no
longer cause a crash.
* mkvextract: New Feature: 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.
* mkvmerge: Bugfix: 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.
Bugfix: AAC: under certain conditions 8 channel audio files were
taken for 7 channel ones.
- Update to version 29.0.0:
* MKVToolNix GUI: New Feature: added an option in the preferences
for disabling automatic scaling for high DPI displays.
New Feature: The GUI will now prevent the system from going to
sleep while the job queue is running.
* mkvmerge: Bugfix: chapter generation: the start timestamps of
chapters generated in intervals was wrong for files whose
smallest video timestamp was bigger than 0.
Bugfix: MP4 reader: fixed handling of atoms whose size exceeds the
parent atom's size.
Bugfix: the chapter name template will now also be used when
reading Ogg-style chapter files with empty chapter names.
* mkvextract: Bugfix: 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: Bugfix: 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.
Version: 28.2.0-bp150.2.3.1
* Tue Oct 30 2018 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 28.2.0
* 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
(CVE-2018-4022). Fixes boo#1113709.
- Update to version 28.1.0
* mkvmerge: bugfix: 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.
bugfix: 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.
bugfix: 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: bugfix info tool: the tool will no longer stop
scanning elements when an EBML Void element is found after the
first Cluster element.
- Update to version 28.0.0
* mkvmerge: New feature: AV1 parser: updated the code for the
finalized AV1 bitstream specification.
New feature: AV1 packetizer: updated the code for the finalized
AV1-in-Matroska & WebM mapping specification.
New feature: AV1 support: the `--engage enable_av1` option has
been removed again.
New feature: MP4 reader: added support for AV1.
New feature: DTS: implemented dialog normalization gain removal
for extension substreams.
New feature: VP9: mkvmerge will now create codec private data
according to the VP9 codec mapping described in the WebM
specifications.
bugfix: JSON identification: fixed a bug when removing invalid
UTF-8 data from strings before they're output as JSON.
bugfix: MP4/QuickTime reader: fixed handling of PCM audio with
FourCC `in24`.
bugfix: 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.
* mkvmerge, mkvextract: New feature: simple text subtitles:
added a workaround for simple text subtitle tracks that don't
contain a duration.
* mkvextract: New feature: added support for extracting AV1 to IVF.
New feature: 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.
* MKVToolNix GUI: New feature: automatic scaling for high DPI
displays is activated if the GUI is compiled with Qt ? 5.6.0.
New feature: added a menu item ("Help" ? "System information") for
displaying information about the system MKVToolNix is running on
in order to make debugging easier.
New feature: 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.
* mkvextract: bugfix: 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: bugfix: 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.
* Thu Oct 18 2018 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 27.0.0:
* mkvmerge: New feature: 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.
Bugfix: 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: New feature: multiplexer: adjusted & added
controls for mkvmerge's new feature of being able to adjust
chapter timestamps.
New feature: 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.
Bugfix: fixed a leak of Windows font resources leading to a
general slowdown and subsequent crash.
- Update to version 26.0.0:
* mkvmerge: New feature: chapter generation: if the name template
given by `--generate-chapters-name-template` is empty, no names
will be generated for the chapter atoms.
New feature: chapters: chapter names generated from MPLS files
will now use the name template if one is set via
`--generate-chapters-name-template`.
New feature: 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.
Bugfix: Matroska reader: fixed wrong timestamps when appending
Matroska files where the second Matroska file's first timestamp
is bigger than 0.
Bugfix: MP4 reader: fixed division by zero errors during file
identification if the timescale is 0 in the `MVHD` atom.
Bugfix: 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: New feature: the font size in the tool
selector on the left will scale with the font size the
user selects in the preferences.
New feature: 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.
New feature: 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.
New feature: chapter editor: if the chapter name template is empty,
chapters will be generated without names.
New feature: chapter editor: added an option to remove all chapter
names to the "additional modifications" dialog.
Bugfix: info tool: under certain circumstances "cues" were shown at
the wrong level (inside the previous master element instead of on
lvel 1).
Bugfix: 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.
* Wed Aug 08 2018 rpm@fthiessen.de
- Update to 25.0.0:
* mkvextract: New feature: VobSub extraction: empty SPU packets
will now be dropped during extraction as other tools such as
MP4Box cannot handle them correctly.
Bugfix: fixed a crash when mkvextract with a non-Matroska file as
the source file.
* MKVToolNix GUI: New feature:: multiplexer: added options to only
enable tracks of certain types by default.
New feature: multiplexer: added an option to enable dialog
normalization gain removal by default for all audio tracks for
which the operation is supported.
New feature: multiplexer: when deriving track languages from the
file names is active and the file name contains the usual
season/episode pattern, then only the part after the
season/episode pattern will be used for detecting the language.
New feature: multiplexer: the regular expression used for deriving
track languages from the file names can now be customized in
the preferences.
New feature: multiplexer: the user can now customize the list of
track languages the GUI recognizes in file names. This list
defaults to a handful of common languages instead of the full
list of supported languages.
Bugfix: multiplexer: when scanning playlists, all playlists were
offered for selection regardless of the value of the "minimum
playlist duration" setting.
Bugfix: multiplexer: deriving track languages from file names:
the regular sub-expressions for ISO 639-1 codes could match
on empty strings, too, causing matches in wrong places and hence
no language being recognized in certain situations.
Bugfix: header editor: fixed a crash when saving the file fails
(e.g. because it isn't writable).
Bugfix: header editor: the editor was wrongfully claiming that
mandatory elements with default values cannot be removed in
the "status" text.
Bugfix: preferences: on macOS & Linux the setting "enable copying
tracks by their type" wasn't restored on program start.
Bugfix: the central area is now scrollable, allowing the GUI to be
resized to almost arbitrary sizes.
Bugfix: multiplexer: the "copy file title to destination file name"
functionality will now replace everything in the destination file
name up to the last period instead of only up to the first period.
* mkvmerge: New feature: 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.
New feature: 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.
New Feature: Matroska & MPEG transport stream readers: the encoding
of text subtitles read from Matroska files can now be changed
with the '--sub-charset' parameter.
New feature: MP4 reader: improved the detection of edit lists
consisting of two identical entries, each spanning the file's
duration as given in the movie header atom. The second entry is
ignored in such cases.
New feature: JSON identification: the "display unit" video track
property is now reported as `display_unit`. The JSON schema has
been bumped to v11 for this change.
New feature: AVC/h.264: empty NALUs will now be removed.
New feature: input: format detection uses file-extension to improve
performance and to give preference when several formats match.
New feature: AV1: added support for reading AV1 video from
Open Bitstream Unit files.
New feature: AV1: adjusted the code for the AV1 bitstream format
changes made up to 2018-05-02 (git revision d14e878).
New feature: MP4 reader: if a track has an edit list with two
identical entries, each spanning the file's duration as given in
the movie header atom, then the second entry will now be ignored.
Improves the handling of files with bogus data.
Bugfix: AVC/h.264 and HEVC: fixed file identification failing
for certain elementary streams due to internal buffers not
being cleared properly.
Bugfix: MLP code: fixed various issues preventing MLP from being
parsed correctly.
Bugfix: 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.
Bugfix: 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.
Bugfix: 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.
Bugfix: audio packetizers: mkvmerge will now keep discard
padding values if they're present for packets read
from Matroska files.
Bugfix: 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).
Bugfix: E-AC-3 parser: fixed determining the number of channels for
streams that contain an AC-3 core with dependent E-AC-3 frames.
Bugfix: Matroska reader: fixed mkvmerge buffering the whole file if a
video track is multiplexed that consists of only one or a few frames.
Bugfix: the "display unit" video track property will now be kept if
it is set in the source file.
Bugfix: MP3 packetizer: removed a memory leak growing linearly with the
track's size.
Bugfix: VobSub packetizer: whenever a VobSub packet doesn't contain a
duration on the container level, mkvmerge will now set it from
the duration in the SPU packets. Before it was accidentally setting
the SPU-level duration to 0 instead.
Bugfix: track statistics tags: if writing the `Date` element is
deactivated via `--no-date`, the `_STATISTICS_WRITING_DATE_UTC`
isn't written either anymore.
Bugfix: removed several small, constant-size memory leaks.
Version: 22.0.0-bp150.1.3
* Mon Apr 09 2018 rpm@fthiessen.de
- Update to 22.0.0:
* mkvmerge: New feature: AC-3, DTS, TrueHD: added an option for
removing/minimizing the dialog normalization gain for all
supported types of the mentioned codecs.
New feature: AV1: added support for reading AV1 video from IVF,
WebM and Matroska files.
New feature: FLAC: mkvmerge can now ignore ID3 tags in FLAC
files which would otherwise prevent mkvmerge from detecting the
file type.
Bugfix: MP4 reader: fixed reading the ESDS audio header atom if
it is located inside a "wave" atom inside the "stsd" atom.
Bugfix: MP4 reader: AAC audio tracks signalling eight channels
in the track headers but only seven in the codec-specific
configuration will be treated as having eight channels.
Bugfix: MPEG TS reader: fixed wrong handling of the continuity
counter for TS packets that signal that TS payload is present
but where the adaptation field spans the whole TS packet.
Bugfix: the 'document type version' and 'document type read version'
header fields are now set depending on which elements are
actually written, not on which features are active.
Bugfix: the 'document type version' header field is now set
to 4 correctly if any of the version 4 Matroska elements
is written.
* mkvinfo: New Feature: the size and positions of frames
within "SimpleBlock" and "BlockGroup" elements are now shown
the same way they're shown for other elements.
Bugfix: summary mode: the file positions reported for frames in
`BlockGroup` elements did not take the bytes used for
information such as timestamp, track number flags or lace sizes
into account. They were therefore too low.
* mkvpropedit, MKVToolNix GUI header editor: the
'document type version' and 'document type read version' header
fields are now updated if elements written by the changes require
higher version numbers.
Bugfix: mandatory elements can now be deleted if there's a default
value for them in the specifications.
* MKVToolNix GUI: multiplexer: added options for deriving the
track languages from the file name by searching for
ISO 639-1/639-2 language codes or language names enclosed in
non-word, non-space characters.
Bugfix: info tool: implemented reading all elements in the file
after the first cluster. Only top-level elements are shown;
child elements are only loaded on demand.
Bugfix: info tool: added a context menu with the option to show a
hex dump of the element with the bytes making up the EBML ID and
the size portion highlighted in different colors.
In-depth highlighting is done for the data in `SimpleBlock`
and `Block` elements.
Bugfix: chapter editor: added an option to remove all end
timestamps to the "additional modifications" dialog.
- Update to 21.0.0:
* mkvinfo: the GUI portion has been removed. mkvinfo is now a pure
command-line program again.
* mkvmerge: New feature: track statistics tags: the `TagDefault`
element will not be written anymore as it was always set to the
default value `1` anyway.
New feature: JSON files can now contain C++-style line comments
outside of strings. Such comments, even though not part of the
official JSON specifications, are now ignored when reading JSON
files.
Bugfix: Appending files with additional parts at the same time
was broken if more than one additional part was appended.
Bugfix: FLV reader: a single invalid AAC frame was written for
AAC audio tracks with codec initialization data longer than five
bytes.
Bugfix: FLV reader: timestamps will be normalized down to 0.
Bugfix: MP4 reader: if an AAC track doesn't contain an
AAC-specific decoder configuration in the ESDS portion,
then a default decoder configuration will be generated based on
the track's header data instead of skipping the track.
Bugfix: MP4 reader: fixed reading HEVC/h.265 video tracks if
they're stored as Annex B byte streams inside MP4.
Bugfix: Ogg Opus reader: mkvmerge will now emit a warning
instead of aborting when it encounters an Ogg Opus page with
no data in the packet.
Bugfix: Matroska parser: fixed a segmentation fault that
occurred whenever the first level 1 element after resyncing
after an error in the file structure isn't a cluster.
Bugfix: fixed a crash during file type detection for
attachments if MKVToolNix is installed in a path with
non-ASCII characters (e.g. German Umlauts).
* MKVToolNix GUI: New Feature: chapter editor: opening a
Matroska file without chapters in it will now open the file
in an empty chapter editor instead of showing an error message.
New Feature: an "info" tool has been added, replacing the
functionality of mkvinfo's GUI. The functionality is not on
par yet but will be for release v22.
Bugfix: MKVToolNix GUI: Bugfix: multiplexer: the subtitle
character set can now be set for appended subtitle files, too.
Bugfix: MKVToolNix GUI: multiplexer: when appending, all tracks
appended to disabled tracks will start out disabled, too.
* mkvinfo: the `--hex-positions` parameter did nothing in summary mode.
Bugfix: mkvinfo: Windows: line endings will be written as `\r\n`
again instead of just `\n`.
* mkvpropedit: Bugfix: adding track statistics tags: for tracks
with content encoding (compression) mkvpropedit is now
accounting the uncompressed number of bytes, not the encoded
(compressed) number of bytes.
* Sun Jan 21 2018 rpm@fthiessen.de
- Update to 20.0.0:
* Feature removal: several deprecated features have been removed:
mkvmerge: the deprecated options `--identify-verbose`,
`--identify-for-gui`, `--identify-for-mmg` and
`--identification-format verbose-text`
all command line tools: support for the deprecated, old,
proprietary format used for option files
all command line tools: support for passing command line
options via the deprecated environment variables
`MKVTOOLNIX_OPTIONS`, `MKVEXTRACT_OPTIONS`, `MKVINFO_OPTIONS`,
`MKVMERGE_OPTIONS` and `MKVPROPEDIT_OPTIONS`
* mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter
NALUs will now be removed.
bugfix: AVC/h.264 parser: when fixing the bitstream timing
information mkvmerge will now use exact representations of
the desired field duration if possible.
bugfix: AVC/h.264 parser: mkvmerge no longer assumes that
encountering sequence parameter set or picture parameter set
NALUs signal the start of a new frame.
bugfix: AVC/h.264 packetizer (framed): when mkvmerge is told
to fix the bitstream timing information, it will now update
all SPS NALUs, not just the ones in the AVCC.
bugfix: MPEG TS reader: TS packet payloads will only be
treated as PES packets if the payload actually starts with
a PES start code. The prior behavior led to wrong timestamps
and potentially broken frame data.
bugfix: MPEG TS reader: mkvmerge will now drop incomplete PES
packets as soon as an error is detected in the transport
stream instead of passing the incomplete frame to the
packetizer. An error is assumed either if the
`transport_error_indicator` flag is set or if the value of
the `continuity_counter` header field doesn't match the
expected value.
bugfix: Opus: when re-muxing Opus from Matroska mkvmerge will
now write "block duration" elements for all block groups
where a "discard padding" is set, too.
bugfix: SRT reader: mkvmerge can now handle SRT files with
timestamps without decimal places.
bugfix: read buffer I/O class: the class could get out of sync
regarding the file position of the underlying file I/O class
causing wrong data to be returned on subsequent read
operations. One result was that trying to identifying MPLS
files that refer to very short M2TS files caused mkvmerge
to segfault.
bugfix: multiplexer core: if there's a gap in audio timestamps,
a new block group/lace will be started for the first frame
after each gap. Before the fix the frame after the gap was
often stored in the previous block group causing the gap to
be in the wrong place: at the end of that block group.
* mkvextract: bugfix: AVC/h.264: if two consecutive IDR frames
with the same `idr_pic_id` parameter and no access unit
delimiters are found between them, mkvextract will insert an
access unit delimiter in order to signal the start of a new
access unit.
* MKVToolNix GUI: bugfix: update check dialog: Markdown links will
now be converted to clickable links.
* Mon Dec 25 2017 jengelh@inai.de
- Update to new upstream release 19.0.0
* mkvmerge: splitting by duration, by timestamps or by
timestamp-based parts: mkvmerge will now consider the first
key frame within 1ms of the requested value to be eligible
for splitting.
* mkvmerge: fixed reading text files encoded in UTF-16 order
UTF-32 that have different forms of line endings (new lines,
carriage returns or a mix of both).
* MKVToolNix GUI: multiplexer: once a "subtitle/chapter
character set" was set for a track it couldn't be changed
back to the empty entry (= auto-detection) anymore.
* Tue Dec 12 2017 rpm@fthiessen.de
-Update to 18.0.0:
* mkvmerge: bugfix: AAC ADTS parser: fixed interpretation of the
`channel_configuration` header element for ADTS files that do
not contain a program configuration element: value 7 means
7.1 channels.
bugfix: Matroska identification: the `date_local` and
`date_utc` attributes will only be output if the identified
Matroska file actually contains the "date" header field.
bugfix: WebVTT: mkvmerge did not recognize timestamp lines if
the hours components were absent.
enhancement: AVC & HEVC ES parsers: performance improvements
by copying much less memory around.
enhancement: tags: reintroduced a workaround for non-compliant
files with tags that do not contain the mandatory `SimpleTag`
element. This workaround was removed during code refactoring
in release v15.0.0.
* mkvpropedit: bugfix: GUI's header editor: the `date` header
field won't be added automatically anymore whenever the
segment info section is edited and the `date` element is
either deleted or not present in the first place.
* GUI: multiplexer: the "AAC is SBR/HE-AAC/AAC+" checkbox in
the "audio properties" section will be disabled if the
functionality is not implemented for the selected track's
codec & container.
enhancement: multiplexer: the "reduce to core" checkbox in
the "audio properties" section will be disabled if the
functionality is not implemented for the selected track's
codec.
* Wed Nov 08 2017 rpm@fthiessen.de
- Update to 17.0.0:
* The word "timecode" has been changed to "timestamp" everywhere.
This affects program output (including mkvinfo's), GUI controls,
command line parameters (e.g. `mkvmerge --timestamp-scale ?`) and
file formats.
All programs remain backwards compatible insofar as they still
accept "timecode" in all those places.
* mkvextract's command line interface has been changed to allow
extraction of multiple items at the same time.
* mkvmerge: New feature: AC-3: during identification regular AC-3
and E-AC-3 tracks will now be identified differently for most
container formats (exception: AVI, Real Media, Ogg/OGM).
The codec will be reported as `AC-3` for regular AC-3 and as
`E-AC-3` for E-AC-3 tracks instead of the combined `AC-3/E-AC-3`.
bugfix: AAC ADTS parser: mkvmerge will now parse the
`program_config_element` if it is located at the start of an AAC
frame in order to determine the actual number of channels.
This overrides invalid channel configurations in the ADTS headers.
bugfix: fixed AC-3 being misdetected as encrypted MPEG program
streams under certain conditions.
bugfix: Dirac: under certain conditions (e.g. only muxing a single
Dirac track without any other tracks) mkvmerge was always setting
the pixel width & height to 123. The frame rate was wrong, too.
bugfix: E-AC-3 in Matroska: if AC-3 cores and their corresponding
E-AC-3 extension are located in two different Matroska blocks,
then mkvmerge will now re-assemble them into a single block and
only use the first block's timestamp.
bugfix: SRT reader: fixed calculating the duration of entries
starting with at a negative timestamp.
bugfix: VC-1: under certain conditions (e.g. only muxing a single
VC-1 track without any other tracks) mkvmerge was always setting
the pixel width & height to 123. The frame rate was wrong, too.
bugfix: command line options: an error message will be output if
the single-value-form of the `--sync` option is used and it
isn't a number (e.g. `--sync 0:asd`).
* mkvpropedit, GUI's header editor: bugfix: both programs will now
show proper error messages instead of crashing when certain
kinds of data corruption is found when reading a file.
- Update to 16.0.0:
* mkvmerge: New feature MP4 reader: added support for Vorbis.
bugfix: AAC reader: mkvmerge will now emit an error message for
AAC files whose header fields imply a sampling frequency
or number of channels of 0.
bugfix: AVC/h.264 ES parser: fixed the calculation of reference
information for P and B frames. This also fixes some P frames
being marked as B frames and vice versa.
bugfix: AVC/h.264 ES parser: only non-key frames that have the
NALU header field `nal_ref_idc` set to 0 will be marked as
"discardable" in `SimpleBlock` elements. Other half of the
fix for #2047.
bugfix: HEVC/h.265: the generation of the HEVCC structure
stored in `CodecPrivate` was wrong in two places:
1. the position of the number of sub-layers was swapped with
reserved bits and 2. the VPS/SPS/PPS/SEI lists did not start
with a reserved 1 bit.
bugfix: output: the `doc type version` will be set at least
to 2 if certain elements are written (`CodecState`,
`CueCodecState`, `FlagInterlaced`).
bugfix: output: the track header attributes `MinCache` and
`MaxCache` will not be written anymore.
bugfix: Matroska reader: the "key" and "discardable" flags of
SimpleBlock elements will be kept as they are.
bugfix: Matroska reader: if present in the file,
the "white colour coordinate x" track header attribute was
written to both "white colour coordinate x" and
"white colour coordinate y" in the output file.
bugfix: Opus output: mkvmerge will now put all frames with
discard padding into their own block group.
* MKVToolNix GUI: Bugfix: header editor: removed the check for
external modification when saving the file.
bugfix: job queue: fixed calculation of total progress when
automatic removal of completed is enabled.
* Thu Aug 31 2017 rpm@fthiessen.de
- Update to 15.0.0:
* Requires libebml >= 1.3.5
* Dropped disable-update-check.patch (upstream now provides
configure option for disabling the update check).
* mkvmerge, mkvpropedit, GUI's header and chapter editors: the
programs will no longer add most missing Matroska elements that
are mandatory but have a default value in the Matroska
specification (e.g. the `TagLanguage` element with a value of
`und` if it isn't present in its `SimpleTag` parent).
* mkvmerge: the option `--colour-matrix` has been renamed to
`--colour-matrix-coefficients` in order to match the
specification more closely. The old option name will
continue to be recognized as well.
* all: bugfix: selecting the program's language (e.g. via the
`--ui-language`command-line option or via the GUI's
preferences) did not work on Linux & Unix if the `LANGUAGE`
environment variable was set and didn't include the desired
language.
* MKVToolNix GUI: new feature: multiplex tool: added a new entry
to the "source files" context menu labeled "Set destination
file name from selected file's name". It will force the GUI
to consider the selected file to be the reference for
automatically setting the file name, no matter which file was
originally added as the first file. It will also force setting
the destination file name once if automatic destination file
name generation is turned off in the preferences.
new feature: multiplex tool: added an option in the preferences
on "Multiplexer" ? "Output" labeled "Only use the first source
file that contains a video track". If enabled, only source
files containing video tracks will be used for setting the
destination file name. Other files that are added are ignore.
new feature: header editor: added support for editing the video
colour attributes.
new feature: header editor: added support for the "video
projection" track header attributes.
new feature: job queue: selected jobs can now be move up and
down by pressing the `Ctrl+Up` and `Ctrl+Down` keys.
Additionally, push buttons to move them up & down are shown
if the corresponding option is enabled in the preferences.
bugfix: removed the keyboard shortcuts for switching between
the different tools (e.g. `Ctrl+Alt+1` for the multiplexer).
They overlapped with basic functionality on keyboards that
use an `AltGr` key, e.g. German ones, where `AltGr+7` emits
`{`. As `AltGr+key` is implemented as `Ctrl+Alt+key` under the
hood, this means that `AltGr+7` is really `Ctrl+Alt+7` which
the GUI now took to mean "switch to the job queue" instead of
"insert `{`".
bugfix: header editor: after saving the file the GUI wasn't
updating its internal file modification timestamp. That lead
to the GUI wrongfully claiming that the file had been
modified externally when the user wanted to save the file
once more, requiring a reload of the file losing all
modifications made since saving the first time.
* mkvmerge: new feature: added support for the
"video projection" track header attributes.
bugfix: DTS handling: some source files provide timestamps for
audio tracks only once every `n` audio frames.
In such situations mkvmerge was buffering too much data
resulting in a single gap in the timestamps of one frame
duration after frame number `n - 1` (the second audio
timestamp read from the source file was used one output
frame too early).
* mkvinfo: new feature: added support for the
"video projection" track header attributes.
bugfix: fixed a null pointer dereference if an `EbmlBinary`
element's data pointer is a null pointer.
* mkvpropedit: new feature: added support for editing the
video colour attributes.
new feature: added support for the "video projection"
track header attributes.
* Fri Aug 25 2017 rpm@fthiessen.de
- Split boost-devel BuildRequires for Tumbleweed
- Update to version 14.0.0
* mkvmerge, mkvpropedit, MKVToolNix GUI (chapter editor):
new feature: added support for chapters in WebM files that is
spec-compliant by removing all tag elements not supported
by the WebM spec.
* translations: added a Romanian translation of the programs.
* mkvmerge: bugfix: AVC/h.264 and HEVC/h.265 parser: fixed wrong
frame order & timestamp calculation in certain situations when
SPS (sequence parameter sets) or PPS (picture parameter sets)
change mid-stream.
bugfix: MPEG-1/-2 video: the "remove stuffing bytes" feature
introduced in v5.8.0 was broken. In a lot of situations it
did not detect the end of a slice correctly and removed 0 bytes
that were actually part of the slice structure. Often there
were no visual problems as decoders were able to ignore such
errors, but in other cases there are visual artifacts upon
decoding. As detecting the slice end properly requires parsing
the whole slice structure, this feature has been removed again.
bugfix: MPEG PS reader: fixed mkvmerge trying to handle an "end"
code the same way as a "program stream map" code.
bugfix: MPEG TS reader: mkvmerge won't emit warnings if the
system's `iconv` library doesn't support the ISO 6937
character set.
bugfix: when appending fails the error message details (e.g.
"the number of channels differs: 1 and 2") were often not output.
new feature: AAC: implemented support for AAC with 960 samples per
frame.
new feature: identification: if the encoding/character set of a
text subtitle track is known (e.g. because a byte order mark is
present in the file), then it will be output during
identification as the `encoding` property.
new feature: WAV reader: added support for Wave64 files.
* MKVToolNix GUI: bugfix: multiplex tool: implemented a workaround
for a crash that could occur during drag & drop if at least one
of the columns is hidden.
bugifx: multiplex tool: appended tracks can no longer be enabled
(selected for multiplexing) if the track they're going to be
appended to is not enabled.
bugifx: multiplex tool: if the GUI is set to ensure unique output
file names, it will now verify that right before starting to
multiplex/adding the job to the queue, too.
bugifx: fixed the total progress reverting to 0% instead of
staying at 100% when all jobs have finished. This was introduced
by the attempt at fixing the computation of the value of total
progress bar for multiple jobs running.
new feature: multiplexer: if the encoding/character set of a
subtitle track cannot be changed, the GUI will deactivate the
"subtitle character set" drop-down box and ignore changes to it
when multiple tracks are selected. Additionally, if the track's
encoding is known and cannot be changed (e.g. due to a
byte order mark in the file), that encoding will be selected in
the drop-down box automatically. Both changes signal to the user
that she doesn't have to take care of the encoding herself.
new feature: chapter editor: added a function to the "additional
modifications" dialog for calculating and setting the end
timestamps.
new feature: changed the shortcuts for switching between the
various tools from `Alt+number` (e.g. `Alt+1` for the multiplexer
tool) to `Ctrl+Alt+number` in order to avoid clashing with
Windows' input method for arbitrary characters (pressing and
holding `Alt` and typing the codepoint on the number pad).
new feature: added a "Window" menu and entries with shortcuts for
selecting the next (`Ctrl+F6`) respectively previous tab
(`Ctrl+Shift+F6`) in the current tool.
* Thu Jul 13 2017 rpm@fthiessen.de
- Update to version 13.0.0
* mkvmerge: new feature: MPEG TS reader: information about
multiple programs will be output as container properties during
verbose/JSON identification.
bugfix: MP4 reader: MPEG-1/2 video read from MP4 files was written
with an invalid codec ID (e.g. `V_MPEG7`) in certain cases.
bugfix: MPEG PS reader: made the file type detection less strict
so that garbage at the start of the file doesn't prevent detection.
bugfix: MPEG PS reader: (E-)AC-3 tracks were not detected if the very
first packet for that track didn't contain a full (E-)AC-3 frame.
bugfix: MPEG TS reader: fixed mkvmerge not detecting all tracks in
MPEG transport streams containing multiple programs.
bugfix: MPEG TS reader: fixed track content being broken for some
tracks read from MPEG transport streams containing multiple programs.
bugfix: JSON identification: the `stream_id` and `sub_stream_id`
track properties were output as hexadecimal strings instead
of unsigned integers. As the `ts_pid` track property was only
used for MPEG transport streams, its value is now output as
`stream_id` instead, and the `ts_pid` property has been removed.
The JSON schema version has been bumped to 8 due to this change.
bugfix: fixed a crash when appending video tracks where one track
has a CodecPrivate member and the other one doesn't.
bugfix: track statistics tags: the `NUMBER_OF_BYTES` tag
is supposed to contain the number of bytes in a track before any
of the content encoding schemes such as lossless compression
is applied; however, mkvmerge was wrongfully using the number of
bytes after the schemes had been applied.
bugfix: CLPI & MPLS parsers: MPLS and CLPI files with version
number `0300` as used on Ultra HD Blu-ray Discs are
now accepted as well.
* MKVToolNix GUI: new feature: multiplex tool: added a column
"program" to the tracks list. Certain container types such
as MPEG transport streams can contain multiple programs.
The new column will contain the service name (think TV station
names such as "arte HD") for such streams.
bugfix: fixed computation of value of total progress bar for
multiple jobs running.
bugfix: multiplexer, adding new attachments: when the GUI checks
if there's an attachment with the same name it will now
disregard disabled attached files.
new feature: multiplex tool: the dialog asking the user what to
do with dropped files (add to current settings, add to new
settings etc.) now remembers the previous decision and defaults
to it the next time it's shown.
new feature: tabs can now be closed by pressing the middle mouse
button.
* mkvpropedit: bugfix: fixed a crash when the selector used
for `--tags` is invalid.
* Tue Jun 06 2017 olaf@aepfle.de
- Adjust usage of gccN-c++ for Leap42 and SLE12
* Tue May 30 2017 rpm@fthiessen.de
- Update to version 12.0.0
* MKVToolNix GUI: new feature: the key combination
Ctrl+Shift+Space will now toggle the selection of the current
item in all tree views where multiple selections are allowed.
new feature: chapter editor: added the extension `*.cue`
to the "open chapter file" dialog.
bugfix:preferences ? job actions, type "play audio file":
the GUI will no longer clear the audio file name input if the
user aborts the audio file selection dialog.
bugfix: multiplexer tool: the "show command line" dialog will no
longer include the mkvmerge executable's location as the first
argument for the two "MKVToolNix option files" escape modes.
bugfix: header editor: empty track language elements are now
treated the same as those set to invalid ISO 639-2 codes:
as if they were set to `und` = "undetermined".
new feature: watch jobs: the user can now have the GUI execute
an action once as soon as the current job or the whole queue
finishes. The actions are the same ones that can be configured
to be run automatically after job or queue completion.
new feature: implemented several built-in actions that can be
executed either on special events or once via the "watch jobs"
tool. These are: playing an audio file; hibernating, sleeping
and shutting down the computer.
new feature: multiplex tool: added a new option for what to do
after starting to multiplex/adding to the job queue:
"close current settings" will close the current multiplex
settings without opening new ones.
* mkvmerge: New feature: cue sheet parser: if the cue sheet
contains a non-empty `TITLE` entry and if no other segment title
has been set yet, then the segment title will be set to the
cue sheet's `TITLE` value.
new feature: added an option `--no-date` that prevents the "date"
field from being written to the segment information headers.
new feature: FLAC reader: added support for handling embedded
pictures as attachments.
new feature: MP4 reader: Added support for parsing the "COLR"
atom and including its values as track headers.
bugfix: HEVC/h.265 parser: fixed the superfluous copying of the
'bitstream_restriction_flag' and its dependent flags in the
VUI parameters of the sequence parameter sets if the timing
information is present, too.
bugfix: MPEG TS reader, AAC parser: the MPEG TS reader will now
force the AAC parser to use the multiplex mode that the MPEG TS
reader has detected. This prevents the AAC packetizer from
mis-detecting it in its own attempt to identify the mode.
bugfix: MPEG TS reader: valid MPEG transport streams that start
with an h.264/h.265 start code were not recognized as a
supported file type.
bugfix: MPEG TS reader: fixed a potential read access from
invalid memory addresses in the code parsing the program
map table (PMT).
bugfix: MPEG TS reader: if packets are encountered that belong
to a PID not listed in the program map table (PMT), mkvmerge
will attempt to determine their type and codec from the content.
This supported content types are AAC (ADTS only) and AC-3.
bugfix: MP4 reader: fixed finding and parsing the `colr` atom if
there are more than one video extension atoms and the `colr` atom
is not the first one.
bugfix: MP4 reader: the `nclx` colour type of the `colr` atom is
now recognized, too.
bugfix: AAC parser: fixed mis-detection of certain data as valid
ADTS AAC headers resulting in memory allocation failures.
bugfix: AVC/h.264 parser: mkvmerge will now ignore bogus timing
information in the sequence parameter sets.
bugfix: AVC/h.264 & HEVC/h.265 parsers: all trailing zero bytes
will now be removed from NALUs.
bugfix: HEVC/h.265 parser: fixed copying the
`bitstream_restriction_flag` and all dependent fields in the VUI
parameters of the sequence parameter sets.
bugfix: HEVC/h.265 parser: fixed the calculation of the number of
parameter set arrays in the HEVCC data structure stored in
CodecPrivate.
* mkvpropedit: bugfix: header editor: added support for editing the
"date" segment information field.
* Tue Mar 28 2017 rpm@fthiessen.de
- Update to new release 10.0.0
* mkvmerge: new feature AVC/h.264 and HEVC/h.265 parser: mkvmerge
will now drop all frames before the first key frame as they
cannot be decoded properly anyway.
new feature HEVC/h.265 parser: added a workaround for invalid
values for the "default display window" in the VUI parameters
of sequence parameter sets.
bugfix MP4 reader: fixed track offsets being wrong in certain
situations regarding the presence or absence of edit lists
('elst' atoms) & composition timestamps ('ctts' atoms).
bugfix MP4 reader: offsets in "ctts" are now always treated
as signed integers, even with version 0 atoms.
bugfix Matroska reader: fixed handling BlockGroups and
SimpleBlocks with negative timestamps.
bugfix MP3 packetizer: the MP3 packetizer will no longer drop
timestamps from source containers if they go backwards.
This keeps A/V in sync for files where the source was in sync
even though their timestamps aren't monotonic increasing.
bugfix AVC/h.264 parser: mkvmerge will now drop timestamps
from the source container if no frame is emitted for that
timestamp.
bugfix HEVC/h.265 parser: mkvmerge will now drop timestamps
from the source container if no frame is emitted for that
timestamp.
* mkvinfo: the timestamps of SimpleBlocks with negative
timestamps are now shown correctly.
* mkvextract: SSA/ASS: fixed extraction when the "Format"
line in the "[Events]" section contains less fields than the
default for SSA/ASS would indicate.
* Mon Feb 20 2017 rpm@fthiessen.de
- Update to new release 9.9.0
* mkvmerge: AC-3 handling: some source files provide timestamps
for audio tracks only once every n audio frames. In such
situations mkvmerge was buffering too much data resulting in
a single gap in the timestamps of one frame duration after frame
number n - 1 (the second audio timestamp read from the source
file was used one output frame too early).
bugfix MP4 reader: mkvmerge was only reading a small part of MP4
DASH files where the first "moov" "mdat" atoms occur before the
first "moof" atom.
bugfix MP4 reader: edit list ("edts" atoms) that are part of the
"moof" atoms used in MP4 DASH files weren't parsed. Instead the
edit lists from the main track headers inside the "moov" atom
were used.
bugfix MP4 reader: when an MP4 DASH file contained both normal
chunk offset table in their regular "moov" atoms, a
sample-to-chunk table ("stsc" atom) whose last entry had a
"samples per chunk" count greater than 1 and DASH "trun" atoms,
then mkvmerge was calculating wrong positions the frame content.
bugfix MP4 reader: mkvmerge couldn't deal with the key frame index
table having duplicate entries. The result was that only key
frames up to and including the first duplicate entry were marked
as key frames in the output file. All other frames weren't, even
though some of them were referenced from the key frame table
after the first duplicate entry.
bufix MP4 reader: when an MP4 file contained more than one copy of
the "moov" atom (the track headers etc.), mkvmerge was parsing
them all adding tracks multiple times.
bugfix MP4 reader: fixed an integer overflow during the timestamp
calculation leading to files with wrong timestamps. Such files
could not be played back properly by most players.
bugfix MPEG TS reader: if the PMT lists a DVBSUB track, mkvmerge
will now recognize it without having to find a packet for it
within the probed range.
bugfix splitting by parts (both the "timestamps" and the "frames"
variants): fixed the calculation of track statistics tags. When
calculating the duration the skipped portions weren't taken into
account leading to a too-high duration. As a consequence the BPS
tag (bits per second) was wrong, too.
bugfix reading files with DVB/HDMV TextSV subtitle tracks with
invalid CodecPrivate caused mkvmerge to abort with an error
from boost::format about the format string not having enough
arguments.
bugfix: fixed misdetection of certain AC-3 files as MP3 files
which led to an error message that
"the demultiplexer could not be initialized".
bugfix: fixed huge memory consumption when appending big Matroska
files with sparse tracks (e.g. forced subtitle tracks).
The Matroska reader will now queue at most 128 MB of data.
bugfix MP4 reader: the timestamps of all multiplexed tracks will
now be 0-based properly.
bugfix MP4 reader: the DTS-to-PTS offsets given by the "ctts"
atoms are now applied for all tracks containing a "ctts" atom,
not just h.264 & h.265 tracks.
* Some new features and enhancements
- Now required for man pages:
libxslt-tools, docbook-xsl-stylesheets and po4a
* Fri Jan 27 2017 rpm@fthiessen.de
- Update to new release 9.8.0
* mkvmerge: MP4 reader: when an MP4 file contained fewer entries
for timestamps than frames (which they never should), mkvmerge
would use 0 as the timestamp for all the other frames. This
resulted in effects such as the last frame of an output file
having a timestamp of 0 and in split files having a much longer
duration than they should have. Fixes #1847.
bug fix: the MPEG transport stream reader was using an outdated
format for the "CodecPrivate" element for HDMV TextST subtitles.
This has been updated to the current format which only contains
the "dialog style element". Existing Matroska files using this
outdated scheme can be fixed by running them through mkvmerge.
bug fix: files smaller than 4 bytes were wrongly identified as
MPEG transport streams.
bug fix: if a codec delay is set for a track in the input file,
it is kept. Fixes #1849. bug fix: fixed that the error message
"not enough space on disk" was shown twice on some operating systems.
teletext subtitle bug fix: fixed the handling of DVB teletext subtitles
signaled with data unit ID 0x02 and that contain pages from multiple magazines.
bug fix: when using --track-order without specifying all tracks,
the track numbers could end up in a way the user did not expect.
Now mkvmerge will always assign track numbers for those tracks
that are listed in --track-order first. The other tracks are
assigned numbers afterwards. Fixes the second part of #1832.
bug fix: when reading Matroska files the movie title was always
taken from the first Matroska source file, even if that file
didn't have a title set. Fixes one part of #1832.
MP4: fixed detection of MP3 audio when the object type ID in the
ESDS signals MP2 and the track headers have invalid values for
number of channels or sampling frequency. Fixes #1844.
The command line option "--check-for-updates" has been removed.
* GUI: the cache cleanup process that's run automatically when
the GUI starts no longer blocks file identification until it
is finished. Additionally the process will only be run once
per release of MKVToolNix. Fixes #1860.
certain failures during file identification that can be
traced to broken installations won't be stored in the cache
anymore. Without this fix the GUI would still use the cached
failed identification result even though the underlying
might have already been fixed.
multiplexer: changing default values in the preferences (e.g. the
default track language to set) did not affect files whose
identification results had already been cached.
multiplex tool bug fix: under certain circumstances the GUI was
creating invalid JSON files when starting to multiplex resulting
in an error message ("JSON option files must contain a JSON
array consisting solely of JSON strings").
re-worked the startup code not to use lock files when trying to
open a socket for communicating with an already-running instance.
This aims to prevent situations with stale lock files not being
cleaned up and the GUI not starting anymore as a result.
This might fix or prevent issues like #1805.
* A lot of new features and enhancements, please refer to NEWS.md
- Rebased disable-update-check.patch
- spec file cleanup
- Adjusted BuildRequires
* Since 9.7.1 QT >= 5.3 is required
* Since 9.7.1 a c++ compiler with some c++14 features is required
e.g. gcc >= 4.9 or clang >= 3.4
* Wed Nov 30 2016 rpm@fthiessen.de
- Update to new release 9.6.0
* mkvmerge: bug fix: mkvmerge was entering endless loops under
certain conditions when appending files.
MPLS parser bug fix: fixed reading the "in" & "out"
timestamps for "play items". This bug resulted in mkvmerge
not reading the correct range from the referenced M2TS file
under certain rare circumstances.
* MKVToolNix GUI: job output tool bug fix: the button for
acknowledging warnings & errors wasn't properly disabled when
the user used outside methods of acknowledging them
* mkvextract: VobSub bug fix: mkvextract will add a "langidx"
line to the .idx file upon extraction.
* mkvmerge & mkvextract: added support for HDMV TextST subtitles.
* Thu Oct 27 2016 rpm@fthiessen.de
- Update to new release 9.5.0
* mkvmerge: bug fix: The Ogg/OGM reader did not recognize Opus
files with comment headers anymore.
WAV reader bug fix: the track properties (channels, samplerate)
for DTS and AC-3 in WAV will now be derived from the decoded
bitstream headers instead of the WAV file header as the latter
is often incorrect.
WAV reader bug fix: fixed detection and merging of DTS in WAV
that uses the 14-bytes-in-16-bytes packing method.
MPEG transport stream reader bug fix: fixed mis-detection of
certain h.264 files as MPEG transport streams.
MPEG transport stream reader bug fix: fixed the handling of
Blu-ray PCM audio with an odd number of channels by removing
their alignment bytes.
h.264 elementary stream handling bug fix: if mkvmerge ever
encounters changing SPS or PPS NALUs (ones where their ID has
been encountered before with different settings) in the h.264
then it will prepend all following key frames with all
currently active SPS and PPS NALUs. This enables playback from
arbitrary key frames even if they require other SPS or PPS
settings than the ones stored in the AVCC in CodecPrivate.
VobSub handling bug fix: mkvmerge and mkvextract will now
update the duration stored in the SPU bitsream with the
duration from the container level if it differs at least 1ms.
* mkvprpedit, MKVToolNix GUI: Added support for "field order"
video track header element.
- Use GPG signature for verification.
* Fri Sep 16 2016 rpm@fthiessen.de
- Update to new release 9.4.2:
* mkvmerge: bug fix: using very large --sync values with certain
container formats was causing mkvmerge to abort muxing.
bug fix: fixed an invalid memory access (use after free)
during global destruction phase.
bug fix: HEVC parser: fixed three invalid memory accesses.
bug fix: MP4 reader: fixed an invalid memory access
bug fix: AAC reader: fixed mkvmerge throwing an uncaught
exception due to the sample rate being 0.
bug fix: MP4 reader: an error message will be printed
instead of an uncaught exception when an invalid atom chunk
size is encountered during resync.
bug fix: AVC & HEVC readers: the readers will now refuse to
handle files where the detected pixel width or height is
equal to or less than 0.
* Thu Sep 01 2016 rpm@fthiessen.de
- Update to new upstream release 9.4.0:
* MKVToolNix GUI: merge tool bug fix: the automatic adjustments
to the output file name based on the track types selected for
muxing and the mechanism for keeping output file names unique
had been broken since release v9.3.0.
chapter editor bug fix: overly long chapter names don't cause
the GUI's window to become overly wide anymore.
* mkvmerge: bug fix: mkvmerge does no longer emit a warning if no
comment header packet is found when reading tracks from
Ogg/OGM files.
bug fix: VP8 in Ogg: fixed dropping the first frame and the
timestamp calculation.
bug fix: when appending files mkvmerge wasn't starting clusters
on video key frame anymore for the first and all following
appended files.
DTS bug fix: if present mkvmerge will use an XLL extension's
sample rate information as the sample rate to put into
the track headers.
* mkvpropedit: bug fix: mkvpropedit will no longer say that it's
writing the changes if only attachment changes are specified
and none of the specified attachments can be found.
* Some enhancements, please refer to the changelog within the
package.
* Fri Jul 15 2016 rpm@fthiessen.de
- Update to new upstream release 9.3.1:
* libebml >= 1.3.4 and libmatroska >= 1.4.5 are now required
* A lot of bugfixes and new features, new mkv elements are
supported, for a list of all changes, please refer to the
changelog provided by the package.
* Tue May 31 2016 rpm@fthiessen.de
- Update to new upstream release 9.2.0:
* mkvmerge: bug fix: the "interval" chapter generation mode was
always creating one chapter too many.
bug fix: if a certain number of chapters had been generated with
- -generate-chapters then mkvmerge wasn't replacing the void
placerholder with the actual chapters.
bug fix: fixed detection of (E-)AC-3 in MPEG TS files with
unusual stream types (e.g. 0x87) but with (E-)AC-3 PMT
descriptors.
* mkvmerge, mkvextract: bug fix: fixed handling of Big Endian PCM
with a bit depth other than 16, 32 or 64 bits/sample. Other
formats were using the Little Endian codec ID, but their content
was actually not byte-swapped to match it. Now those other bit
depths are byte-swapped to Little Endian, too.
* MKVToolNix GUI: merge tool bug fix: the track column "default
track in output" wasn't taking into account if the track had its
"default track" flag set to "no" in the source file. This would
result in the column showing "yes" in certain situations even
though mkvmerge would assign "no".
* Some other improvements, some enhancements and other bugfixes,
please refer to the changelog file provides with the package.
* Mon Apr 25 2016 rpm@fthiessen.de
- Update to new upstream release 9.1.0:
* mkvmerge: bug fix: AVC/h.264: fixed handling of interlaced frames
with bottom field first.
bug fix: mkvmerge will no longer abort reading a Matroska file
with a structural error right before the first cluster.
bug fix: the "text_subtitles" property of the JSON/verbose
identification modes was always set to true for all subtitle
tracks, even for those that aren't text subtitles (VobSub, PG).
bug fix: the language code signaled in the MPEG TS PMT is taken
into account when selecting the character encoding to use
during decoding of the teletext subtitles, not just the
"national character set" stored in the teletext page headers.
* MKVToolNix GUI: bug fix: Fixed huge memory consumption in the
JSON library by updating said JSON library.
bug fix: In merge-tool: when adding playlists the GUI won't ask
the user whether or not to scan if there's only a single
playlist in that directory.