# Version 79.0 "Funeral Pyres" 2023-08-20
## 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. Patch by Angela Schmid.
* 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. Implements #3586.
* MKVToolNix GUI: multiplexer: added the option `--stop-after-video-ends` to
the dialog for additional command line options. Implements #3594.
* 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). Implements #3597.
* 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. Fixes #3602.
* 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. Fixes #3581.
* MKVToolNix GUI: macOS: when you install the application from the DMG it'll
no longer register itself as an alternate handler for its supported file
types. It seems like this overrode existing associations, forcing people to
change them manually to whatever they wanted them to be. Additionally this
forced the associated file to always be shown with an MKVToolNix icon. The
GUI's own `.mtxcfg` files will still be registered. Fixes #3588.
# Version 78.0 "Running" 2023-07-02
## 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. See #3557.
* AppImage: the AppImage is now built on AlmaLinux 8 with Qt 6.5.1. This means
that the minimum glibc version this AppImage is compatible with has also
been bumped, to v2.28. The oldest Debian coming with this version is Debian
10 "Buster"; for Ubuntu it's 18.10 "Cosmic Cuttlefish".
* Windows installer: the installer will now remove the file
`data\portable-app` if it's present in the installation directory as its
presence would signal to the app to run in portable mode, requiring write
access to its base directory. This fixes some installation issues that could
occur when a user extracted a portable app archive into a folder like
`C:\Program Files\MKVToolNix`. Also added an installation check for the same
issue. See #3558.
## 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. Workaround for #3574.
* mkvmerge: sorting tracks by type did not work properly when some tracks
weren't copied. Part of the fix of #3567.
* 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. Part of the fix of #3567.
* 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. Part of the fix of #3556 &
#3561.
* 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. Part of the fix of #3556 & #3561.
* MKVToolNix GUI: header editor: fixed the application crashing whenever you
change a property below the "segment information" node. This bug was
introduced in v77. Fixes #3556.
* 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. Fixes #3557.
* 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. Part of the fix of #3557.
* 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. Fixes #3573.
* AppImage: fixed the GUI resources (e.g. icons) not being found.
* AppImage: the Qt plugins required for using compose key/dead keys are now
included. Fixes #3577.
## Build system changes
* The compilation database (`compile_commands.json`) is now always built. The
variable `BUILD_COMPILATION_DATABASE` is not evaluated anymore.