Up to [cvs.NetBSD.org] / pkgsrc / multimedia / mkvtoolnix
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
mkvtoolnix: updated to 88.0 Version 88.0 "All I Know" 2024-10-19 New features and enhancements * mkvmerge, MKVToolNix GUI's chapter editor: added support for reading chapters from PotPlayer bookmark files. Bug fixes * configure: fixed setting `HAVE_QTDBUS` properly if the QtDbus module is found. * mkvmerge: MP4 reader: mkvmerge will no longer warn when multiple identical FourCCs are present within the same track headers. * mkvmerge man page: removed the wrong statement that an attachment's MIME type must be set before use of the `--attach-file` & `--attach-file-once` options. If not given, mkvmerge auto-detects the MIME type.
mkvtoolnix: updated to 87.0 Version 87.0 "Black as the Sky" 2024-09-07 New features and enhancements * mkvmerge: chapters: added support for specifying MPLS files with `--chapters`, too, not just as regular source files. The documentation stated this was possible already, but that wasn't actually the case. * MKVToolNix GUI: multiplexer: added a progress dialog that is shown during file identification. * MKVToolNix GUI: jobs: the status bar now differentiates between numbers of warnings/errors that occurred in the current session and those that occurred before the current session. Bug fixes * mkvmerge: AAC parser: LOAS/LATM streams: if the first `AudioSpecificConfig` element is not found within the first LOAS/LATM frame, `mkvmerge` will no longer discard the frames before it but defer parsing them until after it has found the `AudioSpecificConfig` element. * MKVToolNix GUI: job queue: fixed the GUI crashing when re-ordering the jobs in the job queue. This regression was introduced while fixing 3720. Build system changes * The bundled `fmt` library was updated to v10.2.1.
mkvtoolnix: updated to 86.0 ersion 86.0 "Winter" 2024-07-13 New features and enhancements * mkvmerge: Matroska reader: track statistics tags are included in the JSON identification output just like other tags had already been included: as part of the track properties, prefixed with `tag_`. * mkvmerge: MPEG TS reader: mkvmerge will now detect teletext subtitle tracks even if they're not listed in the PMT as long as it can find teletext pages flagged as subtitles in the header within the probed ranged of the file. * MKVToolNix GUI: multiplexer: the default mode for escaping the arguments in the "Show command line" dialog can now be set in the preferences. * MKVToolNix GUI: multiplexer: the "Show command line" dialog now includes the command lines for all currently open multiplex settings, switchable with a combo box. * MKVToolNix GUI: multiplexer: some users add the option `--regenerate-track-uids` to the "additional options", even though `--regenerate-track-uids` is a file-specific option, and you can only use global options in the "additional options". However, the GUI currently doesn't have an option for specifying additional file-specific options. The GUI now detects the use of this option in the "additional options" & adds it for each of the source files instead. * MKVToolNix GUI: multiplexer: the option `--regenerate-track-uids` has been added to the "additional command line options" dialog. * translations: added a Norwegian Bokmål translation of the man pages by Roger Knutsen (see `AUTHORS`). Bug fixes * mkvmerge: when using timestamp files for subtitle tracks, mkvmerge will no longer set a default duration for the track. * mkvmerge: when using timestamp files for subtitle tracks, mkvmerge will no longer queue frames longer than necessary, which resulted in the frames sometimes being written much later than they should have been according to their timestamps. * mkvmerge: when using timestamp files for subtitle tracks, mkvmerge will now write the packets' duration properly. * MKVToolNix GUI: job queue: the shortcut from the "Job queue" menu are now enabled correctly whenever the number of jobs in the queue changes (e.g. by adding new jobs).
mkvtoolnix: updated to 85.0 Version 85.0 "Shame For You" 2024-06-02 Bug fixes * fixed compilation of `src/common/sorting.h` with certain compilers due to the deprecation & removal of `std::result_of<>` in C++20. * fixed compilation with the `gtest` library when `gtest` requires additional libraries by querying `pkg-config` for the correct flags & libraries to build with. * MKVToolNix GUI: multiplexer: restored the keyboard shortcut for switching to the "Attachments" tab (Alt+C for the English interface). * MKVToolNix GUI: multiplexer: fixed several cases when the keyboard shortcuts for copying the first source file's name/the destination file's name to the title (Ctrl+F & Ctrl+D) and the one for copying the title to the destination file name (Ctrl+T) were not enabled.
mkvtoolnix: updated to 84.0 Version 84.0 "Sleeper" 2024-04-28 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.
mkvtoolnix: updated to 83.0 Version 83.0 "Circle Of Friends" 2024-03-10 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.
mkvtoolnix: updated to 82.0 Version 82.0 "I'm The President" 2024-01-02 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.
mkvtoolnix: updated to 81.0 Version 81.0 "Milliontown" 2023-12-02 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.
mkvtoolnix: updated to 80.0 Version 80.0 "Roundabout" 2023-10-29 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 which seems to be the default on Windows systems sold in China. 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 to e.g. macOS. * 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.
mkvtoolnix: updated to 79.0 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. * 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. * 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.
mkvtoolnix: updated to 78.0 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. * 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. 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. * 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. Build system changes * The compilation database (`compile_commands.json`) is now always built. The variable `BUILD_COMPILATION_DATABASE` is not evaluated anymore.
mkvtoolnix: updated to 77.0 Version 77.0 "Elemental" 2023-06-04 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: macOS: when you install the application from the DMG it'll register itself as an alternate handler for its supported file types. This allows the use of the "Open with" context menu action in Finder. * 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. * mkvmerge: Windows: when writing to a network share connected via SMB1 `mkvmerge` was aborting with a error about `create_directory() failed` with existing directories. This was due to a bug in recent versions of the Boost.Filesystem library. The Windows version of MKVToolNix will be built with Boost 1.82.0 from now on which includes the fix. * 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. * MKVToolNix GUI: Windows: the GUI will now always use its own implementation of light & dark palettes instead of relying on Qt. This circumvents two issues with the palette support in Qt 6.5.0: 1. if Windows 11's dark application mode is active, links were displayed in a hard-to-read dark blue. 2. for unknown reasons the the dark palette was not chosen on some Windows 11 installations even though Windows 11's color mode was set to "dark". 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. On Windows & macOS the GUI will look for the file in `<folder_with_executables>/data/qt_resources.rcc`, and 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.
mkvtoolnix: fix build with fmtlib 10 using upstream patches.
mkvtoolnix: updated to 76.0 Version 76.0 "Celebration" 2023-04-30 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: only on Windows: the GUI now uses Qt's "Fusion" style instead of the deprecated "Windows Vista" style. The advantage is that as of Qt 6.5 the "Fusion" style properly supports Windows 10's & 11's dark application mode. The Windows binaries are now built with said Qt version. Therefore the option to disable the dark mode has been removed. * 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.
mkvtoolnix: updated to 75.0.0 Version 75.0.0 "Goliath" 2023-03-26 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.
mkvtoolnix: updated to 74.0.0 Version 74.0.0 "You Oughta Know" 2023-02-12 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`.
mkvtoolnix: updated to 73.0.0 Version 73.0.0 "25 or 6 to 4" 2023-01-02 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 (e.g. for my macOS builds).
mkvtoolnix: fix buildling without po4a
mkvtoolnix: updated to 72.0.0 Version 72.0.0 "Minuano (Six-eight)" 2022-11-13 New features and enhancements * mkvmerge: AV1 parser: the variable-width OBU size field will be re-written with minimal length if it's encoded longer than necessary. * mkvmerge: when splitting is active the program will output the timestamps actually used for making the decision when to split. If GUI mode is active, a specially formatted line `#GUI#splitting_before_timestamp <timestamp>` is output as well. Lines prefixed with`#GUI#` are suitable for machine parsing, won't be translated and are guaranteed not to change in format. * MKVToolNix GUI: multiplexer: when dragging & dropping directories to the "attachments" tab, the files contained in those directories will be attached. * MKVToolNix GUI: info tool: added information about the file (directory, size, modification timestamp) at the top of each tab. Bug fixes * mkvmerge: AV1 parser: fixed the parser completely aborting when parsing the OBU size field fails due to there not being enough data to parse. Instead the parser will remember the last known-good position & restart from there after more data is available. * mkvmerge: HDMV PGS subtitles: reverted the change that implemented a heuristic for detecting bogus timestamps & attempting to fix them. This was done to fix 3268. Unfortunately this affected valid subtitle files with intentional huge gaps in timestamps, e.g. forced subtitle tracks. The heuristic has simply been removed, fixing 3392. * mkvmerge: Matroska reader: fixed reading files with EBML Void elements before the Matroska Segment element. * mkvmerge: fixed reversed attachment selection: `--attachments !4` would not copy any attachment instead of all attachments but the one with ID 4. * mkvextract: IETF BCP 47/RFC 5646 language tags: mkvextract will now use & prefer IETF BCP 47 track language elements if they're present. Only affects the VobSub & USF subtitle extraction. * mkvpropedit, MKVToolNix GUI's chapter & header editors: updated the list of deprecated Matroska elements. The applications will no longer try to write those elements, even if they're found in the file to be modified. The programs will no longer abort with error messages such as `assertion "false" failed`. * mkvpropedit, MKVToolNix GUI's chapter & header editors: when the Matroska version numbers stored in the EBML Head element are updated, the updated EBML Head element might be smaller than the existing one. In that case the programs used to shrink the EBML Head & write a small EBML Void element between the updated EBML Head & the following element, usually a Matroska Segment element. This isn't widely supported by programs including MKVToolNix itself, causing them to declare such files as invalid. The programs will now create the EBML Void element inside the EBML Head element, making them a level 1 element instead of a level 0 element. * mkvpropedit, MKVToolNix GUI's chapter & header editors: often the programs have to relocate the Master elements in which the modifications were done. In that case the Seek Head elements must also be updated to reflect to the Master elements' new positions. If a file contained a Seek Head element at the start already and if that Seek Head was too small to contain the updated positions, the programs would end up in an endless loop trying to write data to the end, creating ever-growing files. This is now handled properly by voiding this too-small Seek Head & finding a proper space for a new one instead. * MKVToolNix GUI: header editor: fixed pixelated icons on higher display scaling values. Build system changes * bug fix: libFLAC detection is now done via `pkg-config`, and the corresponding compiler flags are honored. Fixes static compilation with newer versions of libFLAC with MXE where a compiler definition is required to signal that it libFLAC wasn't built as a DLL.
mkvtoolnix: updated to 71.1.0 Version 71.1.0 "Fortitude" 2022-10-09 Bug fixes * Chapters DTD: added the new edition & chapter elements from Matroska v5. * Chapters DTD: fixed EditionUID being mandatory. mkvmerge can auto-generate it if it's missing from the XML file. * Chapters DTD: fixed the `example-chapters-1.xml` not validating against the DTD. * Chapters DTD: corrected the old name `EditionManaged` to `EditionFlagOrdered`. * Chapters DTD: fixed `ChapLanguageIETF` missing its element declaration & `ChapterLanguage` being required. * XML DTDs: fixed elements representing binary data not allowing the `format` attribute. Build system changes * bug fix: configure accidentally tested for libEBML ≥ 2.0.0 & libMatroska ≥ 2.0.0, even though the actual requirements are 1.4.4 & 1.7.1 respectively. Version 71.0.0 "Altitude" 2022-10-08 New features and enhancements * mkvmerge, MKVToolNix GUI's multiplexer: added support for the Emphasis audio track header element via the `--audio-emphasis` option. It is also read from Matroska files. * mkvmerge: the options `--list-stereo-modes` and `--list-audio-emphasis` have been added to list all support numerical & textual values for the `--stereo-mode` & `--audio-emphasis` options. * mkvpropedit, MKVToolNix GUI's header editor: added support for the Emphasis audio track header element via the `emphasis` property. * MKVToolNix GUI: multiplexer: when the track properties are configured to be displayed in a tab widget below the files & tracks in the "Input" tab, the "Color information" tab will be laid out in two columns. This reduces the minimum height the whole tab widget requires. * MKVToolNix GUI: greatly sped up closing the preferences dialog by only re-running certain initialization functions when their corresponding settings have changed. * mkvinfo, MKVToolNix GUI's info tool: added support for the following new elements from Matroska v5: Emphasis audio track header element; Chapter Skip Type; Edition Display; Edition String; Edition Language IETF. * mkvmerge, mkvpropedit: added support for the following new chapter elements from Matroska v5: Chapter Skip Type; Edition Display; Edition String; Edition Language IETF. The GUI's chapter editor will receive support for them in the next release. Bug fixes * mkvmerge: Ogg/OGM reader: mkvmerge will now correctly skip tracks of unsupported types as well as tracks for which all track header pages haven't been found. Build system changes * libEBML 1.4.4 & libMatroska 1.7.1 are now required. * The bundled libEBML & libMatroska libraries were updated to v1.4.4 & v1.7.1 respectively. * The bundled `fmt` library was updated to v9.1.0. * The bundled `nlohmann-json` library was updated to v3.11.2.
mkvtoolnix: updated to 70.0.0 Version 70.0.0 "Caught A Lite Sneeze" 2022-08-14 New features and enhancements * MKVToolNix GUI: the user can now control where the job queue files & the preferences INI file are stored via environment variables. If set, the variable `MKVTOOLNIX_GUI_STATE_DIR` can point to a directory where the GUI stores both the job queue sub-directory and the preferences INI file. If you only want to relocate the preferences INI file, you can store the desired file name for the INI file in `MKVTOOLNIX_GUI_CONFIG_FILE`. * MKVToolNix GUI: when adding directories via drag & drop/copy & paste the GUI will now offer the user the option to create one multiplex settings tab per directory & adding all files from that directory to the corresponding, newly created tab. Bug fixes * mkvmerge: AV1 OBU parser: fixed identifying files that only contain single frame. * MKVToolNix GUI: multiplexer: when reading color parameters from identified files that are floating point numbers (minimum/maximum luminance, projection pitch/roll/yaw) the numbers will be formatted in floating-point notation instead of scientific notation as mkvmerge only supports the former. * MKVToolNix GUI: multiplexer: color parameters that are floating point numbers (minimum/maximum luminance, projection pitch/roll/yaw) will only be set to a value during identification if the identification actually contains the property, and not to 0 anymore if it doesn't. Build system changes * Several merge requests where accepted that improve compilation on MSYS2 on Windows. Note that this build type isn't supported.
mkvtoolnix: updated to 69.0.0 Version 69.0.0 "Day And Age" 2022-07-09 Important notes * all: the spelling of "colour" was changed to "color" throughout all programs to match the use of American English spelling in MKVToolNix. This not only affects documentation and user interface controls, but also program options for mkvmerge & mkvpropedit. Both programs will continue to accept the British English spelling of their respective options indefinitely. One breaking change is that the property names in mkvmerge's JSON identification mode have also been changed to American English spelling. As those properties have only been introduced in release v68, this seems like a small enough window to make such a change. New features and enhancements * MKVToolNix GUI: the number of recently used entries (e.g. destination directories) remembered by the GUI can now be configured in the preferences. * MKVToolNix GUI: multiplexer: when adding files the track properties regarding color information & color mastering meta information will be parsed & set in the corresponding GUI controls. * MKVToolNix GUI: job queue: the job queue can now be sorted by clicking on the column headers. * MKVToolNix GUI: job queue: when loading jobs from the queue directory that weren't previously known to the program those jobs will be sorted by their "date added" timestamp instead of using the order the operating system returns them in. Bug fixes * build system: fixed compilation with fmt v9. * mkvmerge: HEVC ES parser: the parser will now parse at least the first full access unit before reporting that it has found all the required headers. Otherwise parsing might stop in the middle of the access unit due to the source reader not providing more data in the first call, leading to the parser not finding the `unspec62` and `unspec63` NALUs required for Dolby Vision. * MKVToolNix GUI: preferences: the default actions added to the "execute programs" section on new installations now default to use WebM file names instead of Ogg, matching the format of the included audio files. Build system changes * The bundled `fmt` library was updated to v9.0.0.
mkvtoolnix: updated to 68.0.0 Version 68.0.0 "The Curtain" 2022-05-22 New features and enhancements * mkvmerge: HDMV PGS subtitles: mkvmerge now tries to detect bogus timestamps (where the current timestamp is two hours or more after the previous timestamp) & correct them to something more sensible (1s after the previous timestamp). That way one bogus timestamp cannot cause the rest of the frames to not be interleaved properly with the other audio & video packets. * mkvmerge: added colour information, colour mastering meta information & video projection information properties to the JSON identification format. The properties are reported for container types for which mkvmerge supports reading them (Matroska & MP4). The JSON identification format version number has been bumped to v15. * MKVToolNix GUI: multiplexer: added controls for all the video colour information & the video projection information. Bug fixes * mkvmerge: SRT reader: entries with a duration of 0 or less will now be skipped. * mkvpropedit, MKVToolNix GUI's chapter & header editors: fixed an invalid memory access when trying to update existing Matroska files whose EBML Head element had a "size" field length of eight bytes, and where rewriting said element would shrink the element by one byte. Files created by gstreamer fit the first part whereas the second depends on the changes requested by the user. * mkvpropedit, MKVToolNix GUI's chapter & header editors: fixed the programs not handling having to remove EBML void elements at the end of the file correctly and consequently aborting. * MKVToolNix GUI: the GUI now uses almost all SVG icons, allowing proper scaling even for scaling factors such as 125%. * MKVToolNix GUI: when compiled with Qt 5 the character set of INI files is forced to UTF-8 in order to fix reading INI files written by a version compiled with Qt 6. Build system changes * Qt's SVG library is now required.
mkvtoolnix: updated to 67.0.0 Version 67.0.0 "Under Stars" 2022-04-10 New features and enhancements * all: IETF BCP 47/RFC 5646 language tags: when deriving the legacy language element codes to use a language tag's ISO 639 code is also potentially interpreted as an & its prefix is used as the legacy language code. For example, "Yue Chinese" = `yue` is not part of ISO 639-2. However, there is an extlang subtag `yue` with a valid prefix of `zh` ("Chinese"), and for "Chinese" there is an ISO 639-2 language code: `chi`. In this example the IETF language element would be set to `yue` and the corresponding legacy element to `chi`. * all: IETF BCP 47/RFC 5646 language tags: grandfathered language tags are now supported. * all: IETF BCP 47/RFC 5646 language tags: all deprecated subtags from the IANA language subtag registry are now supported. * all: IETF BCP 47/RFC 5646 language tags: all lists of valid subtags have been updated from their respective authoritative sources. * all: IETF BCP 47/RFC 5646 language tags: all in the IANA language subtag registry are now supported, even those marked as deprecated and of type 'grandfathered'. * all: IETF BCP 47/RFC 5646 language tags: reduced the maximum number of extended language subtags that are present in a valid tag from 3 to 1 in compliance with RFC 5646 section 2.2.2. * all: IETF BCP 47/RFC 5646 language tags: all language codes reserved for private/local use (`qaa`–`qtz`) are now supported. * all: IETF BCP 47/RFC 5646 language tags: Digital Cinema Naming Convention language codes that fall into the IETF BCP 47 range of "private use" tags (`qaa`–`qtz`) are now replaced by their IETF BCP 47 equivalents during normalization (e.g. `QMS` → `cmn-Hans`). * all: added a new translation to Chinese Simplified (Singapore) by Dian Li. * mkvmerge, mkvpropedit: added a new command line option called `--enable-legacy-font-mime-types`. With this option on the two programs will use the same legacy MIME types for fonts whenever new attachments are added (both programs), when reading existing attachments (only `mkvmerge`) or when replacing existing ones (only `mkvpropedit`). * mkvmerge, mkvpropedit: IETF BCP 47/RFC 5646 language tags: added a command line option `--normalize-language-ietf <mode>` which turns on normalization of IETF BCP 47 language tags to either their canonical (mode `canonical`) or extended language subtags form (mode `extlang`) or turns it off (mode `off`). If the option isn't given, language tags will now be normalized to the canonical form. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: ISO 639-3 and 639-5 languages will now be used by default. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor dialog will now show warnings in several cases: when deprecated tags are used; when the tag's canonical and/or extlang forms differ from the user input. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor now has a button to replace the current tag with a normalized form (canonical or extlang) if those differ from the current tag. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: added an option in the preferences to always normalize all language tags to their canonical or extlang forms or to turn normalization off. Can also be enabled from the language editor dialog. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now shows a warning if a variant is used with a prefix that isn't in the variant's list of suitable prefixes. It'll also say if the corresponding canonical/extlang forms would have a suitable prefix. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now shows a warning if a script is used with a language for which it should be suppressed. * MKVToolNix GUI: multiplexer: the track property group boxes in the scrollable pane are now collapsible & expandable, saving their state over restarts of the GUI. This is in preparation of adding many more track properties in future releases, allowing the user to hide parts they don't use all that often. * MKVToolNix GUI: multiplexer: if the option "use legacy font MIME types" is enabled in the preferences, the new command line option `--enable-legacy-font-mime-types` will be passed to `mkvmerge` in order to have it remap the MIME types of existing attachments, too. Bug fixes * all: IETF BCP 47/RFC 5646 language tags: variants aren't validated wrt. to prefixes anymore as BCP 47 doesn't actually pose restrictions on them, saying only that prefixes "are suitable sequences" for use with the variants. What is now verified, though, is that no variant is used multiple times within the same language tag. * build system & MKVToolNix GUI: fixed detecting the presence of & the compilation with the multimedia module of Qt version 6.2.0 and newer. * build system: fixed compilation on Unices other than Linux & macOS (e.g. FreeBSD). * MKVToolNix GUI: job queue: fixed compiling in the audio player code for the the "play audio" end-of-job action. * MKVToolNix GUI: multiplexer: recognizing added XML chapter, segment info or chapter files required the XML declaration & root node (e.g. `<?xml…?> … <Chapters>` for chapters) be located within the first 1 KB, which wasn't enough for files that contain a lot of comments at the start like the included `example-chapters-2.xml`. The detection range was extended to 10 KB. Build system changes * build system: the provided Windows binaries are now compiled with Qt 6. A drawback is that certain audio formats aren't supported anymore by Qt for the "end of job" sound notification playback, notably the Ogg file format & the Vorbis audio codec. MKVToolNix therefore now ships Opus-in-WebM files for the same purpose. * The bundled `fmt` library was updated to v8.1.1. * The bundled `nlohmann-json` library was updated to v3.10.5. * The bundled `pugixml` library was updated to v1.12.1.
mkvtoolnix: updated to 66.0.0 Version 66.0.0 "Josie" 2022-03-13 New features and enhancements * mkvpropedit: added a new option `--chapter-charset` allowing the user to specify the character set to use when reading the following chapter file. * MKVToolNix GUI: each language shortcut can now be associated with an optional track name that is set along with the language when the shortcut is used. Bug fixes * mkvmerge: Ogg/OGM reader: mkvmerge will no longer abort with an exception when it encounters Vorbis comments that contain data that isn't valid UTF-8. * MKVToolNix GUI: multiplexer: fixed several issues with the tab order of elements in the "properties" pane and the "output" tab. Also fixed the language display widgets (e.g. "track language" in the "properties" pane) never receiving tab focus. * MKVToolNix GUI: multiplexer: the chapter name template will now be passed to `mkvmerge` if a chapter file is selected on the "output" tab.
mkvtoolnix: updated to 65.0.0 Version 65.0.0 "Too Much" 2022-02-06 New features and enhancements * mkvmerge: the options `--default-track` and `--forced-track` have been renamed to `--default-track-flag` and `--forced-display-flag` respectively for improved consistency with other option names & the wording used in the GUI. However, the old names will be supported and recognized indefinitely. What will remain unchanged is the property names for those flags in mkvmerge's identification output. Existing third-party programs will continue working as they are. * mkvmerge: added a new option `--track-enabled-flag` to set or unset the "track enabled" track header flag. * mkvmerge: MP4 reader: `mkvmerge` will now evaluate the `flags` field of the track header atom (`tkhd`) and set the track's "enabled" flag accordingly. * MKVToolNix GUI: multiplexer: added support for the "track enabled" track header flag. * MKVToolNix GUI: multiplexer, header editor: added several menu entries & keyboard shortcuts for toggling various track flags of the currently selected tracks, e.g. `Ctrl+Alt+F, D` (that's `Ctrl` and `Alt` with `F` simultaneously followed by `D` without any other key pressed) for toggling the "default track" flag. * MKVToolNix GUI: multiplexer, header editor: added menu entries & keyboard shortcuts for setting the language of the currently selected tracks to one from a configurable list of languages. The shortcuts used are `Ctrl+Alt+A, 1` through `Ctrl+Alt+A, 0` for the first ten entries of that list (that's `Ctrl` and `Alt` with `A` simultaneously followed by a digit without any other key pressed). * MKVToolNix GUI: chapter editor: if the user enters commas in start or end timestamps they will automatically be changed to points as the decimal separator, allowing for easier copy & paste from other programs/sources. * MKVToolNix: header editor: the selected track or attached file can now be moved up & down with the keyboard shortcuts `Ctrl+Up` & `Ctrl+Down` respectively. Bug fixes * mkvmerge: Matroska reader: DVB subtitle tracks with a codec private data size of more than five bytes are accepted now, too.
mkvtoolnix: updated to 64.0.0 Version 64.0.0 "Willows" 2021-12-27 New features and enhancements * MKVToolNix GUI: language dialog: when the user switches between the two edit modes, the mode's corresponding first control is automatically focussed. Bug fixes * all: language lists: the entries for "Ancient Greek (to 1453)" and "Modern Greek (1453-)" have been renamed to "Greek (ancient, -1453)" and "Greek (modern, 1453-)" respectively in order to be easier to find. * mkvmerge: VobSub reader: files containing `id: --` lines to indicate that the track language isn't known were rejected by `mkvmerge`. Now they're accepted, and `und` (undetermined) is used as the language. * MKVToolNix GUI: chapter editor: the "Save to Matroska or WebM file" function was using the wrong standard file dialog (the "open file" one instead of "save"), leading to confusing button names. * MKVToolNix GUI: high DPI scaling: fixed the icons in the tool selector having the wrong size for scaling factors other than 100% or 200%. Build system changes * The bundled `fmt` library was updated to v8.0.1. * The bundled `nlohmann-json` library was updated to v3.9.1. * The bundled `pugixml` library was updated to v1.11 revision 6a76cac. * The bundled `utf8-cpp` library was updated to v3.2 revision b85efd6.
mkvtoolnix: updated to 63.0.0 Version 63.0.0 "Everything" 2021-11-14 New features and enhancements * mkvmerge: AC-3 parser: E-AC-3 with BSID values > 10 and ≤ 15 are recognized now, too. * mkvmerge: when using language codes for track selection (e.g. `-a und,en`) all tracks that do not have a language property (due to their container not providing one, e.g. AVIs) will be treated as if they did have one set to `und` ("undetermined") as that is the language the track will have in the Matroska file anyway. Before this change it wasn't possible to match such tracks via language codes. * MKVToolNix GUI: only on Windows: when compiled with Qt ≥ 5.14 and < 6 (which is the case for the officially provided binaries) fractional screen scaling will be enabled. This means that the GUI will be scaled appropriately if Windows is set to 125%, 150% or 175% instead of being too small or too large. * MKVToolNix GUI: the spinner in the bottom right corner will now be hidden when no jobs are currently running. * MKVToolNix GUI: header editor: a new column has been added to the tree view showing the status of the "track enabled" flag. The information is also shown on the track overview page on the right. * MKVToolNix GUI: header editor: users can now reorder tracks by dragging & dropping. Bug fixes * mkvmerge: AVI reader: fixed reading AVI files that contain `vprp` video properties header chunks; reading aborted too early.
multimedia: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes The following distfiles could not be fetched (for legal reasons?): ./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.i386.tar.gz ./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.x86_64.tar.gz ./multimedia/libdvdcss/distinfo libdvdcss-1.4.3.tar.bz2
mkvtoolnix: updated to 62.0.0 Version 62.0.0 "Apollo" 2021-10-10 New features and enhancements * all: IETF BCP 47/TFC 5646 language tags: all ISO 639 languages are now available, even the ones that aren't of types "Constructed", "Living" or "Special". * mkvmerge, mkvpropedit: chapters: both programs will now write elements set to their default value, too (e.g. the legacy language element if it's set to `eng`). This is done to be more consistent with how MKVToolNix GUI writes chapters. * MKVToolNix GUI: multiplexer: when adding new files as attachments the GUI checks if there are other attachments with the same name. If so, the GUI would ask whether to skip the affected files or add them anyway. There's now an option in the preferences to always skip such files, and it's enabled by default. * MKVToolNix GUI: chapter editor: removed the support for explicitly setting the legacy country elements. Instead the legacy country elements are derived from the region parts of the IETF BCP 47 languages. Bug fixes * mkvmerge: fixed a crash when splitting by chapters is enabled but there are no chapters at all. * mkvmerge: the error message when trying to split by a chapter number that doesn't exist contained the wrong number of chapters that actually do exist. * mkvmerge: AVC ES parser: fixed mkvmerge aborting due to uncaught exception when encountering bad SPS data. * mkvmerge: AVC/H.264 parser: re-added the hack `--engage all_i_slices_are_key_frames` which was accidentally removed in release v61. * mkvmerge: AVI reader: fixed a crash trying to allocate too big of a memory chunk due to an integer overflows in check conditions. * mkvmerge: HEVC ES parser: fixed another issue with frame type recognition. Certain frames were marked as B frames/discardable on the container level even though they could be reference pictures. Now only SLNR pictures (sub-layer non-reference) are marked that way. * mkvmerge: HEVC ES reader: improved file content detection for HEVC ES files with wrong file name extensions (e.g. `.mkv`), which fixes them being mis-detected as something else, e.g. DTS. * mkvmerge: HEVC ES parser: "end of sequence" NALUs are kept now, and no superfluous flushing will be done when one is found. This prevents splitting NALUs into two different Matroska blocks when they should really be part of a single one, also causing problems with erroneous timestamps. Mostly affects DoVi NALUs. * mkvmerge: Matroska reader, TrueHD: mkvmerge will now probe much more TrueHD frames trying to find the first sync frame. This fixes track detection in situations when a TrueHD doesn't start with a sync frame, e.g. when the source file's the result of splitting between sync frames. * mkvmerge, MKVToolNix GUI's chapter editor: IETF BCP 47/RFC 5646 language tags: when reading chapters from MPLS playlist files, the `ChapLanguageIETF` element will now be set to the configured default chapter language, not just the legacy `ChapterLanguage` element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF BCP 47 elements will now always be created before writing chapters unless IETF BCP 47 elements are disabled. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when a chapter display element contains legacy language & country elements but no IETF BCP 47 elements and IETF BCP 47 elements aren't disabled, the IETF BCP 47 elements created will contain the region from the legacy element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: Legacy country elements are now created when IETF BCP 47 elements are present & contain a region code allowed in legacy country elements. Build system changes * The `tools` sub-directory is now always built. The corresponding `configure` option `--with-tools` has been removed. The `install` target still doesn't install them, though.
multimedia: Remove SHA1 hashes for distfiles
mkvtoolnix: updated to 61.0.0 Version 61.0.0 "So" 2021-08-30 New features and enhancements * all: IETF BCP 47/RFC 5646 language tags: implemented support for officially registered IANA language tag extensions. * mkvmerge: track selection: when using language tags for selecting which tracks to keep, mkvmerge will now use component-based language tag matching instead of comparing them verbatim. This means that only those components (language, region etc.) the user specified will be required to exist and be equal. For example, if a file contains three subtitle tracks with languages `es` (generic Spanish), `es-MX` (Spanish as spoken in Mexico) and `es-ES` (Spanish as spoken in Spain), the user can use `--stracks es` to match all three tracks or be more specific with e.g. `--stracks es-MX` which would only match one track. Similarly inverting the selection with e.g. `--stracks !es` would get rid of all three tracks, not just the one for the generic Spanish. * MKVToolNix GUI: multiplexer: deriving track languages from file names: the GUI can now detect full BCP 47/RFC 5646 language tags in file names. * MKVToolNix GUI: multiplexer: deriving track languages from file names: the default list of boundary characters now includes `-`. * MKVToolNix GUI: multiplexer: the GUI now defaults to the "lower" process priority setting for new installations in order to leave more room for other applications, especially interactive ones. Up to and including v59 the default was the "normal" process priority. v60 changed that to "lowest", which turned out to be much slower on Windows for no real gain over "lower". The setting will be auto-corrected by the GUI if the settings file were saved last with a version between v60.0.0.0 & v60.0.0.17 & "lowest" & it is still set to "lowest". * HEVC dumper development tool: the tool has been renamed to `xvc_dump` and extended to be able to dump AVC/H.264 bitstreams, too. It now also detects the type of bitstream framing (ISO 14496-15 vs. ITU-T H.264/H.265 Annex B). Bug fixes * all: IETF BCP 47/RFC 5646 language tags: fixed a corner case of wrongfully allowing scripts/variants not listed in any of the entries in the prefix list when the prefix list contains prefixes restricting scripts/variants and a prefix solely with the language at the same time (example: the variant `ekavsk` with its prefixes `sr`, `sr-Cyrl` and `sr-Latn` where e.g. `sr-ekavsk` and `sr-Cyrl-ekavsk` should be allowed but not `sr-Bali-ekavsk`). * mkvmerge: HEVC/H.265: the frame type of B frames was often wrongfully signalled as P frames instead, both with `BlockGroup` (missing second references) and `SimpleBlock` ("discardable" flag not set) elements. * mkvmerge: SSA/ASS packetizer: the frame numbers will now be re-calculated when appending SSA/ASS tracks so that frame numbers of appended tracks are always strictly higher than frame numbers of the track they're appended to. * mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: when BCP 47 language tags are used with a language code that isn't part of ISO 639-2, the programs will now write a legacy language element set to `und` ("undetermined") instead of not writing such an element at all or writing one with an invalid code. * mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: the programs will ensure that the legacy and IETF language elements written will be unique within the scope of the same "chapter display" element. * mkvinfo, MKVToolNix GUI's info tool: in summary mode the frame type was reported wrong for `BlockGroup` elements in which the `ReferenceBlock` elements were located behind the `Block` element. Build system changes * all: `std::codecvt_utf8` is now used instead of Boost's `utf8_codecvt_facet`. The bundled copy the latter in `lib/boost` has therefore been removed.
mkvtoolnix: updated to 60.0.0 Version 60.0.0 "Are We Copies?" 2021-07-31 New features and enhancements * all: IETF BCP 47/RFC 5646 language tags: added support for language families from ISO 639-5 that aren't part of 639-2. * all: IETF BCP 47/RFC 5646 language tags: implemented support for Alpha 2 country codes of the "user-defined" category: `AA`, `QM`–`QZ`, `XA`–`XZ` and `ZZ`. * all: IETF BCP 47/RFC 5646 language tags: updated the various lists of valid subtags from the official specs. * MKVToolNix GUI: multiplexer: pressing the keyboard shortcut for the track's "Language" label (Alt+L for English) will now open the language dialog. * MKVToolNix GUI: multiplexer: added an option in the preferences for turning off the colored boxes indicating which file each track belongs to. Bug fixes * all: IETF BCP 47/RFC 5646 language tags: fixed validating extended language & variant subtags against their allowed prefixes (e.g. a valid tag with a country code as in `de-CH-1996` is recognized as valid while two generally known variants that aren't allowed together as in `de-1901-1996` is recognized as invalid). * all: IETF BCP 47/RFC 5646 language tags: when looking up a language for a two- or three-letter code, the programs will no longer compare that code with language names as that was unintended, ambiguous (e.g. the code "Ga" could be interpreted as the 639-2 alpha-2 code for "Irish" or as the name of the language called "Ga") and only worked with languages whose name was at most three letters long. * mkvmerge: HEVC/H.265: appending Matroska files with HEVC tracks might lead to the loss of the first couple of frames from each of the second and all following files. * mkvmerge, mkvextract: HEVC/H.265 parser: fixed the programs aborting when parsing VPS or SPS NALUs with invalid content due to unhandled exceptions. * MKVToolNix GUI: multiplexer: when the option "use legacy MIME types for font attachments" is enabled, the GUI will now use `application/x-truetype-font` for font collection files. * MKVToolNix GUI: multiplexer: fixed escaping the `mkvmerge` argument in the "Show command-line options" dialog for the "Windows (cmd.exe)" mode. * MKVToolNix GUI: multiplexer: when adding multiple files at once, the GUI will sort file names with numbers the way a human would expect it to. For example, `1.mp4`, `9.aac`, `10.srt`, `11.srt` are now sorted exactly that order instead of `1.mp4`, `10.srt`, `11.srt`, `9.aac`. * MKVToolNix GUI: header editor: the header editor will now honor the "use legacy MIME types when adding font attachments" setting when adding new attachments.
mkvtoolnix: updated to 59.0.0 Version 59.0.0 "Shining Star" 2021-07-10 New features and enhancements * mkvmerge: WebVTT parser: the parser now follows the specs' rules for parsing timestamps more closely by being more lenient: it allows arbitrary number of spaces & tabs at the start of the line & around the arrow; it allows any number of digits for the hours. * MKVToolNix GUI: multiplexer: when adding a Blu-ray playlist without scanning for other playlists the GUI will now look for disc library information & let the user select which one to use if there's more than one entry. * MKVToolNix GUI: multiplexer: added an option for sorting files & tracks by track types when adding them to multiplex settings. The order is: video first followed by audio, subtitles and other types. Files & tracks can still be reordered manually later. The option is enabled by default & can be found in the preferences → "Multiplexer" page → "Adding files" section. * MKVToolNix GUI: multiplexer: added an option for recognizing file name sequences such as `movie.001.mp4`, `movie.002.mp4`, `movie.003.mp4` when adding multiple files at once. If a sequence is detected, the only first file will be added while the second and following file names will be appended to the first one. The option is enabled by default & can be found in the preferences → "Multiplexer" page → "Adding files" section. * MKVToolNix GUI: multiplexer: added small colored boxes for each file & track in order to indicate from which file each track is read. The colors used can be configured in the preferences → "Multiplexer" page → "File & track colors" section. Bug fixes * build system: fixed compilation with fmt v8. * mkvmerge: SRT subtitle reader: characters that aren't valid according to the assumed encoding of the file will now be replaced by the Unicode "Replacement Character" U+FFFD instead of keeping the invalid characters, potentially violating the Matroska specs. * mkvmerge: WebVTT parser: the parser now accepts timestamps with hours larger than 99. * mkvextract: TTA extraction, only on Windows: fixed removing the temporary file created during extraction. * mkvmerge, mkvpropedit, MKVToolNix GUI's multiplexer & header editor: MIME type detection is now done using Qt instead of the `magic` library. The main impact is the MIME types of TrueType & OpenType fonts are now detected correctly. * mkvmerge, mkvinfo, MKVToolNix GUI's info tool: only on Windows: displaying dates before 1970-01-01 00:00:00 UTC or after 2038-01-19 03:14:08 UTC was broken. Note that the header editor was not affected. * MKVToolNix GUI: only on 64-bit Windows: under certain conditions, the 64-bit Windows binaries crashed when opening dialog windows. Even though the underlying bug hasn't been identified, the investigation showed that building it with newer versions than 10.2.0 of the mingw/gcc cross-compiler enabled the crashes, while binaries built with 10.2.0 were fine. This affected v57 and v58 which were built with gcc versions 10.3.0 and 11.1.0 respectively. For the time being I've switched back to building Windows binaries with gcc 10.2.0. * MKVToolNix GUI: multiplexer: when adding files to the multiplexer by running the GUI's executable with file names as command line arguments, the source directory will be remembered as the "last open directory" again, causing subsequent uses of the "open file" dialog to start in the same directory. * MKVToolNix GUI: multiplexer: the "default track flag" column in the track list was missing its icons. Additionally it contained text even for things that aren't regular tracks and therefore do not actually have that flag (e.g. chapters or tags). * MKVToolNix GUI: multiplexer: the default for the dialog asking the user what to do with dragged & dropped files if they've never seen the dialog is back to adding the files to the current multiplex settings instead of "add as additional parts" which was an unintentional default. * MKVToolNix GUI: multiplexer: the "show command line" dialog will now always use backward slashes for the "Windows (cmd.exe)" mode and forward slashes for the "Linux/Unix shells" mode, regardless of the operating system it's currently running on. Build system changes * The Qt library is now required for building all applications, even the command-line ones, as they use Qt's MIME type detection capabilities. In turn this means that you cannot disable the Qt usage anymore; either Qt5 or Qt 6 is required. You can still chose not to build MKVToolNix GUI, though. A new option has been added to `configure` for this purpose: `--disable-gui`. * The `gmp` library is now required. * The `magic` library is not used anymore. * The `PCRE2` & `JPCRE2` libraries are not used anymore. The bundled version of `JPCRE2` was removed. * Boost's "rational" library is not used anymore. * `configure`: the option `--enable-appimage` has been removed. The location of the relevant directories within an AppImage is now detected automatically. * The bundled `fmt` library was updated to v8.0.0.
mkvtoolnix: updated to 58.0.0 Version 58.0.0 "Supper's Ready" 2021-06-13 New features and enhancements * mkvmerge, MKVToolNix GUI's multiplexer: the handling of the "default track" flag has been changed to match the recent changes to the Matroska specifications. The new semantics are that if it is set, it is supposed to signal to the player that this track is eligible for being played by default, potentially taking other factors such as user preferences regarding languages into account. This implies that more than one track of each type can have this flag set. For example, a Blu-ray disc with three audio tracks might have the main audio in both English and Japanese, whereas the third audio track contains the director's comments. In such a case the first two tracks should have the "default track" flag set, the third one shouldn't. Earlier `mkvmerge` was enforcing that only one track of each type could have the flag set. This restriction has been removed, both in `mkvmerge` and in the GUI's multiplexer. `mkvpropedit` and the GUI's header editor are unaffected as they've always allowed to set the flag on as many tracks as the user wanted. * mkvmerge: AVC/H.264 & HEVC/H.265 identification: added the stream's pixel dimensions (AVC only; were present for HEVC already) & default duration. * mkvmerge, mkvextract: HEVC/H.265: added support for reading single-layer Dolby Vision from Annex B type bitstreams (elementary streams, MPEG transport streams). Patch by quietvoid. * mkvinfo: the option `-X`/`--full-hexdump` now affects all binary elements, not just the frame data in `SimpleBlock` and `BlockGroup` elements. * MKVToolNix GUI: multiplexer: the "delay" and "sync" options can now be used for chapters in source files, too. * MKVToolNix GUI: when moving list entries up & down with the optional buttons or the keyboard shortcuts (instead of using drag & drop), the GUI ensures that the top-most selected entry remains visible after the move. * MKVToolNix GUI: added an option in the preference to use legacy MIME types for font attachments instead of the current standard ones (e.g. 'application/x-truetype-font' instead of 'font/sfnt' and 'font/ttf'). Bug fixes * build system: fixed filtering out optimization options when compiling the file `iso639_language_list.cpp` (before only numeric optimization levels were filtered out and only if it wasn't the last option in the list of flags). * build system: when libmagic was detected via `pkg-config`, MKVToolNix was actually compiled without support for libmagic due to a preprocessor symbol not being defined. * mkvmerge: MP4 reader: fixed an issue with timestamps overflowing when the file's or the track's time scale is large. * mkvmerge, mkvextract: fixed key frame handling for `BlockGroup` elements with a forward reference but no backward references. Patches by Tom Yan. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: the programs will no longer omit writing mandatory elements set to their default value if other elements of the same type are present in the same master. This affects mostly the "chapter language" element which may occur multiple times within the same "chapter display" master. If it does occur multiple times and one of them is set to "English" (which is that element's default value), that element will now be written, too. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when parsing chapter files IETF & legacy language elements as well as legacy country elements will now be properly generated depending on which exist already, especially when there's more than one language and/or country element in a "chapter display" element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: fixed reading OGM-style chapter files with timestamps that don't have exactly three decimal places. Any number of decimal places between one and nine is now supported for nanosecond precision. * MKVToolNix GUI: chapter editor: added/fixed support for "chapter display" elements with multiple languages or countries. Build system changes * Qt 6: added support for building with Qt 6. `configure` will look for Qt 6 first and only continue looking for Qt 5 if Qt 6 isn't found or disabled via `--disable-qt6`. Qt 6 detection works by first looking for the `qmake6` binary. Its location can be specified with the `--with-qmake6=…` option. All other Qt 6 related facts (such as compiler & linker flags or the position of the other required tools such as `lconvert`, `moc`, `rcc` and `uic`) will be derived from the output generated by `qmake6`. Note that at this point Qt 6 is not yet supported for the cross-compilation build to Windows, nor is a static Qt 6 build supported yet. Note that the command line options `--enable-static-qt`, `--with-qt-pkg-config-modules` and `--without-qt-pkg-config` only apply to the Qt 5 and have no effect on Qt 6. * Qt 5: the options for specifying the position of the tools (`--with-moc=…`, `--with-rcc=…` and `--with-uic=…`) have been removed. Their position will now be derived from the output generated by `qmake`. * `configure`: completely disabling the GUI now requires passing both `--disable-qt6` and `--disable-qt` options. * Boost's multi-precision library is now required. * Boost v1.66 or newer is now required. Other changes * The Windows build is now using an updated version of the `file`/`magic` library for MIME type detection of attachments. This affects fonts whose MIME types will now be the current standard MIME types (e.g. `font/sfnt` or `font/ttf` for TrueType fonts). As this might pose problematic with older players that only support the legacy MIME type (e.g. `application/x-truetype-font`), a new option was added in the GUI's preferences to use the legacy MIME types instead of the current standard ones. This is off by default. Builds for other operating systems have already been using newer versions of the `file`/`magic` library for a long time.
mkvtoolnix: updated to 57.0.0 Version 57.0.0 "Till The End" 2021-05-22 New features and enhancements * mkvmerge: MP4 reader: added support for reading Dolby Vision from MP4 files (FourCCs `dvh1` and `dvhe`; configuration records `dvcC`, `dvvC` and `hvcE` will be converted into block addition mappings). * mkvmerge: SRT subtitles: mkvmerge now accepts empty text files with the extension `.srt` as SRT subtitle files, enabling the creation of empty SRT tracks. * mkvmerge, mkvextract: HEVC/H.265: access unit delimiter NALUs will no longer be discarded, neither during muxing nor during extraction. * MKVToolNix GUI: preferences: switched the order & wording of controls in the "enabling items" panel to make it clearer that certain controls define exceptions. Bug fixes * mkvmerge: HEVC/H.265 parser: several NALU types, notably the Dolby Vision-specific NALUs ("unspecified 62" and "unspecified 63") and suffix SEI NALUs, are now stored with the frame they belong to instead of with the next frame. * mkvmerge: HEVC/H.265 packetizer: fixed setting the track's default duration when reading HEVC/H.265 from Matroska files that don't have a default duration set. * mkvmerge: HEVC/H.265 packetizer: fixed the calculation of the duration of frames so that `SimpleBlock` elements can be used again instead of `BlockGroups` with `BlockDuration` elements. * mkvmerge, mkvextract: HEVC/H.265 parser: fixed issues with ordering & duplication of certain NALUs (parameter set & prefix SEI NALUs). * MKVToolNix GUI: multiplexer: when dragging & dropping files to the multiplexer, the source directory will be remembered as the "last open directory" again, causing subsequent uses of the "open file" dialog to start in the same directory. * mkvinfo: fixed the position of frames in block groups containing "block duration" elements in summary mode (e.g. for subtitle tracks). Build system changes * `configure` will now try to detect `libmagic` via `pkg-config` and fall back to including & linking directly if it cannot be found via `pkg-config`.
mkvtoolnix: updated to 56.1.0 Version 56.1.0 "My Friend" 2021-04-09 New features and enhancements * mkvmerge: AAC: added support for LOAS/LATM files with channel configuration indexes 9–21 (e.g. channel count 22.2 for index 13) according to Rec. ITU-R BS.1196-7 & ISO/IEC 23008-3:2019. Bug fixes * mkvmerge: HEVC/H.265 parser: fixed invalid memory access that could happen when reading certain types of HEVC data (e.g. with changing parameter sets mid-stream) from certain containers (e.g. Matroska). This bug was introduced in release 56.0.0. * mkvextract: AAC: mkvextract will now abort with an useful error message when the user tries to extract a track whose 'audio-specific config' element in `CodecPrivate` signals a number of channels of 7 or greater than 8 as that isn't supported by the ADTS format. Build system changes * configure: the `--enable-ubsan` option hasn't actually enabled anything since release 39.0.0.
mkvtoolnix: updated to 56.0.0 Version 56.0.0 "Strasbourg / St. Denis" 2021-04-05 New features and enhancements * mkvmerge, mkvpropedit: tags: the programs will no longer write tag elements that are mandatory and set to their default value (e.g. "tag language" set to `und` = undetermined). * mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: the programs will no longer write chapter elements that are mandatory and set to their default value (e.g. "chapter language" set to `eng` = English or "Chapter flag enabled" = 1). * mkvextract: chapters: mkvextract will no longer add a `ChapterLanguage` element set to `eng` to the generated XML content if the source file doesn't contain such an element. * MKVToolNix GUI: multiplexer: when using the "tab widget below the files & tracks" layout option for the track properties the elements in the "general options" tab will use six rows à four columns instead of twelve rows à two columns, greatly reducing the required height. Bug fixes * mkvmerge: AAC reader: fixed mkvmerge aborting to read AAC files bigger than 2 GB with a message about not being able to allocate memory. * mkvmerge: chapters: `ChapLanguageIETF` elements were still created when the option `--disable-language-ietf` was given after an option leading to the creation of chapters. Now the position doesn't matter anymore. * mkvmerge: chapters: when the option `--disable-language-ietf` is used, `ChapLanguageIETF` elements won't be written even when sources are read (Matroska files or XML chapters files) that do contain those elements. * mkvmerge: tags: when the option `--disable-language-ietf` is used, `TagLanguageIETF` elements won't be written. * mkvmerge: tags: mkvmerge will no longer write language elements for the track statistics tags it creates, making the effective language "undetermined" due to `und` being the default value for the legacy tag language element. * mkvmerge: tags: the XML tag parser will now validate all `<Simple>` children of `<Tag>` elements, not just the first for each `<Tag>`. * mkvmerge: tags: the XML tag parser now uses the spec-compliant `und` ("undetermined") as the default language for `<Simple>` tags instead of `eng`. * mkvmerge, mkvpropedit: tags: mkvmerge will no longer set the "target type" for track statistics tags (earlier it used `MOVIE`). The "target type value" will still be set to `50`. * mkvmerge, mkvextract: HEVC/H.265: both programs will now normalize the placement of VPS, SPS and PPS NALUs. Each key frame is prefixed with exactly one copy of the currently active parameter sets. This fixes certain classes of bugs related to splitting/appending. * mkvinfo: when compiled with newer versions of the `fmt` library, certain numbers were not output correctly (e.g. a track's audio sampling frequency of 48000 might be output as 48). * MKVToolNix GUI: multiplexer: deriving the track language from the file name will match languages case insensitively again (like versions prior to v55). * MKVToolNix GUI: multiplexer: under certain circumstances keyboard shortcuts such as `Ctrl+W` for closing the active tab or `Ctrl+R` for starting to multiplex ceased to work until the user did certain other things (such as switching to a different tool & back to the multiplexer or opening the multiplexer menu). This started with v54. * MKVToolNix GUI: chapter editor: the editor will no longer create empty `ChapterCountry` elements when adding a chapter name with no default country selected in the preferences. Build system changes * The bundled `fmt` library was updated to v7.1.3.
mkvtoolnix: updated to 55.0.0 Version 55.0.0 "Waiting For Space" Bug fixes * all programs, only on Windows: fixed checking existence of & creating directories with UNC paths such as `\\server\share\folder\file.mkv`. * all programs, only on Windows: implemented several workarounds for bugs in `std::filesystem` wrt. UNC paths. The effect of those bugs was that Blu-rays and DVDs couldn't be added from UNC paths. * mkvmerge, only on Windows: fixed non-ASCII characters getting mangled in the destination file name when splitting is active. * MKVToolNix GUI, only on Windows: fixed the GUI hanging when trying to browse for files on drives that don't actually exist. * MKVToolNix GUI, only on Windows: the GUI did not remember UNC paths as the "most recently used source directory" properly. * MKVToolNix GUI: only on Windows: when dragging & dropping files from other applications to MKVToolNix GUI the GUI will force the drop action to be a copy action, no matter which keys were pressed by the users. This prevents Windows Explorer from deleting the dragged file when the user presses shift while dropping the file onto MKVToolNix GUI. * MKVToolNix GUI, only on Windows: when using the file dialog for selecting a file name to save to (e.g. when browsing for the destination file name in the multiplexer or saving an attachment in the header editor) non-ASCII characters in the default file name were mangled. * MKVToolNix GUI: multiplexer: the user can now configure what to do when using the "Add source files" button independently of the setting for what happens when files are dragged & dropped onto the GUI. The same options are available, but they're distinct settings, allowing for different use cases. * MKVToolNix GUI: multiplexer: deriving the track language from file names doesn't use one big regular expression of all enabled languages anymore. Instead, the file name is split into parts on a list of characters (such as `.` or `(` and `)`; configurable in the preferences). This prevents the regular expression becoming too big for the regular expression library to handle when many languages are enabled. * MKVToolNix GUI: preferences: the language lists for "deriving track languages" and "enabling items by language" always included all the ISO 639-3 languages, even if those weren't enabled in the "often-used languages" pane. Other changes * mkvmerge, MKVToolNix GUI multiplexer: the functionality for changing the length of the NALU "size" field for AVC/H.264 and HEVC/H.265 tracks has been removed. The corresponding command-line option will continue to be recognized by mkvmerge as not to break existing third-party applications, but it won't actually do anything.
mkvtoolnix: updated to 54.0.0 Version 54.0.0 "F Maj Pixie" New features and enhancements * mkvmerge: added support for using ISO 639-3 language codes in IETF BF47 language tags. * mkvmerge: AC-3 parser: added support for byte-swapped AC-3 data. * mkvmerge: Matroska reader: for audio tracks that have the bit depth track header set mkvmerge will now keep that header even for codecs that don't require it for decoding. * mkvmerge: MPEG transport stream reader, PCM audio tracks: mkvmerge will now re-order the channels for 5.1, 7.0 and 7.1 channel tracks from the Blu-ray layout to the WAVEFORMATEXTENSIBLE layout expected in Matroska. * mkvmerge, mkvinfo, mkvpropedit, MKVToolNix GUI: added support for the following new track header elements: "hearing impaired" flag, "visual impaired" flag, "text descriptions" flag, "original" flag, "commentary" flag. * MKVToolNix GUI: added support for using ISO 639-3 language codes in IETF BF47 language tags. As there are several thousand of them, they're deactivated by default and must be activated in the preferences ("GUI" → "Often used selections" → "Languages"). * MKVToolNix GUI: multiplexer: when adding Blu-rays the user can select multiple playlists to add simultaneously in the "select playlist to add" dialog. * MKVToolNix GUI: multiplexer: the file name extensions "eb3" and "ec3" were added for Dolby Digital Plus & "mpl" for Dolby TrueHD in the file dialogs. * MKVToolNix GUI: multiplexer: when adding multiple files the dialog asking the user what to do with them has gained a new checkbox. If enabled, all files containing at least one video track will always be placed in newly created multiplex setting. * MKVToolNix GUI: multiplexer: added a menu entry in the "Multiplexer" for adding all files that are currently in the clipboard. Bug fixes * all: Windows: fixed compatibility with gettext 0.21 and newer on mingw. * all: Windows: fixed several of the programs having problems with certain Unicode characters (primarily emojis) in file names (e.g. mkvextract wrongfully complaining about an "invalid mode" or the GUI not being able to find parts of Blu-ray file structures). * mkvextract: AAC: fixed wrong channel mask field in the ADTS headers for 7.1 channel layouts. * mkvextract: h.265/HEVC extraction: if the first frame starts with the parameter sets (SPS, PPS & VPS), the ones from CodecPrivate aren't written and the ones from the first frame are kept. * mkvmerge: fixed the calculation of chapter timestamps read from NTSC DVDs. * MKVToolNix GUI: IETF BCP 47 language widget: the language combo box will now always contain the language code the user enters in the free-form field, even if it isn't in the list of often-used languages the user configured in the preferences. * MKVToolNix GUI: multiplexer: when browsing for the destination file name the default directory is now chosen according to the preferences regarding how the destination file name should be formed. For example, if the policy is set to "fixed output directory" then that output directory will be the one initially set when the directory selection dialog is opened. * MKVToolNix GUI: multiplexer: fixed the removal of appended source files if the "delete source files" end-of-job action is enabled. * MKVToolNix GUI: chapter editor: when importing chapters from DVDs the IETF BCP 47 language elements will be set, too, not just the legacy language elements. Build system changes * libEBML v1.4.2 and libMatroska v1.6.3 are now required. The optional, bundled copies of both libraries have been updated to those versions. This bump in requirements fixes several heap overflow bugs in libEBML. * MKVToolNix is now using the C++17 library feature "file system library" instead of Boost's "file system" and "system" libraries. For the GNU Compiler Collection (gcc) libstdc++ this means v8 or newer is required; for clang's libc++ it means v7 or newer. For macOS this means that provided disk image will only run on 10.15 "Catalina" or newer.
mkvtoolnix: updated to 53.0.0 Version 53.0.0 "Fool's Gold" New features and enhancements * mkvmerge: AVI reader: added support for reading the video aspect ratio from the video properties header (`vprp` chunk) if present and setting the display dimensions accordingly. * mkvmerge: MP4 reader: for h.264/AVC tracks that don't have an `AVCConfigurationBox` (`avcC` atom) in their sample description (`stsd`) atom or whose `avcC` atom contains no content `mkvmerge` will now re-derive the `AVCConfigurationBox` from the bitstream. * mkvextract: mkvextract will now check if any of the destination file names is the same as the source file name and abort with an error if that's the case. * MKVToolNix GUI: when querying the user for a file name for saving things (e.g. multiplexer settings or an attachment in the header editor), the automatically suggested file name will now be based on the situation-specific file names (e.g. the destination file name for multiplexer settings or the attachment's name when saving an attachment in the header editor) instead of the directory's name. * MKVToolNix GUI: multiplexer: when deriving track languages from file names the GUI will now select the right-most match instead of the left-most one. For example, "La.vie.en.rose.(fr).srt" will now be detected as French (fr) instead of English (en). * MKVToolNix GUI: preferences: the items in the "pre-defined …" lists can now be renamed by double-clicking with the mouse or pressing the F2 key. * Windows installer: the `bluray_dump` command-line utility will be installed into the `tools` sub-directory. `bluray_dump` can read & dump certain file types used on Blu-rays: `.mpls` playlists, `.clpi` clip information databases, `.bdmv` index files, `bdmt_….xml` disc library databases and `tnmt_….xml` track & chapter name databases. Bug fixes * mkvmerge: stretching chapter timestamps with `--chapter-sync` now works correctly with floating point values including fractions of floating point numbers (e.g. `12.3/45.67`). The tooltips in the GUI have been adjusted accordingly. * mkvmerge: MPEG 1/2 video handling: the "default duration" header field was often half the value it actually should be, resulting in all video frames having an explicit block duration with the correct value. This has been fixed with a patch by Tom Yan. * mkvmerge: MPEG 1/2 video handling: the data stored in `Codec private` and `Codec state` doesn't contain extensions other than sequence & sequence display extensions anymore. Fix by Tom Yan. * mkvmerge: tag handling: when remuxing a Matroska file with the `--no-track-tags`, existing `SOURCE_ID` track tags are now skipped, too. * MKVToolNix GUI: multiplexer: the drop-down boxes with pre-defined track names now follow the order set in the preferences instead of sorting the entries alphabetically.
mkvtoolnix: updated to 52.0.0 Version 52.0.0 "Secret For The Mad" New features and enhancements * MKVToolNix GUI: job queue: the maximum number of jobs to run concurrently can now be increased in the preferences. The default remains at 1. * MKVToolNix GUI: the GUI will now add a context-specific default extension to file names selected for saving on platforms that don't add one itself (e.g. GNOME). For example, when saving multiplexer settings the extension `.mtxcfg` will be added. * MKVToolNix GUI: added an option to the preferences for the window to stay on top of other windows. Bug fixes * mkvextract: h.265/HEVC extraction: the code for skipping extraction of prefix SEI NALUs in the first frame was skipping two bytes too few, resulting in broken processing of all following bytes. Patch by Mike Chen. * libEBML: the optional, bundled version of libEBML was updated to v1.4.1. Build system changes * libEBML v1.4.1 is now required due to a bug in libEBML that caused pointers to just-freed memory being returned to the caller under certain invalid data constellations, causing use-after-free errors in all of MKVToolNix's programs.
mkvtoolnix: updated to 51.0.0 Version 51.0.0 "I Wish" 2020-10-04 New features and enhancements * mkvmerge, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added missing support for UN M.49 regions for which there are no corresponding ISO 3166 alpha codes. This enables language tags such as `es-419` = Spanish in Latin America and the Caribbean. * MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying the current language & the corresponding edit button is now displayed like a link (depending on the theme: different color & underlined), making it clearer that not just the edit button can be clicked but the text, too. Bug fixes * mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due to certain data conditions. Found by fuzzying. * mkvmerge: AV1 packetizer: the duration of frames wasn't set properly. When appending AV1 IVF or OBU files this meant that the last frame of the Nth file and the first frame of file N+1 had the same timestamp. * mkvmerge: DTS reader: fixed handling of buffers with an odd length when byte-swapped DTS is detected so that mkvmerge doesn't abort with a failed assertion. Found by fuzzying. * mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will no longer claim to recognize data that looks like AVC or HEVC but with invalid video width/height values as that lead to failed assertions in libEBML later. Found by fuzzying. * mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught exceptions due to certain data constellations found by fuzzying. * mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero" error due to certain data conditions. Found by fuzzying. * mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the timestamp scaling factor being 0 after handling certain data constellations found by fuzzying. * mkvmerge: track statistics: fixed a "division by zero" error when the content's shorter than 1ms. Found by fuzzying. * mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an invalid memory access under certain data conditions. Found by fuzzying. * MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer open the language dialog when clicking on a disabled language display widget. * MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were not populated even when the language tag was valid and contained at a variant. * MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at least one of the other components (extended subtags, region, or variants) has something selected and "private use" is not empty, the GUI would claim this to be a valid tag, which it isn't. * MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes from "at least one entry selected" to "no entry selected", the input controls will be reset to their default state and not just disabled. Build system changes * `configure` now checks for the presence of the a system-wide installed copy of the JPCRE2 C++ wrapper library for the PCRE2 library and uses that if it's new enough (at least v10.32.1). If not, the bundled version will be used as a fallback.
mkvtoolnix: updated to 50.0.0 Version 50.0.0 "Awakenings" New feature: IETF BCP 47 language tags * I've written up a [nice FAQ entry](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. * all programs: Windows: all programs now support long file names on Windows 10 release 1604 if they're turned on in the registry. 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: mkvmerge will now read-buffer file I/O when probing text file formats which increases its speed significantly on Windows. * mkvmerge: MP4 reader: fixed handling of `tkhd` atoms of version 1. Build system changes * The PCRE2 library (the 8-bit variant) is now required.
mkvtoolnix: updated to 49.0.0 Version 49.0.0 "Sick Of Losing Soulmates" 2020-08-02 New features and enhancements * mkvmerge: added support for copying the new track header elements `BlockAddIDName`, `BlockAddIDType`, `BlockAddIDValue` and `BlockAddIDExtraData` from Matroska files if they exist. * mkvinfo: added support for the new track header elements `BlockAdditionMapping`, `BlockAddIDName`, BlockAddIDType`, `BlockAddIDValue` and `BlockAddIDExtraData`. * MKVToolNix GUI: multiplexer: the list of recent directories can now be edited in the preferences → "Multiplexer" → "Destination file name". * MKVToolNix GUI: preferences: the values in the various "predefined values" lists can now be re-ordered freely by dragging & dropping. Bug fixes * mkvmerge: Matroska reader: when reading tracks (e.g. a subtitle track) from Matroska files with their `default track` flag set to `yes`, and when overwriting those via the command line to `no`, `mkvmerge` would not promote additional tracks of the same type from other files (e.g. another subtitle track from an SRT file). * mkvmerge: SRT reader: empty lines inside entries were doubled. * mkvmerge: subtitles: when calculating the rounded duration of each entry the error from rounding the corresponding timestamp will be taken into account. * mkvextract: SSA/ASS extraction: mkvextract is no longer inserting empty lines before the `Dialogue:` lines. * mkvextract: USF subtitles: start & end timestamps were too high by a factor of 1.000.000. * MKVToolNix: info tool: when saving to a text file the checkbox "Save as default for saving output to text files" did nothing. * MKVToolNix: info tool: when saving to a text file in "all elements in a tree-like structure" mode, the GUI always stopped at the first cluster regardless of the setting of the "verbosity" option. * MKVToolNix GUI: preferences: when tooltips were disabled the dialogs for adding new entries to the various "predefined values" lists were missing their texts. * Windows installer: the images are shown again. * configure: fixed detection of QtDBus. Build system changes * libMatroska v1.6.1 is now required. The bundled version has been updated to that version.
mkvtoolnix: updated to 48.0.0 Version 48.0.0 "Sick Of Losing Soulmates" 2020-06-27 New features and enhancements * mkvmerge: AC-3: file identification will report AC-3 tracks encoded in Dolby Surround EX as codec "AC-3 Dolby Surround EX". * MKVToolNix GUI: multiplexer: on new installations the GUI will now recognize all known ISO 639-2 language codes in file names by default instead of only the top 100 of languages by native speakers. * MKVToolNix GUI: multiplexer: on new installations the list of "often used languages" will by default only contain certain agnostic ones ("multiple languages", "no linguistic content", "reserved for local use", "uncoded languages"), "English" and the default user interface language. The "list of spoken languages by native speaks" isn't used anymore. * MKVToolNix GUI: header editor: added an option to remove all attachments to the tree context menu. * MKVToolNix GUI: while the GUI is running it will remember the last page that was selected when the preferences dialog is closed. Upon re-opening the preferences that page will be selected by default. Bug fixes * mkvmerge: fixed a segmentation fault when exiting prematurely due to write errors such as the destination having run out of space. * mkvmerge: DTS: fixed wrong channel count for DTS tracks with XCh extensions. * mkvmerge: MPEG TS reader: fixed detecting h.264/AVC and h.265/HEVC tracks that consist of only a single frame. * mkvmerge: MPEG TS reader: fixed handling of unbounded PES sizes for tracks that consist of only a single PES packet. * mkvmerge: MPEG TS reader: PGS subtitle tracks are now exempt from the "detect bogus subtitle timestamps" heuristic which could lead to some PGS subtitles not being timestamped correctly. Symptoms were that they were shown at the wrong time or that they were shown indefinitely. * mkvmerge: MPEG TS reader: when reading MPLS playlists the start timestamps of a play items were handled wrong: all the timestamps of packets read were compared to that start timestamp, dropping those packets whose timestamps were smaller than the play item's start timestamp. The correct behavior is to accept all packets as soon as the first one with a timestamp equal to or larger than the play item's start timestamp is encountered. This could result in PGS subtitle entries located right at the start of the play item being garbled/lost as they consist of multiple PES packets for which some timestamps are often slightly smaller. * mkvmerge: MPEG TS reader: when reading MPLS playlists mkvmerge will no longer read the whole M2TS files they reference, processing only the packets lying inside the timestamp range given by the playlists's play item's start & end timestamps. Instead mkvmerge will use the index information present in corresponding clip information (CLPI) files in order to seek to the nearest file position of the play item's start timestamp. Additionally mkvmerge will simply stop processing a file once the end timestamp is seen. This change greatly speeds up processing files from which only small portions must be read. * mkvmerge: WavPack: fixed support for files created by v5 of the program. Checksums, DSD audio data and non-standard sampling rates are handled correctly. Patch by David Bryant. * MKVToolNix GUI: multiplexer: fixed the cursor being positioned wrong after entering or pasting characters that aren't allowed in file names into the "destination file" control. Build system changes * libEBML v1.4.0 and libMatroska v1.6.0 are now required. Other changes * The source code repository's main development branch was renamed to `main`.
mkvtoolnix: updated to 47.0.0 Version 47.0.0 "Black Flag" New features and enhancements * mkvmerge: chapters: mkvmerge can now read chapters from DVDs if the user specifies the path to a DVD folder structure via the `--chapters …` parameter. By default chapters from the first title will be imported. This can be changed by append `:<title number>` to the file/directory name in the `--chapters …` argument, e.g. `--chapters /srv/dvds/BigBuckBunny/VIDEO_TS:3` This feature requires mkvmerge to have been built with the `libdvdread` library. * mkvmerge: added `--engage append_and_split_flac` that enables mkvmerge to append and split FLAC tracks, restoring pre-v45 behavior. The resulting tracks will be broken: the official FLAC tools will not be able to decode them and seeking will not work as expected. * MKVToolNix GUI: multiplexer: added support for mkvmerge's new support for reading chapters from DVDs if both have been built with the `libdvdread` library. * MKVToolNix GUI: multiplexer: when deriving languages from file names the GUI will now look for simplified language names instead of the full ones (e.g. instead of looking for "Greek, Modern (1453-)" it would simply look for "Greek"). * MKVToolNix GUI: multiplexer: the options in the "additional command-line options" dialog are now sorted alphabetically. Additionally the `--append-mode` option has been added as one of the only missing global options. * MKVToolNix GUI: chapter editor: the chapter editor can now read chapters from DVDs if MKVToolNix has been build with the `libdvdread` library. * MKVToolNix GUI: header editor: added an option in the preferences for displaying all date & time values in UTC instead of the local time zone. Bug fixes * all: fixed a crash when using the `MTX_LOGGER=file` syntax for logging debug messages without specifying a file name to log to. It will now log to a file called `mkvtoolnix-debug.log` in the system's default temporary directory, as initially intended. Build system changes * The [`libdvdread`](https://www.videolan.org/developers/libdvdnav.html) library will be used if found via `pkg-config`. If it is found, support for reading chapters from DVDs will be enabled in `mkvmerge` and the MKVToolNix GUI. * Boost's Date/Time, Lexical Cast, Range, Range Adaptors, Tri-Bool, Variant libraries are not used anymore. * MKVToolNix now requires a C++ compiler & standard library that support the following features of the C++17 standard: "`std::variant`", "`std::gcd`". For the GNU Compiler Collection (gcc) this means v7 or newer; for clang it means v4 or newer — the same versions required by earlier MKVToolNix versions. * MKVToolNix now requires version 6.1.0 of fmtlib or later for the `fmt::to_string` function and bugfixes to the formatting of floating point numbers. If a system-wide version is installed that's older, the bundled copy will be used. * The bundled version of fmtlib has been updated to release 6.2.1.
mkvtoolnix: updated to 46.0.0 Version 46.0.0 "No Deeper Escape" New features and enhancements * mkvmerge: when splitting, the placeholder `%c` can be used in the destination file name. It'll be replaced by the name of the first chapter in the file. * mkvmerge: when reading MPLS playlists mkvmerge will include a tag named `SOURCE_ID` in the track's statistics tags that conveys the fact that the source was a Blu-ray and what the track's ID was in the source container. When reading Matroska file existing `SOURCE_ID` tags will be kept. The format used is the same format MakeMKV uses. * mkvmerge: for audio-only files mkvmerge will now write a cue entry every 500ms instead of every 2s. * MKVToolNix GUI: job actions: split up the option "execute when the job finishes successfully or with warnings" into two separate options: "…when finishes successfully" and "…when exits with warnings". Bug fixes * mkvmerge: Matroska reader: when regenerating UIDs for chapters mkvmerge will now fix referencing tag chapter UID targets to have the same values. * mkvmerge: MP4 reader: fixed a crash that could potentially happen while trying to identify H.265/HEVC tracks. * mkvmerge: MP4 reader: when reading H.265/HEVC tracks without a frame offset table (`ctts` atom) present, mkvmerge did not parse the `hevcC` structure correctly in certain cases, causing no video frames to be output at all or the output not being playable. * mkvmerge: MPLS handling/MPEG TS reader: timestamp restrictions as given in an MPLS file were only honored for the first play item, not for subsequent play items. For those play items the whole referenced file was always copied. * mkvmerge: MPLS handling/MPEG TS reader: under certain circumstances mkvmerge copied one frame too many before switching to the next play item. * mkvmerge: for audio-only files cues will only be created for I frames (important for e.g. TrueHD where decoding can only start on a sync frame). * MKVToolNix GUI: fixed a crash that happened when closing the preferences after having closed at least one multiplexer tab. * MKVToolNix GUI: macOS: changed the default of the "elide tab header labels" feature introduced in v45 from "no" to "yes" to mirror how versions before v45 behaved on macOS.
mkvtoolnix: updated to 45.0.0 Version 45.0.0 "Heaven in Pennies" New features and enhancements * mkvmerge: mkvmerge has never supported appending & splitting FLAC audio tracks. mkvmerge will now emit error messages when the user attempts either instead of continuing and creating invalid FLAC tracks. * MKVToolNix GUI: added an option in the preferences to turn on eliding text on tab headers. If enabled, tab names will be shortened so that all tab headers fit into the window's width. * MKVToolNix GUI: added an option in the preferences to disable all tooltips. * MKVToolNix GUI: Windows: debug output sent via Qt's to Windows' debugging facility will use a more verbose message format including the application name, making it easier to filter for in SysInternal's "Debug View" utility. * MKVToolNix GUI: multiplexer: if the file identification fails due to a JSON parser error, the output generated by `mkvmerge` will be output via Qt's debugging facility (viewable with SysInternal's "Debug View" utility on Windows; on other systems it's output on `STDERR`) allowing insight into what's gone wrong. * MKVToolNix GUI: multiplexer: if an error occurs during file identification, the name of the processed file will be mentioned in the error message. * MKVToolNix GUI: multiplexer: if an error occurs during identification of multiple files, the GUI will ask the user whether to continue or abort the identification process. * MKVToolNix GUI: job queue: added an option in the preferences for removing completed jobs when exiting the program depending on their status. Bug fixes * mkvmerge: H.265/HEVC packetizer: fixed changing the NALU size length, it was using the wrong offset into the `hevcC` structure. * mkvmerge: MP4 reader: fixed calculating the duration of video tracks that only contain a single frame. * mkvmerge: MP4 reader: if there's no frame offset table (`ctts` atom) present for H.265/HEVC video tracks, mkvmerge will determine the timestamp order itself instead of relying on the timestamps in the MP4 being in the presentation order required by Matroska. * mkvpropedit: Windows: mkvpropedit wasn't caching when reading the file to modify, slowing down operations such as adding track statistics tags considerably. * MKVToolNix GUI: multiplexer: when using the title as part of the destination file name (both automatically as well as using the "copy title to destination file name" function) all characters that aren't valid in a file name are replaced by hyphens. * MKVToolNix GUI: multiplexer: the "copy title to destination file name" function was broken when the "make file name unique" option in the preferences was disabled. In that case the file base name was removed regardless of what the title was set to at the time. * MKVToolNix GUI: multiplexer: when using the "show command line" menu option on Windows the path to the `mkvmerge` executable was shown with forward slashes instead of backslashes. This is a purely cosmetic fix as Windows supports both forward and backward slashes. * MKVToolNix GUI: multiplexer: when adding Blu-ray playlists the GUI used to only look for the English version of the disc library information (title & cover images). Now the GUI will present all disc library entries in the "select playlist to add" dialog & let the user chose which one to use (if any). * MKVToolNix GUI: multiplexer, info tool: fixed the "warn before overwriting" check wrt. jobs creating the same file.
mkvtoolnix: updated to 44.0.0 Version 44.0.0 "Domino" New features and enhancements * MKVToolNix GUI: header editor: the attachments can now be reordered via drag & drop. Bug fixes * mkvmerge: Matroska reader: when encountering certain errors in the track headers such as the codec ID not being present mkvmerge will simply skip those tracks instead of exiting with an error. * MKVToolNix GUI: multiplexer: the "ask before overwriting" functionality did not look for the correct file names when splitting was active.
mkvtoolnix: updated to 43.0.0 Version 43.0.0 "The Quartermaster": New features and enhancements * MKVToolNix GUI: using one of the command line options `--info`, `--edit-headers` or `--edit-chapters` will make the GUI select the corresponding tool on startup even if no further file name is given. * MKVToolNix GUI: multiplexer: added a setting in the preferences for changing the location of the MediaInfo executable for when the user accidentally selected the wrong one. Bug fixes * mkvmerge: AVC/h.264 parser: the order of the NALUs before each key frame was sometimes wrong: mkvmerge wrote SPS & PPS after SEI NALUs. Now SPS & PPS NALUs are always written before the other NALUs. Patch by Torsten Hauska. * mkvmerge: AVC/h.264 parser: when additional SPS or PPS NALUs (with IDs that haven't been seen so far) are found mid-stream, mkvmerge will prepend all following key frames with all current valid SPS & PPS NALUs (just like when SPS & PPS NALUs are overwritten mid-stream). * mkvmerge: MPEG TS reader: fixed detection of MPEG-1/2 video tracks consisting of very few frames. * mkvmerge: Ogg Opus reader: fixed the handling of Ogg Opus streams that contain a just one Ogg page (`mkvmerge` aborted with an exception). * MKVToolNix GUI: multiplexer: dragging & dropping XML files with chapters or tags to the GUI's window was broken in v42. Instead of adding the file names to the appropriate input boxes the GUI was running mkvmerge for file identification purposes which then failed.
mkvtoolnix: updated to 42.0.0 Version 42.0.0 "Overtime": New features and enhancements * mkvmerge: added an option for creating byte-identical files: `--deterministic <seed>`. * mkvmerge: Matroska reader: mkvmerge will remove the `icpf` atom headers if they're present in frames read from Matroska files. * mkvmerge: MP4 reader: ALAC tracks: the number of channels, sampling frequency and bit depth are now taken from the bitstream in order to fix bogus values on the container level. * mkvpropedit: when changing track UIDs the referring elements in existing chapters & tags will be updated automatically, too. * mkvinfo: when the option `-p`/`--hex-positions` is used, element positions will be output regardless of the verbosity level. * mkvinfo: added the option `-P`/`--positions` for showing the position of each element in decimal regardless of the verbosity level used. * mkvinfo: added the option `-o`/`--continue` for continuing processing when the first cluster is encountered regardless of the verbosity level used. * mkvinfo: added the option `-a`/`--all` for outputting all sub-elements (even cues & seek head entries) and not stopping at the first cluster regardless of the verbosity level used. * MKVToolNix GUI: multiplexer: added an option in the preferences for disabling adding cover images from Blu-ray discs. * MKVToolNix GUI: multiplexer: added mkvmerge's new `--deterministic` option in the "additional command-line options" dialog. * MKVToolNix GUI: header editor:: when changing track UIDs the referring elements in existing chapters & tags will be updated automatically, too. Bug fixes * mkvmerge: HEVC ES parser: fixed a bug in the slice parser calculating the size of a field which in turn could have led to the slice's type being read wrong. * mkvmerge: Matroska reader: fixed a segmentation fault when trying to read a file that uses header removal compression but no removed bytes are present in the track headers. * mkvmerge: MPEG elementary stream parser: fixed an invalid memory access and use of uninitialized memory that could happen under certain circumstances. * mkvmerge: RealMedia reader: fixed a division by zero when all audio timestamps were zero. * mkvmerge: RealMedia reader: fixed an invalid memory access in the video frame assembly code triggered by invalid data in the file. Build system changes * `std::optional` (C++17 feature) is now used instead of `boost::optional`. * `std::regex` is now used instead of `boost::regex`. Other changes * New man page translations into French, Italian, Russian and Chinese Traditional have been added.
mkvtoolnix: updated to 41.0.0 Version 41.0.0 "Smarra" New features and enhancements * mkvmerge: Matroska reader: Vorbis tracks: stream comments (aka Vorbis comments) will be converted to Matroska attachments (for cover arts) and Matroska track tags (for other comments). Additionally the stream comments will be removed from Vorbis headers. * mkvmerge: MP4 reader: added support for reading Opus audio from MP4 files. * mkvmerge: MP4 reader: added support for reading VP9 video from MP4 files. * mkvmerge: Ogg reader: Vorbis, Opus & VP8 streams: stream comments (aka Vorbis comments) will be converted to Matroska attachments (for cover arts) and Matroska track tags (for other comments). Additionally the stream comments will be removed from Vorbis headers. * mkvmerge: WAV reader: added support for reading RF64 files. * MKVToolNix GUI: multiplexer: the list of predefined track names is now split up into three lists, one for each track type (audio, video & subtitles). * MKVToolNix GUI: multiplexer: when trying to add thumbnails for a Blu-ray the GUI will determine the thumbnail's pixel size from the thumbnail files if the XML file doesn't contain that information. This works for JPEG and PNG files. * MKVToolNix GUI: general: line edits & combo boxes will now have a "clear text" button appear whenever they're not empty. * MKVToolNix GUI: update check: the dialog showing the latest news & version information states explicitly where the links take the user (the MKVToolNix `NEWS.md` file and YouTube respectively). Bug fixes * mkvmerge: Matroska reader: mkvmerge did not copy the codec's private data when reading WavPack from Matroska files. * mkvmerge: MPLS handling: re-added caching when using MPLS playlists as input files. * mkvmerge: MPEG TS reader: when reading an MPLS playlist, the calculation of the minimum timestamp to use for shifting all output timestamps to zero was wrong. It was wrongfully considering timestamps from packets it would not copy due to the MPLS's timestamp restrictions. This could lead to the first timestamps in the output file being quite large, e.g. more than a couple of minutes, causing sync problems when multiplexing together with other files. * MKVToolNix GUI: multiplexer: the automatic switch between aspect ratio & display width/height wasn't reflected in the configuration generated for `mkvmerge`. The user had to change between the two settings manually * MKVToolNix GUI: multiplexer: the progress dialog shown when scanning a Blu-ray wasn't closed properly in certain situations. * MKVToolNix GUI: general: the configured font was not applied to a lot of controls (e.g. the file & track lists or the menu entries) on application startup. Instead the user had to open & close the preferences in order for the font to be applied to all controls.
mkvtoolnix: updated to 40.0.0 Version 40.0.0 "Old Town Road + Pony": New features and enhancements * mkvmerge: MP4 reader: added support for BMP covert art images. * MKVToolNix GUI: multiplexer: added an option to disable deriving the destination file name from the file title. * MKVToolNix GUI: multiplexer: the content of the "stereoscopy" combo box has been simplified making the box's minimum width much smaller, allowing the user to resize the GUI's whole window to a much smaller width. * MKVToolNix GUI: multiplexer: whenever the user changes the "aspect ratio" or "display dimensions" controls, the corresponding radio button will be activated automatically. * MKVToolNix GUI: Windows: added a setting in the preferences to disable the GUI's dark color mode even if Windows's app color mode is set to dark. * MKVToolNix GUI: Windows: replaced the dark mode introduced in v39 with another dark mode that's less wasteful with space between widgets. Bug fixes * mkvmerge: MP4 reader: mkvmerge was reading eight bytes too many for cover art images. This could cause file identification to fail when the cover art was located at the end of the MP4 file. Even if it succeeded, this meant too much data present in the attachment. * mkvmerge: MP4 reader: covert art images with unknown image types will be skipped instead of treated as JPEG images. Build system changes * Qt 5.9.0 or newer is now required for building MKVToolNix GUI.
mkvtoolnix: updated to 39.0.0 Version 39.0.0 "In The Waiting Line": New features and enhancements * mkvmerge: Blu-ray: when reading an MPLS playlist mkvmerge will look up and use chapter names from the Blu-ray's "track/chapter names" meta data if it exists. * mkvmerge: MP4 reader: if present, cover art images (the `meta.udta.ilist.covr` atom) will be converted into attachments. * MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the disc library meta data will be parsed, and the biggest thumbnail, if present, will be added as a new attachment with name `cover.jpg` (extension depends on thumbnail's extension). * MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the title from the disc library meta data will be set as the new file title if the disc library meta data contains one & no title has been set yet. * MKVToolNix GUI: multiplexer: the automatically generated destination file name will now be based on the file title if one is set at that point. This works in conjunction with the title being said from the Blu-ray disc library meta data. * MKVToolNix GUI: chapter editor: when reading chapters from an MPLS playlist the GUI will look up and use chapter names from the Blu-ray's "track/chapter names" meta data if it exists. Part of the implementation of 2486. * MKVToolNix GUI: Windows: added a dark mode that's enabled when Windows 10's dark mode is turned on. * translations: added a Bulgarian translation of the programs & the man pages by Симеон Цветков (see `AUTHORS`). Bug fixes * mkvmerge: attachments without a file name won't be ignored anymore. * MKVToolNix GUI: header editor: attachments with an empty name element will be shown as `<unnamed>` as originally intended. * Linux AppImage: the AppImage will no longer change directories before running the desired executable allow the use of relative file names. Build system changes * MKVToolNix now requires a C++ compiler that supports the following features of the C++17 standard: "`[[maybe_unused]]` attribute", "nested namespace definition", "structured bindings". For the GNU Compiler Collection (gcc) this means v7 or newer; for clang it means v4 or newer. * Boost 1.60.0 or newer is now required.
mkvtoolnix: updated to 38.0.0 Version 38.0.0 "The Silent Type": New features and enhancements * mkvextract: chapters, tags & cue sheets will now be written to standard output if no file name is given, same as if `-` is given as the file name. * MKVToolNix GUI: job queue: added a new setting in the preferences' "job queue & job status" section that, when enabled, will cause the GUI to remove all output files created by jobs that are either aborted by the user or that end in an error. Bug fixes * all programs: macOS: fixed file access if the file name (including all path components) contains any Unicode character where NFC (Normalization Form Canonical Composed) and NFD (Normalization Form Canonical Decomposed) differ, e.g. German Umlauts. * mkvmerge: when splitting by chapters the user can now split by chapters coming from one of the appended files, too. * mkvmerge: AAC reader: fixed reading codec parameters (channels, sample rate) if a file starts with garbage that includes valid-but-bogus AAC headers. * MKVToolNix GUI: Hebrew was added to the list of often-used languages so that it can be selected by default again. * MKVToolNix GUI: when updating the GUI's settings from v37.0.0 or older, the GUI checks if the list of often-used languages equals the built-in list from v36.0.0. If it does, it will be updated to the built-in list changed in v37.0.0. Build system changes * Boost's Operators header library is now required.
mkvtoolnix: updated to 37.0.0 Version 37.0.0 "Leave It" New features and enhancements * MKVToolNix GUI: the list of often used languages now contains those from Wikipedia's "List of languages by native speakers" by default. Also by default only those languages will be shown in the language drop-down boxes. Bug fixes * MKVToolNix GUI: multiplexer: fixed a bug in the "make destination file names unique" logic that caused an existing number-in-parenthesis at the end of the file base name to be removed in certain situations (e.g. when the first added file was named `m (3).mkv` and both `m (3) (1).mkv` and `m (3) (2).mkv` existed already, the GUI was suddenly use `m.mkv` instead of `m (3) (3).mkv`). * MKVToolNix GUI: on Windows the GUI is built with a slightly older version of the Qt library again (5.12.4). The Qt version used in release v36.0.0, v5.13.0, lead to crashes when doing certain things such as selecting multiple tracks in the multiplexer.
mkvtoolnix: updated to 36.0.0 Version 36.0.0 "Is That Jazz?" New features and enhancements * mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and H.265/HEVC tracks whose pixel dimensions differ. Bug fixes * source code: fixed building with Boost 1.71.0. * all: fixed the spelling of the H.264 & H.265 codec names. * mkvmerge: Blu-ray MPLS handling: mkvmerge will now find corresponding M2TS files even if the `clip_codec_identifier` playlist item field is not set to `M2TS` in the MPLS file. * mkvmerge: fixed handling of text files that use both DOS-style and Unix-style line endings resulting in problems such as text subtitle files not being parsed correctly.
mkvtoolnix: updated to 35.0.0 Version 35.0.0 "All The Love In The World" New features and enhancements * mkvmerge: JSON identification: the "codec name" track property will be output as `codec_name`. The JSON schema has been bumped to v12 for this change. * MKVToolNix GUI: job queue: added a new type of action to execute after job completion: deleting source files for of multiplexer jobs. As this is a destructive operation, the action is disabled by default. Bug fixes * mkvmerge: the "codec name" track property wasn't copied from Matroska files. * MKVToolNix GUI: multiplexer: Windows: clearing the destination file name will reset the tab name to "\<No destination file\>" again. * MKVToolNix GUI: multiplexer: the file types were not re-translated if the UI language was changed.
mkvtoolnix: updated to 34.0.0 Version 34.0.0 "Sight and Seen": Bug fixes * mkvmerge: all subtitle frames are now treated as key frames in order to fix wrong data in source files. * mkvmerge: AV1: fixed frame timestamp calculation when reading bitstreams that lack timing information from IVF files. * mkvmerge: Matroska reader: fixed an infinite loop that could happen with large video frames and applied timestamp files due to too much data being buffered at the wrong time.
mkvtoolnix: updated to 33.1.0 Version 33.1.0 "Primrose" Bug fixes * MKVToolNix GUI: multiplexer: Windows: using UNC paths (e.g. \\server\Videos) when the option "automatically set the destination file name" was set in the preferences, the GUI would create a destination file name with forward slashes (e.g. //server/Videos/outputfile.mkv), a syntax not supported by mkvmerge. * build system: the programs were accidentally built without stack protection (-fstack-protector-strong) on recent versions of gcc and clang. Version 33.0.0 "A Little Bit of Madness" Bug fixes * mkvinfo: when using the --size option, mkvinfo will now report the correctly if an element has an unknown size. * MKVToolNix GUI: info tool: clusters with an unknown size will now be read and displayed correctly. * MKVToolNix GUI: multiplexer: Windows: trying to open Blu-ray index or playlist files failed when the path to the files contained symbolic links (e.g. when mounting a drive in a sub-folder via Windows' disk management utility). * MKVToolNix GUI: multiplexer: if a destination file names ends with a number in parenthesis (e.g. a year such as "(2017)"), that number will not be stripped anymore during the process of ensuring the destination file name is unique. Only those suffixes added automatically in prior attempts to make the file name unique will be removed. * MKVToolNix GUI: multiplexer: Windows: the GUI will let the user change the drive letter part of the destination file name freely again and only verify its validity right before starting to mux/adding to the job queue. Before it tried to force that into something valid, often resulting in unintentional paths (such as "C:\users\…\DC\files\…").
mkvtoolnix: updated to 32.0.0 Version 32.0.0 "Astral Progressions": New features and enhancements * mkvinfo: when sizes are output the size of the element's data portion is output in addition to the element's total size. * MKVToolNix GUI: info tool: the element's data portion is shown as an extra column. * MKVToolNix GUI: multiplexer: added column "Delay" to the track list containing the additional delay to apply during multiplexing. Bug fixes * all: fixed handling of Unicode code points > U+FFFF. * mkvmerge: Windows: mkvmerge was crashing with an exception when trying to identify certain files that can be used on Blu-rays (such as MPEG transport streams of MPLS play list files) and when the file name was given as a UNC path (e.g. `\\servername\sharename\path\to\file.m2ts`). The GUI emitted errors such as "the JSON output could not be parsed" in that case. * MKVToolNix GUI: the portable mode wasn't detected correctly when the current working directory the GUI was started from wasn't the directory the GUI's executable file was located it. Examples for when this is the case are Windows' "send to" or "open with" functions. * MKVToolNix GUI: multiplexer: using button to change the current destination directory to one of the recently used ones did not update the file name according to the "make file name unique" setting. * MKVToolNix GUI: multiplexer: the function "set destination file name from selected file's name" will now only change the destination file's name but not its path. Build system changes * libEBML v1.3.7 and libMatroska 1.5.0 are now required as they fix their handling of Unicode code points > U+FFFF.
mkvtoolnix: fix buildling on macOS; remove DRAKE_FLAGS because current rake automatically chosses number of jobs
mkvtoolnix: updated to 31.0.0 Version 31.0.0 "Dolores In A Shoestand": New features and enhancements * all programs: added a new option --abort-on-warnings that will cause the program to abort after it has emitted the first warning, similar to how it aborts after the first error. * mkvmerge, mkvextract: when closing files that were opened for writing, cached data will not be flushed to storage automatically anymore. This reverts the workaround implemented for 2469. A new option was added to both programs (--flush-on-close) that re-enables flushing for people who are affected by data loss such as described in 2469. The reason is that automatic flushing causes long delays in processing queues when the output by mkvmerge/mkvextract isn't the final product but just an intermediate result to be processed further. * MKVToolNix GUI: multiplexer: the dialog previewing different character sets for text subtitles will now keep the position of the displayed text when switching between character sets. Bug fixes * mkvmerge: AVI reader: using DV type 1 AVIs will now result in an unsupported file type being reported (as the underlying AVI library doesn't support them) instead of crashing mkvmerge. * mkvmerge: HEVC: the height of interlaced streams will now be set correctly to the height of the full frame instead of the height of a single interlaced field. * mkvmerge: MP4 reader: edit lists consisting solely of elements that mkvmerge doesn't support (such as dwells) are simply ignored. Before no data was read for such tracks at all. * mkvmerge: text subtitles: entries with an explicit duration of 0ms will now be handled correctly: the 0ms duration will be stored in Matroska instead of the difference between the current and the following entry. * MKVToolNix GUI: multiplexer, chapter editor: fixed drag & drop handling with Qt 5.12.0 and newer. * MKVToolNix GUI: multiplexer: the GUI did not clean up temporary files created when running mkvmerge. Build system changes * Qt 5.4.0 or newer has required (up from 5.3.0) since version 30.0.0; I just forgot to include this entry.
mkvtoolnix: updated to 30.1.0 Version 30.1.0 "Forever And More": Bug fixes * build system: fixed building on non-UTF-8 locales. * MKVToolNix GUI: multiplexer: implemented a workaround for drag & drop not working on macOS with Qt 5.12 due to a bug in Qt 5.12. * MKVToolNix GUI: chapter editor: when opening a Matroska/WebM file that doesn't contain chapters and later saving chapters back to them, the editor was truncating the file down to a couple of KB in size.
mkvtoolnix: updated to 30.0.0 Version 30.0.0 "Interstellar" New features and enhancements * mkvextract: WAV extractor: mkvextract will now write W64 files instead of WAV files if the file name extension is `.w64` or if the final file size is bigger than 4 GB, the file size limit for WAV files. * MKVToolNix GUI: multiplexer: a new button was added next to the "destination file" controls. Clicking it shows a menu with the ten most recently used output directories. Selecting one of them will change the destination file to the selected directory keeping the file name. * MKVToolNix GUI: multiplexer (preferences): the ten most recently used values for the "relative output directory" and "fixed output directory" settings are now saved. The corresponding settings have been changed into combo boxes allowing quick access to those recent values. * MKVToolNix GUI: multiplexer (preferences): the predefined split sizes and durations can now be customized in the preferences. * MKVToolNix GUI: chapter editor: added an option in the "Chapter editor" menu for appending chapters from an existing file to the currently open editor tab. * MKVToolNix GUI: chapter editor: added an action in the context menu for copying the selected entry and all of its children to another open editor tab. Bug fixes * mkvmerge: all files opened for writing will now be flushed once before they're closed. This ensures the operating system actually writes all cached data to disk preventing data loss in certain situations such as power outages or buggy drivers in combination with suspending the computer. * mkvmerge: AAC: under certain conditions 8 channel audio files were taken for 7 channel ones. * MKVToolNix GUI: multiplexer: removing a file added as an "additional part" will no longer cause a crash. * source code: fixed compilation with Boost 1.69.0 after API-breaking change to the `boost::tribool` class.
revbump for boost 1.69.0
mkvtoolnix: Fix runtime crash on SunOS. Bump PKGREVISION.
mkvtoolnix: updated to 29.0.0 Version 29.0.0 "Like It Or Not" Important notes * The string formatting library used was switched from boost::format to [fmt](http://fmtlib.net/). See the section "Build system changes" for details. New features and enhancements * MKVToolNix GUI: added an option in the preferences for disabling automatic scaling for high DPI displays. * MKVToolNix GUI: the GUI will now prevent the system from going to sleep while the job queue is running. This feature is implemented for macOS, Windows and Linux/Unix systems where the org.freedesktop.login1.Manager D-Bus interface is available. Bug fixes * mkvmerge: chapter generation: the start timestamps of chapters generated in intervals was wrong for files whose smallest video timestamp was bigger than 0. * mkvmerge: MP4 reader: fixed handling of atoms whose size exceeds the parent atom's size. * mkvmerge, MKVToolNix GUI's chapter editor: the chapter name template will now also be used when reading Ogg-style chapter files with empty chapter names. * mkvextract: AAC: mkvextract will now write the program config element (PCE) before the first AAC raw data packet if the PCE is present in the AudioSpecificConfig structure in the Codec Private Matroska element. The PCE carries vital information about the number of channels and is required in certain cases. * mkvpropedit, MKVToolNix GUI's header editor: in situations when a one-byte space must be covered by a new EBML void element the following element must be moved up instead. If that moved element is a cluster, the corresponding cue entries will now be updated to reflect the cluster's new position. * MKVToolNix GUI: Windows: the application manifest is now included properly so that Windows actually recognizes it. Build system changes * Qt's D-Bus implementation is now required for building on systems other than macOS and Windows, * The boost::format library is not used anymore. * The [fmt library](http://fmtlib.net/) is now required. Versions 3 and newer are supported. As not all Linux distributions include packages for the library, its release 5.2.1 comes bundled with MKVToolNix. The configure script will check for a system version of the library and use it if present and recent enough. Otherwise it will fall back to the bundled version and link that statically.
Pullup ticket #5855 - requested by maya multimedia/mkvtoolnix: security fix Revisions pulled up: - multimedia/mkvtoolnix/Makefile 1.116-1.117 - multimedia/mkvtoolnix/distinfo 1.55-1.56 --- Module Name: pkgsrc Committed By: adam Date: Wed Oct 24 10:55:07 UTC 2018 Modified Files: pkgsrc/multimedia/mkvtoolnix: Makefile distinfo Log Message: mkvtoolnix: updated to 28.1.0 Version 28.1.0 "Morning Child": Bug fixes * mkvmerge: AV1 parser: fixed an error in the sequence header parser if neither the reduced_still_picture_header nor the frame_id_numbers_present_flag is set. * mkvmerge: AV1 parser: when creating the av1C structure for the Codec Private element the sequence header OBU wasn't copied completely: its common data (type field & OBU size among others) was missing. * mkvmerge: Matroska reader, AV1: mkvmerge will try to re-create the av1C data stored in Codec Private when reading AV1 from Matroska or WebM files created by mkvmerge v28.0.0. * MKVToolNix GUI: info tool: the tool will no longer stop scanning elements when an EBML Void element is found after the first Cluster element. --- Module Name: pkgsrc Committed By: maya Date: Fri Oct 26 18:09:40 UTC 2018 Modified Files: pkgsrc/multimedia/mkvtoolnix: Makefile distinfo Log Message: mkvtoolnix: update to 28.2.0. security fix. * 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.
mkvtoolnix: update to 28.2.0. security fix. * 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.
mkvtoolnix: updated to 28.1.0 Version 28.1.0 "Morning Child": Bug fixes * mkvmerge: AV1 parser: fixed an error in the sequence header parser if neither the reduced_still_picture_header nor the frame_id_numbers_present_flag is set. * mkvmerge: AV1 parser: when creating the av1C structure for the Codec Private element the sequence header OBU wasn't copied completely: its common data (type field & OBU size among others) was missing. * mkvmerge: Matroska reader, AV1: mkvmerge will try to re-create the av1C data stored in Codec Private when reading AV1 from Matroska or WebM files created by mkvmerge v28.0.0. * MKVToolNix GUI: info tool: the tool will no longer stop scanning elements when an EBML Void element is found after the first Cluster element.
mkvtoolnix: updated to 28.0.0 Version 28.0.0 "Voice In My Head": New features and enhancements * mkvmerge: AV1 parser: updated the code for the finalized AV1 bitstream specification. * mkvmerge: AV1 packetizer: updated the code for the finalized AV1-in-Matroska & WebM mapping specification. * mkvmerge: AV1 support: the `--engage enable_av1` option has been removed again. * mkvmerge: MP4 reader: added support for AV1. * mkvmerge: DTS: implemented dialog normalization gain removal for extension substreams. * mkvmerge, mkvextract: simple text subtitles: added a workaround for simple text subtitle tracks that don't contain a duration. * mkvextract: added support for extracting AV1 to IVF. * mkvextract: IVF extractor (AV1, VP8, VP9): precise values will be used for the frame rate numerator & denominator header fields for certain well-known values of the track's default duration. * mkvmerge: VP9: mkvmerge will now create codec private data according to the VP9 codec mapping described in the WebM specifications. * MKVToolNix GUI: automatic scaling for high DPI displays is activated if the GUI is compiled with Qt ≥ 5.6.0. * MKVToolNix GUI: added a menu item ("Help" → "System information") for displaying information about the system MKVToolNix is running on in order to make debugging easier. * MKVToolNix GUI: multiplexer, header editor: the user can enter a list of predefined track names in the preferences. She can later select from them in "track name" combo box. Bug fixes * mkvmerge: JSON identification: fixed a bug when removing invalid UTF-8 data from strings before they're output as JSON. * mkvmerge: MP4/QuickTime reader: fixed handling of PCM audio with FourCC `in24`. * mkvmerge: MPEG transport stream reader, teletext subtitles: the decision whether or not to keep frames around in order to potentially merge them with the following frame is made sooner. That avoids problems if there are large gaps between teletext subtitle frames which could lead to frames being interleaved too late. * mkvextract: IVF extractor (AV1, VP8, VP8): the frame rate header fields weren't clamped to 16 bits properly causing wrong frame rates to be written in certain situations. * mkvpropedit, MKVToolNix GUI's header editor: fixed file corruption when a one-byte space must be covered with a new EBML void element but all surrounding elements have a "size length" field that's eight bytes long already.
mkvtoolnix: updated to 27.0.0 Version 27.0.0 "Metropolis": New features and enhancements * mkvmerge: chapters: the timestamps of chapters read from containers or from chapter files can be adjusted (multiplication and addition) with the new `--chapter-sync` option or using the special track ID `-2` for the existing `--sync` option. * MKVToolNix GUI: multiplexer: adjusted & added controls for mkvmerge's new feature of being able to adjust chapter timestamps. * MKVToolNix GUI: multiplexer: the GUI can now ask for confirmation when the user is about to create a file that won't contain audio tracks. It does this by default if at least one source file contains an audio track. Bug fixes * mkvmerge: AC-3: dialog normalization gain removal was corrupting E-AC-3 frames irreversibly by writing checksums in places where they didn't belong. Additionally only the first E-AC-3 frame in a Matroska was processed but not additional dependent frames in the same block. * MKVToolNix GUI: fixed a leak of Windows font resources leading to a general slowdown and subsequent crash.
mkvtoolnix: updated to 26.0.0 Version 26.0.0 "In The Game": New features and enhancements * mkvmerge: chapter generation: if the name template given by --generate-chapters-name-template is empty, no names (ChapterDisplay master elements with ChapterString/ChapterLanguage children) will be generated for the chapter atoms. * mkvmerge: chapters: chapter names generated from MPLS files will now use the name template if one is set via --generate-chapters-name-template. * mkvmerge: mkvmerge will no longer abort with an error message if no audio, video and subtitle tracks should be multiplexed. This allows copying of chapters from non-chapter source files (e.g. Matroska or MP4 files). * MKVToolNix GUI: the font size in the tool selector on the left will scale with the font size the user selects in the preferences. * MKVToolNix GUI: the GUI will no longer automatically resize the columns in tree and list views to match the content size. Instead it remembers and restores the widths set by the user. * MKVToolNix GUI: multiplexer: the chapter name template will now be set automatically to the name template in the preferences' "chapter editor" section. Additionally the option --generate-chapters-name-template … will be passed to mkvmerge in situations when mkvmerge will generate chapters (either because automatic generation is enabled or if chapters are generated for MPLS playlists). * MKVToolNix GUI: chapter editor: if the chapter name template is empty, chapters will be generated without names. * MKVToolNix GUI: chapter editor: added an option to remove all chapter names to the "additional modifications" dialog. Bug fixes * mkvmerge: Matroska reader: fixed wrong timestamps when appending Matroska files where the second Matroska file's first timestamp is bigger than 0. * mkvmerge: MP4 reader: fixed division by zero errors during file identification if the timescale is 0 in the MVHD atom. * mkvmerge: Windows Television DVR files are now recognized as an unsupported file type. This prevents mis-detection as MPEG-2 with an accompanying flood of error messages. * MKVToolNix GUI: info tool: under certain circumstances "cues" were shown at the wrong level (inside the previous master element instead of on level 1). * MKVToolNix GUI: job queue: fixed invalid memory handling and consequent crashes when using the "edit in corresponding tool & remove from job queue" option if one of the files in that job contained attached files. Build system changes * An AppStream metadata file will be installed in $prefix/share/metainfo.
mkvtoolnix: updated to 25.0.0 Version 25.0.0 "Prog Noir" 2018-07-12 New features and enhancements * mkvmerge: SRT/ASS/SSA text subtitles: for files for which no encoding has been specified, mkvmerge will try UTF-8 first before falling back to the system's default encoding. * mkvmerge: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if invalid 8-bit characters are encountered outside valid multi-byte UTF-8 sequences. * mkvmerge: Matroska & MPEG transport stream readers: the encoding of text subtitles read from Matroska files can now be changed with the `--sub-charset` parameter. * Linux: starting with release 25 an AppImage will be provided which should run on any Linux distribution released around the time of CentOS 7/Ubuntu 14.04 or later. * macOS: translations: updated the `build.sh` script to build `libiconv` and a complete `gettext`. Together with an additional fix to how translation files are located, MKVToolNix can now use all interface languages on macOS, too. Bug fixes * mkvmerge: AVC/h.264: fixed file identification failing for certain elementary streams due to internal buffers not being cleared properly. * mkvmerge: HEVC/h.265: fixed file identification failing for certain elementary streams due to internal buffers not being cleared properly. * mkvmerge: MLP code: fixed various issues preventing MLP from being parsed correctly. * mkvmerge: TrueHD/MLP packetizer; dialog volume normalization removal isn't attempted if the track is an MLP track as the operation is only supported for TrueHD, not MLP. * mkvmerge: MPEG TS reader: when reading MPLS mkvmerge will now compare the MPLS's start and end timestamps against the transport stream's PTS instead of its DTS. Otherwise the first key frame of a video track might be dropped if it isn't the first in presentation order. * mkvmerge: JSON identification: mkvmerge will ensure that all strings passed to the JSON output modules are valid UTF-8 encoded strings by replacing invalid bytes with placeholder characters. This avoids the JSON library throwing an exception and mkvmerge aborting on such data. * mkvmerge: audio packetizers: mkvmerge will now keep discard padding values if they're present for packets read from Matroska files. * mkvmerge: Ogg Opus reader: packet timestamps aren't calculated by summing up the duration of all packets starting with timestamp 0 anymore. Instead the algorithm is based on the Ogg page's granule position and which packet number is currently timestamped (special handling for the first and last packets in the stream). * This fixes the first timestamp if the first Ogg packet's granule position is larger than the number of samples in the first packet (= if the first sample's timestamp is bigger than 0). mkvmerge will keep those offsets now and inserts "discard padding" only where it's actually needed. * It also improves handling of invalid files where the first Ogg packet's granule position is smaller than the number of samples in the first packet (= the first sample's timestamp is smaller than 0). mkvmerge will now shift all timestamps up to 0 in such a case instead of inserting "discard padding" elements all over the place. * mkvmerge will no longer insert "discard padding" elements if the difference between a) the calculated number of samples in the packet according to the granule position and b) the actual number of samples as calculated from the bitstream is one sample or less and if the packet isn't the last one in the stream. This circumvents certain rounding errors. * The timestamp of the first packet after a gap in the middle of the stream is now calculated based on the Ogg page the packet belongs to, and not based on the timestamps before the gap. * mkvmerge: complete rewrite of the progress handling. It's now based upon the total size of all source files and the current position within them instead of the number of frames/blocks to be processed. This simplifies calculation when appending files and fixes rare cases of when progress report was obvious wrong (e.g. stuck at 0% right until the end). * MKVToolNix GUI: header editor: non-mandatory elements couldn't be removed anymore due to a regression while fixing 2320. They can now be removed again.
mkvtoolnix: updated to 24.0.0 Version 24.0.0 "Beyond The Pale": New features and enhancements * mkvmerge: 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. * mkvmerge: 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. * mkvmerge, mkvextract: AVC/h.264: empty NALUs will now be removed. * mkvextract: VobSub extraction: empty SPU packets will now be dropped during extraction as other tools such as MP4Box cannot handle them correctly. Bug fixes * mkvmerge: E-AC-3 parser: fixed determining the number of channels for streams that contain an AC-3 core with dependent E-AC-3 frames. * mkvmerge: Matroska reader: fixed mkvmerge buffering the whole file if a video track is multiplexed that consists of only one or a few frames. * mkvmerge: the "display unit" video track property will now be kept if it is set in the source file. * MKVToolNix GUI: multiplexer: when scanning playlists, all playlists were offered for selection regardless of the value of the "minimum playlist duration" setting. * MKVToolNix GUI: 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. * MKVToolNix GUI: header editor: fixed a crash when saving the file fails (e.g. because it isn't writable). * MKVToolNix GUI: header editor: the editor was wrongfully claiming that mandatory elements with default values cannot be removed in the "status" text. * MKVToolNix GUI: preferences: on macOS & Linux the setting "enable copying tracks by their type" wasn't restored on program start. Other changes * Niels Lohmann's JSON library: the bundled version has been updated from v1.1.0 (git revision 54d3cab) to v3.1.1 (git revision g183390c1). * pugixml library: the bundled version has been updated from v1.8 to v1.9
mkvtoolnix: updated to 23.0.0 Version 23.0.0 "The Bride Said No": New features and enhancements * mkvmerge: input: format detection uses file-extension to improve performance and to give preference when several formats match. * mkvmerge: AV1: added support for reading AV1 video from Open Bitstream Unit files. * mkvmerge: AV1: adjusted the code for the AV1 bitstream format changes made up to 2018-05-02. * mkvmerge: 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. * MKVToolNix GUI: multiplexer: added options to only enable tracks of certain types by default. * MKVToolNix GUI: multiplexer: added an option to enable dialog normalization gain removal by default for all audio tracks for which the operation is supported. * MKVToolNix GUI: multiplexer: when deriving track languages from the file names is active and the file name contains the usual season/episode pattern (e.g. "S02E14"), then only the part after the season/episode pattern will be used for detecting the language. * MKVToolNix GUI: multiplexer: the regular expression used for deriving track languages from the file names can now be customized in the preferences. * MKVToolNix GUI: 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.
mkvtoolnix: updated to 22.0.0 Version 22.0.0 "At The End Of The World" New features and enhancements * mkvmerge, MKVToolNix GUI multiplexer: AC-3, DTS, TrueHD: added an option for removing/minimizing the dialog normalization gain for all supported types of the mentioned codecs. * mkvmerge: AV1: added support for reading AV1 video from IVF, WebM and Matroska files. * mkvmerge: FLAC: mkvmerge can now ignore ID3 tags in FLAC files which would otherwise prevent mkvmerge from detecting the file type. * mkvinfo: the size and positions of frames within "SimpleBlock" and "BlockGroup" elements are now shown the same way they're shown for other elements (by adding the `-v -v` and `-z` options). * 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 (e.g. "…[ger]…" for German or "…+en+…" for English). * MKVToolNix GUI: 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. * MKVToolNix GUI: 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. * MKVToolNix GUI: chapter editor: added an option to remove all end timestamps to the "additional modifications" dialog. Bug fixes * mkvmerge: MP4 reader: fixed reading the ESDS audio header atom if it is located inside a "wave" atom inside the "stsd" atom. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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 (e.g. if a `SimpleBlock` is never written, then the 'read version' won't be set to 2 anymore). * mkvmerge: the 'document type version' header field is now set to 4 correctly if any of the version 4 Matroska elements is written. * mkvinfo: 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. * mkvpropedit, MKVToolNix GUI header editor: mandatory elements can now be deleted if there's a default value for them in the specifications. * source code: fixed a compilation error on FreeBSD with clang++ 5.0. Build system changes * A compilation database (in the form of a file `compile_commands.json`) can be built automatically if the variable `BUILD_COMPILATION_DATABASE` is set to `yes` (e.g. as `rake BUILD_COMPILATION_DATABASE=yes`).
mkvtoolnix: updated to 21.0.0 Version 21.0.0 "Tardigrades Will Inherit The Earth" New features and enhancements * mkvmerge: track statistics tags: the TagDefault element will not be written anymore as it was always set to the default value 1 anyway. Implements 2202. * mkvmerge, MKVToolNix GUI: JSON files can now contain C++-style line comments outside of strings (e.g. something like this: // this is ignored). Such comments, even though not part of the official JSON specifications, are now ignored when reading JSON files. * MKVToolNix GUI: 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. Implements 2218. * MKVToolNix GUI: 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. Implements most of the functionality of 2104. Bug fixes * build system: configure was treating --disable-ubsan and --disable-addrsan the same as --enable-ubsan and --enable-addrsan. * build system: an error message is output if a command to execute is not found instead of silently failing. * build system: in addition to looking for the gettext C function and library, configure now also verifies the presence of the msgfmt program instead of simply relying on it. * mkvmerge: appending files with additional parts at the same time was broken if more than one additional part was appended (e.g. when appending files from DVDs with something like '(' VTS_01_1.VOB VTS_01_2.VOB ')' + '(' VTS_02_1.VOB VTS_02_2.VOB ')'). In such a situation the content from files VTS_02_1.VOB and VTS_02_2.VOB where laid out in parallel to the content from the earlier files. * mkvmerge: FLV reader: a single invalid AAC frame was written for AAC audio tracks with codec initialization data longer than five bytes. * mkvmerge: FLV reader: timestamps will be normalized down to 0. * mkvmerge: 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. * mkvmerge: MP4 reader: fixed reading HEVC/h.265 video tracks if they're stored as Annex B byte streams inside MP4. * mkvmerge: 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. * mkvmerge, mkvextract: 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. * mkvmerge, MKVToolNix GUI multiplexer & header editor: fixed a crash during --enable-addrsan. * build system: an error message is output if a command to execute is not * build system: an error message is output if a command to execute is not found instead of silently failing. * build system: in addition to looking for the gettext C function and library, configure now also verifies the presence of the msgfmt program instead of simply relying on it. * mkvmerge: appending files with additional parts at the same time was broken if more than one additional part was appended (e.g. when appending files from DVDs with something like '(' VTS_01_1.VOB VTS_01_2.VOB ')' + '(' VTS_02_1.VOB VTS_02_2.VOB ')'). In such a situation the content from files VTS_02_1.VOB and VTS_02_2.VOB where laid out in parallel to the content from the earlier files. * mkvmerge: FLV reader: a single invalid AAC frame was written for AAC audio tracks with codec initialization data longer than five bytes. * mkvmerge: FLV reader: timestamps will be normalized down to 0. * mkvmerge: 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. * mkvmerge: MP4 reader: fixed reading HEVC/h.265 video tracks if they're stored as Annex B byte streams inside MP4. * mkvmerge: 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. * mkvmerge, mkvextract: 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. * mkvmerge, MKVToolNix GUI multiplexer & header editor: fixed a crash during file type detection for attachments if MKVToolNix is installed in a path with non-ASCII characters (e.g. German Umlauts). * mkvinfo: the --hex-positions parameter did nothing in summary mode. * mkvinfo: Windows: line endings will be written as \r\n (carriage return & line feed) again instead of just \n (line feed). * mkvpropedit: 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. * MKVToolNix GUI: multiplexer: the subtitle character set can now be set for appended subtitle files, too. * MKVToolNix GUI: multiplexer: when appending, all tracks appended to disabled tracks will start out disabled, too. Build system changes * mkvinfo: the GUI portion has been removed. mkvinfo is now a pure command-line program again.
mkvtoolnix: Leave pkgsrc to handle security features.
mkvtoolnix: updated to 20.0.0 Version 20.0.0 "I Am The Sun": Important notes * Feature removal: several deprecated features have been removed: * mkvmerge: the deprecated options --identify-verbose (and its counterpart -I), --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 * mkvinfo: most of its code was re-written in order to lay the groundwork for including its functionality in MKVToolNix GUI but with more features than the existing mkvinfo GUI. The result is that a lot of its output has been changed slightly while keeping the basic layout. Changes include but aren't limited to: * Several element names are a bit clearer (e.g. Maximum cache instead of MaxCache). * All timestamps and durations are now output as nanoseconds in formatted form (e.g. 01:23:45.67890123). All additional formats (e.g. floating point numbers output in seconds or milliseconds) were removed. * Element names for chapters and tags are now translated if a translation is available. * Elements located in wrong positions within the Matroska document are handled better. While mkvinfo's output is mostly kept very stable, it is not designed to be parsed by other utilities. Even though I've tried hard to cram all changes and cleanups into this version, additional changes may be made in the next couple of releases depending on user feedback and bug reports. New features and enhancements * mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter NALUs will now be removed. Bug fixes * mkvmerge: AVC/h.264 parser: when fixing the bitstream timing information mkvmerge will now use exact representations of the desired field duration if possible. For example, when indicating 50 fields/second num_units_in_tick is set to 1 and time_scale to 50 instead of 5368709 and 268435456. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: SRT reader: mkvmerge can now handle SRT files with timestamps without decimal places (e.g. 00:01:15 instead of 00:01:15.000). * mkvmerge: 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. * mkvmerge: 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: 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: update check dialog: Markdown links will now be converted to clickable links. * build system: fixed a race condition when creating new directories if rake is run with -jN in newer versions of Ruby/rake. Build system changes * [cmark](https://github.com/commonmark/cmark), the CommonMark parsing and rendering library in C, is now required when building the GUIs.
mkvtoolnix: updated to 18.0.0 Version 18.0.0 "Apricity" 2017-11-18 New features and enhancements * build system: when building with clang v3.8.0 or newer, `configure` will no longer restrict optimization flags to `-O1` and use `-O3` again (older versions of clang suffered from excessive memory usage with higher optimization levels). * build system: when building with mingw 7.2.0 or newer, `configure` will no longer restrict optimization flags to `-O2` and use `-O3` again (older versions of mingw suffered from bugs such as segmentation faults with higher optimization levels). * build system: stack protection is enabled when building with clang 3.5.0 or newer on all platforms. * mkvmerge: AVC & HEVC ES parsers: performance improvements by copying much less memory around. * mkvmerge: 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. * 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. * GUI: 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. Bug fixes * mkvmerge: 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. * mkvmerge: Matroska identification: the `date_local` and `date_utc` attributes will only be output if the identified Matroska file actually contains the "date" header field. * mkvmerge: WebVTT: mkvmerge did not recognize timestamp lines if the hours components were absent. * mkvpropedit, 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.
mkvtoolnix: updated to 17.0.0 Version 17.0.0 "Be Ur Friend": Important notes * The word "timecode" has been changed to "timestamp" everywhere it was used in MKVToolNix. 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 (e.g. `mkvmerge --timecode-scale …`). The reason for the change is wrong usage. What both the Matroska specification and MKVToolNix used "timecode" for is normally called a "timestamp" in audio & video domains. A "timecode" on the other hand has a specific meaning. As the Matroska specification is moving towards implementing real timecodes, it will also move towards correcting the verbiage. MKVToolNix is following this change. * mkvextract's command line interface has been changed to allow extraction of multiple items at the same time. The first argument must now be the source file's name. All following arguments either set the mode (e.g. `tracks`) or specify what to extract in the currently active mode. Those items that were written to the standard output (chapters, tags and cue sheets) are now always written to files instead. Therefore the respective modes require an output file name. For example, extracting two tracks, the chapters and the tags can be done with the following command: `mkvextract input.mkv tracks 0:video.h265 1:audio.aac chapters chapters.xml tags tags.xml` The old interface (specifying the mode first and the source file name second) remains working and supported. However, it is now deprecated and will be removed at the end of 2018. New features and enhancements * mkvmerge: 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`. * mkvextract: the command line interface has been changed to allow extraction of multiple items at the same time. See section "Important notes" for details. Bug fixes * mkvmerge: 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, for example. * mkvmerge: fixed AC-3 being misdetected as encrypted MPEG program streams under certain conditions. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: SRT reader: fixed calculating the duration of entries starting with at a negative timestamp. * mkvmerge: 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. * mkvmerge: 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: both programs will now show proper error messages instead of crashing when certain kinds of data corruption is found when reading a file.
mkvtoolnix: update to 16.0.0 Version 16.0.0 "Protest": New features and enhancements * mkvmerge: MP4 reader: added support for Vorbis. Bug fixes * configure: the checks for libEBML and libMatroska have been fixed to require libEBML 1.3.5 and libMatroska 1.4.7 as intended. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: 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. * mkvmerge: output: the `doc type version` will be set at least to 2 if certain elements are written (`CodecState`, `CueCodecState`, `FlagInterlaced`). * mkvmerge: output: the track header attributes `MinCache` and `MaxCache` will not be written anymore. * mkvmerge: Matroska reader: the "key" and "discardable" flags of SimpleBlock elements will be kept as they are. * mkvmerge: 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. * mkvmerge: Opus output: mkvmerge will now put all frames with discard padding into their own block group. * MKVToolNix GUI: header editor: removed the check for external modification when saving the file. * MKVToolNix GUI: job queue: fixed calculation of total progress when automatic removal of completed is enabled.
multimedia/mkvtoolnix: update to 15.0.0 Version 15.0.0 "Duel with the Devil": Important notes * mkvmerge, mkvpropedit, GUI's header and chapter editors: the programs will no longer add most missing Matroska elements that are mandatory but have a default value in the Matroska specification (e.g. the `TagLanguage` element with a value of `und` if it isn't present in its `SimpleTag` parent). Due to this change libEBML v1.3.5 is now required. New features and enhancements * MKVToolNix GUI: multiplex tool: added a new entry to the "source files" context menu labeled "Set destination file name from selected file's name". It will force the GUI to consider the selected file to be the reference for automatically setting the file name, no matter which file was originally added as the first file. It will also force setting the destination file name once if automatic destination file name generation is turned off in the preferences. Implements part of 2058. * MKVToolNix GUI: multiplex tool: added an option in the preferences on "Multiplexer" → "Output" labeled "Only use the first source file that contains a video track". If enabled, only source files containing video tracks will be used for setting the destination file name. Other files that are added are ignore. Implements the rest of 2058. * MKVToolNix GUI: header editor: added support for editing the video colour attributes. Implements the second half of 2038. * MKVToolNix GUI: header editor: added support for the "video projection" track header attributes. Part of the implementation of 2064. * MKVToolNix GUI: job queue: selected jobs can now be move up and down by pressing the `Ctrl+Up` and `Ctrl+Down` keys. Additionally, push buttons to move them up & down are shown if the corresponding option is enabled in the preferences. Implements 2060. * mkvmerge: added support for the "video projection" track header attributes. Part of the implementation of 2064. * mkvinfo: added support for the "video projection" track header attributes. Part of the implementation of 2064. * mkvpropedit: added support for editing the video colour attributes. Implements one half of 2038. * mkvpropedit: added support for the "video projection" track header attributes. Part of the implementation of 2064. Bug fixes * all: selecting the program's language (e.g. via the `--ui-language` command-line option or via the GUI's preferences) did not work on Linux & Unix if the `LANGUAGE` environment variable was set and didn't include the desired language. Fixes 2070. * MKVToolNix GUI: removed the keyboard shortcuts for switching between the different tools (e.g. `Ctrl+Alt+1` for the multiplexer). They overlapped with basic functionality on keyboards that use an `AltGr` key, e.g. German ones, where `AltGr+7` emits `{`. As `AltGr+key` is implemented as `Ctrl+Alt+key` under the hood, this means that `AltGr+7` is really `Ctrl+Alt+7` which the GUI now took to mean "switch to the job queue" instead of "insert `{`". Fixes 2056. * MKVToolNix GUI: header editor: after saving the file the GUI wasn't updating its internal file modification timestamp. That lead to the GUI wrongfully claiming that the file had been modified externally when the user wanted to save the file once more, requiring a reload of the file losing all modifications made since saving the first time. * mkvmerge: DTS handling: some source files provide timestamps for audio tracks only once every `n` audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number `n - 1` (the second audio timestamp read from the source file was used one output frame too early). Fixes 2071. * mkvinfo: fixed a null pointer dereference if an `EbmlBinary` element's data pointer is a null pointer. Fixes 2072. Build system changes * configure: added option `--disable-update-check`. If given, the code checking online for available updates will be disabled. The update check is enabled and included in the GUI by default. * libEBML v1.3.5 is now required. Other changes * mkvmerge: the option `--colour-matrix` has been renamed to `--colour-matrix-coefficients` in order to match the specification more closely. The old option name will continue to be recognized as well.
Fix patch to boost libraries and hackaround for the surprising error messages.
Update to mkvtoolnix 9.5.0: - bugfixes
Update mkvtoolnix to 9.4.0: - restrict GUI option to Qt. - disable compiler optimisation override - new features: - support for Apple ProRes videos in MOV/MP4 files - much improves MPEG TS support - support WebVTT subtitles - output of Big Endian PCM to WAV supported - ${TOOL}_OPTIONS can be used for passing additional arguments to individual programs via environment - support for core-less DTS streams consisting solely of XLL extension sub-streams - time codes computation for AAC, AC-3, DTS, MP3 and TrueHD packets was rewritten - support TrueHD tracks inside MPEG TS by keeping (additional) AC-3 audio track - support MPEG-H p2/HEVC video in MP4 container - support for AAC in LOAS/LATM multiplex if read from MPEG transport streams or raw LOAS/LATM AAC files - support for h.265/HEVC from MPEG TS and elementary streams - support for teletext subtitles from MPEG TS - faster format detection for text subtitle formats - support for DTS audio streams in MP4 - support for VP9 from IVF and WebM files - support for Opus - support for reading ALAC from CAF and MP4 files - 5 years of various bug fixes and GUI improvements.
Backout previous change.
Fix build problem on ruby23.
Add SHA512 digests for distfiles for multimedia category Problems found locating distfiles: Package adobe-flash-plugin11: missing distfile flash-plugin-11.2.202.540-release.i386.rpm Package gmplayer: missing distfile mplayer/AlienMind-1.2.tar.bz2 Package gmplayer: missing distfile mplayer/BlueHeart-1.5.tar.bz2 Package gmplayer: missing distfile mplayer/CornerMP-aqua-1.4.tar.bz2 Package gmplayer: missing distfile mplayer/MPlayer-1.1.1.tar.xz Package gmplayer: missing distfile mplayer/WMP6-2.2.tar.bz2 Package gmplayer: missing distfile mplayer/gnome-1.1.tar.bz2 Package gmplayer: missing distfile mplayer/hwswskin-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/neutron-1.6.tar.bz2 Package gmplayer: missing distfile mplayer/plastic-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/slim-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/xine-lcd-1.2.tar.bz2 Package handbrake: missing distfile handbrake/HandBrake-0.9.3.tar.gz Package handbrake: missing distfile handbrake/bzip2-1.0.5.tar.gz Package handbrake: missing distfile handbrake/faad2-2.6.1.tar.gz Package handbrake: missing distfile handbrake/lame-3.98.tar.gz Package handbrake: missing distfile handbrake/libdvdread-0.9.7.tar.gz Package handbrake: missing distfile handbrake/libmp4v2-r45.tar.gz Package handbrake: missing distfile handbrake/libquicktime-0.9.10.tar.gz Package handbrake: missing distfile handbrake/libtheora-1.0.tar.gz Package handbrake: missing distfile handbrake/mpeg2dec-0.5.1.tar.gz Package handbrake: missing distfile handbrake/x264-r1028-83baa7f.tar.gz Package handbrake: missing distfile handbrake/zlib-1.2.3.tar.gz Package libdvdcss: missing distfile libdvdcss-1.3.99.tar.bz2 Package mplayer-share: missing distfile mplayer/MPlayer-1.1.1.tar.xz Package mpv: missing distfile mpv-0.12.0.tar.gz Package realplayer-codecs: missing distfile rp8codecs-20040626.tar.bz2 Package realplayer-codecs: missing distfile rp8codecs-alpha-20050115.tar.bz2 Package win32-codecs: missing distfile rp9codecs-win32-20050115.tar.bz2 Package xanim: missing distfile xa2.0_cvid_netbsd386.o.gz Package xanim: missing distfile xa2.0_iv32_netbsd386.o.gz Package xanim: missing distfile xa1.0_cyuv_netbsd68k.o.gz Package xanim: missing distfile xa2.0_cvid_linuxELF.o.gz Package xanim: missing distfile xa2.0_iv32_linuxELF.o.gz Package xanim: missing distfile xa1.0_cyuv_sparcAOUT.o.gz Package xanim: missing distfile xa2.0_cvid_sparcELF.o.gz Package xanim: missing distfile xa2.0_iv32_sparcELF.o.gz Package xanim: missing distfile xa1.0_cyuv_linuxPPC.o.gz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
mbstate_t reference is always const with new boost.
Various fixes for SunOS support.
multimedia/mkvtoolnix: #include <unistd.h> Fixes out-of-scope errors seen on gcc 4.7.x
Changes 5.0.1: * build system: Updated the Debian/Ubuntu files to debhelper v7/quilt 3.0 format. * mkvmerge: enhancement: Implemented support for yet another way of storing EAC3 and DTS in MPEG transport streams. * mkvinfo: bug fix: Track information was not reset when opening more than one file in the GUI. * mkvmerge: bug fix: The PGS subtitle output module was not outputting any packet in certain cases due to uninitialized variables. * mkvmerge: bug fix: Fixed mkvmerge not finding any track in TS streams whose first PMT packet could not be parsed (e.g. invalid CRC). * mkvmerge: bug fix: Fixed detection of TS streams that only contain one PAT or PMT packet within the first few KB but no others within the first 10 MB.
update to 5.0.0 changes: many fixes and improvements pkgsrc note: This version hasn't been tested in practice yet. The previous one had a problem with mkvmerge going into an endless loop. We still have mkvtoolnix-old (2.9.8) as a known working one for that reason.
Changes 4.6.0: * build system: Fixed building the Qt version of mkvinfo's GUI (again). * mmg: bug fix: If the header editor finds 'language' elements with ISO-639-1 codes (e.g. "fra" instead of "fre" for "French") then it will map the code to the corresponding ISO-639-2 code * mmg: bug fix: Fixed one of the issues causing mmg to report that it is configured to use an unsupported version of mkvmerge when the reported version was actually empty. * mkvmerge: enhancement: HD-DVD subtitles are recognized as being an unsupported file format. This makes the error message presented to the user a bit clearer. * build: Boost 1.36.0 or newer is required (up from 1.34.0). Also fixed building with v3 of Boost's filesystem library, e.g. with Boost 1.46.0 Beta 1 or newer. * mkvpropedit: new feature: Added support for adding, replacing and removing tags. * all: Added a translation for the programs into Turkish by ßouЯock. * build system: Fixed compilation if configure choses the internal versions of libebml and libmatroska while older versions are still installed in a location named with "-I..." or "-L..." in CFLAGS/CXXFLAGS/LDFLAGS or with configure's "--with-extra-includes" and "--with-extra-libs" options.
update to 4.5.0 many fixes and improvements, too much to list here
update to 4.3.0 changes: -feature additions: "quiet"-Flag, more data shown by mkvinfo -fixes -build systems uses a ruby script "drake" rather than "make"
update to 4.2.0 changes: -bugfixes -enhancements to mkvmerge
update to 4.1.1 many bugfixes and improvements, too much to list here
Update mkvtoolnix to 2.9.8. Too many upstream changes to duplicate here. Upstream change log is at http://www.bunkus.org/videotools/mkvtoolnix/doc/ChangeLog . Remove multimedia/mmg. mmg is now optionally built as part of mkvtoolnix.
Support flac-1.1.3 based on a patch from ftp.altlinux.org /pub/people/thresh Bump PKGREVISION because this package just compiled without flac support.
Fixed "test ==".
Update to version 1.7.0 Changes: - mkvmerge: enhancement: Added support for MIME type detection via libmagic (patch by Robert Millan with heavy modifications by myself). - mkvmerge: bug fix: Theora headers were not handled correctly. - mkvmerge: bug fix: The WavPack reader was broken on 64bit systems (e.g. AMD64). - mkvmerge: bug fix: The Theora timecode handling was broken, and Ogg/Theora files were not identified correctly (they showed up as "unknown" in mmg). - mmg: enhancement: The 'adjust timecodes' function accepts timecodes like 'XXXXXunit' with 'unit' being 'ms', 'us', 'ns' or 's'. - mkvmerge: enhancement: mkvmerge will no longer refuse to concatenate files with differing Codec Private contents and only issue a warning in such cases. - mkvmerge: bug fix: Quicktime/MP4 reader: Added support for version 1 media headers ('mdhd' atom) with 64bit fields. Fixed the duration of the last packet passed downstream. Fixed overflow issues during re-scaling from the Quicktime/MP4's time scale to nano seconds used by mkvmerge. - mkvmerge: bug fix: Muxing wasn't working Windows 9x/ME because mkvmerge was trying to use Unicode file access functions when determining which directories to create. Fixes Anthill bug #177. - mkvmerge: new feature: Added support for the "Delay:" feature and for negative timecodes in VobSub IDX files. - mmg: new feature: If mmg is set to automatically fill in the output file name then it will clear the output file name once all input files have been removed. - mmg: bug fix: Fixed a crash that occured if the user removed an attachment and clicked somewhere in the empty space in the attachment list. Occured only on Windows. - mmg: bug fix: Re-added Chinese to the list of popular languages (those are listed first in the language drop down boxes). - mkvmerge: bug fix: The last change to the ISO 639 language handling broke the VobSub reader so that it reported the wrong language codes. This also caused mmg to not display the correct language after adding a VobSub file.
Update to version 1.6.5 Changes: - new features (e.g., - splitting after arbitrary timecodes and muxing of USF subtitles) - lots of bugfixes since 1.4.2 See ChangeLog within the distfile for details.
Update to version 1.4.2 Bugfix release.
Updated to version 1.4.1 Changes: - added help file 1.4.1: ====== - bugfixes 1.4.0: ====== - support for MPEG-1 and MPEG-2 video read from PS and ES streams, - support for AVC (aka h.264) video from MP4 files, - support for concatenating files, - support for the new elements needed for menus, - support for WAVPACK4 lossless and lossy audio, - support for extracting VobSubs and - added an online help to mmg accessible by pressing F1
Add RMD160 digests.
Update to version 1.0.2 Changes: - all: bug fix: Fixed compilation with the upcoming new versions of libebml and libmatroska. - mkvmerge: bug fix: mkvmerge did not accept XML chapter files created with older mkvtoolnix versions due to deprecated chapter elements. Such elements are now skipped. - mkvmerge: bug fix: Fixed negative audio displacement for a couple of formats. - mmg: bug fix: Again the window handling. Hopefully this is better than the other attempts. - mmg: bug fix: One was able to crash mmg by pressing 'ok' in the muxing dialog right after muxing finished, especially if the 'abort' button was hit before. This mostly happened on Linux.
Change some string manipulations to equivalent operations that gcc 2.95 understand.
Updated to version 1.0.1 Changes: - mmg: Fixed some layout issues with wxWidgets 2.5.3 and newer. - mmg: new feature: The window position is saved and restored when mmg is started the next time. - mmg: bug fix: Fixed a crash/memory corruption showing weird characters in the input boxes. This happened when the user removed a file from mmg while mmg was updating the command line. - mmg: bug fix: mmg now has an icon associated with it while it is running instead of the generic Windows application icon (Windows only). - mmg: bug fix: The main window is now minimized during muxing. This allows to hide both of the windows while muxing is running and restoring them later, even if they were iconized when muxing finished (Windows only). - mmg: bug fix: Made the muxing dialog ("mkvmerge is running") modal all the time. This prevents the user from hitting the main window's minimize button. On Windows this makes mmg stuck in iconized mode if it was iconized when muxing finished. - mkvmerge: bug fix: The first packet of an AAC track read from Real containers might not start at the timecode 0. This offset was ignored by mkvmerge. - mkvmerge: bug fix: Fixed a buffer overflow in the UTF-8 file reading routines.
Update to version 1.0 Changes: - mkvmerge: bug fix: The Matroska reader doesn't insist on having a default duration ( = FPS) for video tracks in the "AVI compatibility mode" ( = with the CodecID "V_MS/VFW/FOURCC"). This enables re-muxing of Matroska files created from MP4 files. - mmg: bug fix: File names with non-ASCII characters were not working if mmg was compiled against a Unicode enabled wxWidgets. - mkvmerge: new feature: Added reading DTS from AVIs and from Matroska files. - mkvmerge: bug fix: A variable initialization was missing which very recent gcc versions (3.4.2) did not like very much. Also fixed a small compilation bug.
Updated to version 0.9.7 Changes: - mkvmerge: bug fix: The handling of external timecode files was still not correct but should be OK now. - mmg: Added an error message if the user selects 'mmg' as the 'mkvmerge executable' because that would lead to an infinite number of 'mmg's being spawned. - mkvmerge: bug fix: If LFE is on for DTS then the number of channels is one more than what the DTS frame header says. - mkvmerge: bug fix: Timecodes for Vorbis were wrong on rare occasions (when reading laced Vorbis from a Matroska file and changing the lacing, e.g. when splitting for the second and all following files). - mkvmerge/mkvinfo/mkvextract: bug fix: The chapter and tag element tables were not always intialized correctly depending on the compiler and the optimization flags used. - mkvmerge: bug fix: The OGM reader was broken if at least one track was not to be copied from the file (happened between 0.9.5 and 0.9.6). - mmg: bug fix: After loading saved mmg settings the track input box listed the tracks always coming from the last input file and not from the one they really came from. - mmg: enhancement: Made mmg's main window properly resizable. - mkvmerge: Rewrote the code for the external timecode files. This also fixes bug 99: The durations for the individual tracks were not correct for those tracks for which --timecodes was used. - mmg: bug fix: Crash when saving chapters from the chapter editor. Same as the mkvinfo issue below but on all OS. - mkvinfo: bug fix: The chapter and tag element tables were not initialized on Windows resulting in a crash when one of those elements was encountered.
Updated to version 0.9.6 Changes: - mkvextract: bug fix: The track extraction was creating the output file twice if the Matroska file contained a copy of the track headers. This resulted in the first extracted file being overwritten at the end of extraction. - mmg: bug fix: If the file title is read from an input file, not modified by the user and that input file is removed again then the file title will be unset. - mkvmerge: enhancement: Converted the raw FLAC reader to use another interface to the FLAC libraries. This results in a speedup of up to 50%. Thanks to Josh Coalson for telling me about its existence. - mkvmerge: new feature: Added two warnings. One about invalid track IDs that were used on the command line but that don't correspond to an available track in a file and one if no track will be copied from a source file. Both warnings hint at bad command line arguments. - mkvmerge: Only write the segment duration as a 64bit float if there is no video track present. This way users won't have to update their DirectShow filter/apps for most files. Only audio-only files need this precision anyway. - mkvmerge: Changed the Ogg/OGM reader to use the stream number and not its serial number as the track ID (meaning the track IDs will be 0, 1, 2... etc. instead of the random numbers oggenc uses as the serial numbers). - mkvmerge: new feature: The CUE sheet parser now accepts INDEX lines with indices from 00 up to 99 and implements the Red Book specification for audio CDs that way. Patch by Vegard Pettersen <vegard_p at broadpark adot no>. - mkvmerge, mkvextract: bug fix: ASS was handled like SSA which is not correct in each case, especially when extracting it. - mkvextract: bug fix: The WAV writer was not endian safe. - mkvmerge: bug fix: The charset was not set correctly on Solaris. - mkvmerge: bug fix: mkvmerge crashed when reading Matroska files that contain an empty tag list. - mkvmerge: bug fix: Some Matroska files that e.g. have had their timecodes offset with the Matroska Stream Editor or other means may contain timecodes that caused mkvmerge to print a warning about "timecode < last_timecode". A new fix implements a workaround and a warning message with a proper explanation for this case. - mkvmerge: bug fix: Older Matroska files containing chapters caused mkvmerge to abort muxing. - mkvmerge: bug fix: mkvmerge was only copying the last tag of a list of tags applying to a track from a Matroska file. - mkvmerge: bug fix: mkvmerge will show a nice warning if the entries in a SRT have non-continuous timestamps. It'll also sort the entries by their start timestamp instead of throwing the generic "timecode < previous timecode" warning. - mmg: bug fix: The 'Matroska file analysis' window that occurs when reading chapters from a Matroska file did not disappear if it was minimized when the process finished. - mkvmerge: new feature: Added a new parameter --aspect-ratio-factor. - mkvinfo: bug fix: Strings from chapters and tags were shown in UTF-8 instead of the local charset. This bug was introduced around 2004-08-28. - mkvmerge: bug fix: Not all chapter elements were copied correctly from a source Matroska file. - mkvextract: Sped up the extraction of attachments, chapters, cuesheets and tags by using the seek head information and not parsing the full file each time. - mkvmerge: bug fix: The Matroska reader was not handling very big cluster timecodes correctly. Those can occur when the timecode scale factor is very small. - mkvmerge: bug fix: Empty clusters in Matroska files no longer make mkvmerge think that file has been read completely. - mkvmerge: new feature: Added support for MP2 (and maybe MP3) audio in MP4 containers. - mkvmerge: new feature: The chapter and tag parsers accept XML element attributes instead of sub-elements for those sub-elements that only contain data. Example for a "simple tag": <Simple Name="ARTIST" String="Tori Amos"/> - mkvmerge: bug fix: The automatic MIME type detection based on the file name extension was using the file name extension as the MIME type. - mkvmerge, mkvinfo: new feature: Added the four new PixelCrop elements. - mkvmerge, mkvextract, mkvinfo: new feature: Added 'TargetTypeValue' as a supported tagging element. - mkvmerge, mkvextract, mkvinfo: Complete rewrite of the chapter and tag parsing and output functions. Additions will be much easier now. - mkvmerge, mkvextract, mkvinfo: feature removed: Dropped support for the very old and deprecated tagging system. No one used it anyway. - mkvmerge: new feature: Allow the use of two-letter ISO639-1 country codes in for the '--language' parameter. Those will be converted to the corresponding ISO639-2 language code automatically. - mkvmerge, mkvinfo, mkvextract: new feature: Added support for the 'TargetType' tag element - mkvmerge: bug fix: The MP3 handling was broken on weird and rare occasions when reading MP3 from a Matroska file. - mkvmerge: bug fix: Removed a bogus warning about an attachment's MIME type having been given more than once.
Update to version 0.9.5. Changes: - mkvmerge bug fix: WAV files which contained a 'PAD ' chunk before the 'data' chunk were not processed at all. bug fix: Use 'setjmp' and 'longjmp' Instead of throwing a C++ exception during the chapter parsing stage. Otherwise libexpat will abort with a non-descriptive error message on Windows. bug fix: SSA/ASS subs with the old codec ID 'S_SSA' and 'S_ASS' were accepted, but their codec ID was kept. It is now correctly changed to 'S_TEXT/SSA' and 'S_TEXT/ASS'. bug fix: Try to guess whether tags read from OGM files (for automatic language tag setting and for copying chapter information) are already in UTF-8 or not. If not try to convert them from the current system's charset. bug fix: use the same UID for the EditionUID in the chapters and in the tag targets when parsing a CUE sheet. bug fix: Handle TTA files with ID3 tags correctly (=skip the ID3 tags). bug fix: There was an illegal free() in the OGM reader. bug fix: Block durations with 0s length (e.g. entries in a SSA file) were not written. bug fix: The FLAC packetizer gets the duration from the FLAC packet itself. bug fix: The word 'TAG' occuring in e.g. SRT subs caused the ID3/MP3 frame detection to be stuck n an endless loop. new feature: Abort muxing if the output file name is the same as the name of one of the input files. new feature: If there was no MIME type given for an attachment then mkvmerge will try to guess it based on the file's extension just like mmg. new feature: Implemented sample-precision for timestamps and durations on audio only files. added: 'EditionUID' to valid elements below '<Targets>' in XML tags. Fixed the creation of the 'Targets' with --global-tags and --tags. - mkvextract bug fix: The CUE extraction wrote UTF-8 characters but no UTF-8 BOM (byte order marker) at the beginning. bug fix: The subtitle track extraction used the wrong duration in 0.9.4. new feature: Limited support for extracting chapters as CUE sheets that haven't been created by using a CUE sheet with mkvmerge's "--chapters" option. - mkvmerge, mkvinfo, mkvextract new feature: added support for the new tag elements ('tag language' and 'default/original language'). new feature: Added support for the new 'EditionFlagHidden', 'EditionFlagDefault' and 'EditionManaged' elements. - mkvmerge, mkvextract, mmg Changes to the chapter handling. EditionUIDs are always created. mkvextract outputs EditionUIDs and ChapterUIDs normally. mkvmerge tries to keep EditionUIDs and ChapterUIDs but replaces them if they aren't unique. - mkvmerge/mkvextract new feature: Use the new EditionUID entries when convert CUE sheets to chapters and tracks. This is in preparation for 'multiple CDs to single Matroska file' conversions. - mkvinfo, mmg bug fix: Fixed compilation with Unicode enabled versions of wxWidgets. - mmg bug fix: The 'down' button on the 'input' tab was not working correctly in all cases.
Updated to version 0.9.4. Changes: - patch-ab no longer needed 0.9.4: ====== - mkvextract: new feature: Added support for extracting TTA tracks to TTA files. new feature: Implemented the extraction of chapter information and tags as a CUE sheet which is the reverse operation to using a CUE sheet with mkvmerge's '--chapters' parameter. - mkvmerge: bug fix: SRT file recognition failed if the file contained spaces at the end of the first line. bug fix: Broken VobSub .idx files which contain timestamps going backwards no longer crash mkvmerge. A warning will be printed for such inconsistencies. bug fix: The Matroska reader contained a nice little illegal memory access (introduced in 0.9.3 with the fixes to the 'default track' handling). bug fix: The SSA reader was segfaulting if a line contained an empty text field. bug fix: The CUE sheet parser interpreted a timestamp as HH:MM:SS (hours, minutes, seconds). The correct spec is HH:MM:FF (hours, minutes, frames with 1 frame = 1/75 second). new feature: The pregap from a CUE sheet is converted into two sub-chapters (one for "INDEX 00", one for "INDEX 01"). These sub-chapters have their 'hidden' flag set. - mkvinfo: bug fix: Fixed compilation for MATROSKA_VERSION = 2. bug fix: Fixed compilation with gcc 3.2. - mmg: new feature: Added support for the two flags 'hidden' and 'enabled' in the chapter editor.
Fix invalid use of preprocessing directive within macro arguments, to make this compile when using gcc 2.95.
Updated to version 0.9.3. Changes: - add patch to fix compilation when MATROSKA_VERSION is set to 2 or bigger. Patch sent to Moritz Bunkus and it's fixed in svn repo. - take MAINTAINERSHIP 0.9.3: ====== - mmg: bug fix: The 'default track' checkbox was broken. - mkvmerge: bug fix: Using '--cues ...:all' was broken for audio tracks that use lacing. bug fix: The latest OpenDML AVI files generated by mencoder were not read correctly. Only the first RIFF chunk was processed. bug fix: The default track feature did not work correctly with the new --track-order. new feature: When using a CUE sheet as a chapter file mkvmerge will automatically convert some of the entries to tags. new feature: Added support for TTA lossless audio files. If the user does not specify a --language for a track 'und' ('undefined') will now be used instead of 'eng'. The user can use the new option '--default-language' to change that.
Updated to version 0.9.2. Changes: ======== - mkvextract: bug fix: Video extraction was not working correctly on big endian systems. - mkvmerge, mmg: new feature: --track-order now controls the track creation order globally, meaning that it isn't used for each file but only once. This allows the tracks to be created in ANY order (before it was first ordered by file, then by track). For mmg this means that the track list contains all available tracks and that there are no 'up' and 'down' buttons in the file list anymore. - mkvmerge: new feature: You can specifiy the time after which to split with ms precision. - mkvmerge: bug fix: Fixed more of that 'garbage at the beginning of MP3 streams' issue. - mkvmerge: bug fix: Reading of broken / unfinished AVI files was broken on Windows. - mmg: Updated the mkvmerge GUI guide to reflect changes and additions. - mmg: new feature: Added 'minimize' buttons to the two 'mkvmerge is running' dialogs. - mmg: new feature: Added an option for automatically calling 'File -> new' after a job has been added to the job queue. - mmg: bug fix: The job manager did not always catch all of mkvmerge's output, especially if a job failed. - mmg: new feature: Line wrap the tooltips on Windows. - mmg: new feature: Suggest a name for a new job based on the output file name. - mmg: new feature: Temporarily disaable 'always on top' if the muxing or the job dialog are visible. - mmg: new feature: Ask for confirmation before adding a job if there's already an old job with the same description. - mmg: bug fix: The functions 'move up', 'move down' and 'delete' in the 'job' dialog were not working correctly on Windows. - mmg: bug fix: The 'always on top' option was ignored when starting mmg.
Updated to version 0.9.1. Changes: - mkvmerge: Dropped supoprt for 'aviclasses' (one of the two libraries for accessing AVI files). This mostly affects the Windows users as I've used aviclasses and not avilib on Windows so far. The 0.9.0-pre-builds so far haven't shown any problems, though, so I hope this doesn't break anything. new feature: mmg will set the 'display dimensions' automatically for AVI files whose video track is MPEG4 and has the pixel aspect ratio stored in the bitstream. bug fix: The improved MP3 garbage detection was broken resulting in an error message from mkvmerge in some weird bug fix: Matroska tracks can use lacing (several frames inside one Matroska block with only one timecode for the whole block). mkvmerge did not recreate the timecodes for the frames 1..n in the lacing correctly. feature removed: Dropped support for 'time slices'. They were not used, didn't offer the player any additional value and caused massive increase in overhead. bug fix: The OGM fix in 0.9.0 broke handling for non-broken OGM files a bit. new feature: Added support for the audio/video synchronization method used by NanDub (garbage at the beginning of audio tracks inside an AVI) for AC3 and MPEG audio tracks. In other words: If an AVI is read and an audio track contains garbage right at the beginning then the corresponding audio delay is calculated and used instead of simply discarding the garbage. new feature: Enabled reading MPEG4 video from MP4 files (nope, they're not stored in Matroska's native mode yet). - mmg bug fix: The job manager did not handle the conversion of non-ASCII characters correctly. new feature: The action 'delete job' in the job manager will also delete the file in the 'jobs' subdirectory. new feature: Added an option to make mmg stay always on top (only on Windows). new feature: Added a dialog for adding arbitrary command line options which includes a list of advanced options to chose from.
Updated to version 0.9.0. Changes: - mkvmerge bug fix: Improved handling for OGM files. Streams that are lacking the comment packet are handled better. bug fix: Some MP3 streams are padded in the front with trash (mostly those in AVI files). This trash might contain valid MP3 headers which do not match the remaining headers for the actual track. Both the MP3 reader and the MP3 packetizer can now skip up to one of those bogus headers in the trash. bug fix: The OGM reader was not Endian safe. bug fix: Audio sync for Vorbis was partially broken for positive offsets. Rewrite of the VobSub handling code. - mmg bug fix: On some occasions the chapter editor thought there was no language associated with a chapter name and complained about that. bug fix: The chapter editor did not honor the values selected for 'country' and 'language'. Removed the 'advanced' tab. Those options shouldn't be used anyway.
Updated to version 0.8.9. Changes: - explicitly disable wxWindows support - mark it as using c++ - prepare for mmg import - delint 0.8.9: ====== - mmg: new feature: mmg will ask for confirmation before overwriting a file. This can be turned off on the settings tab. - mmg: new feature: Implement drag'n'drop of files onto the input, attachment and chapter tabs. For the input and attachment tabs it works like pressing the 'add' button. On the chapters tab it works like calling 'Chapter Editor -> Open'. - mkvinfo/mmg: Enabled compilation with wxWidgets 2.5 and Unicode enabled builds of wxWidgets. - all: Increased the precision for timecodes in chapter files to nanoseconds (optionally, you can still use fewer digits after the '.'). - mkvmerge: Fixes for compilation with gcc 3.4. - mkvmerge: bug fix: Some strings read from RealMedia files were not zero-terminated resulting in broken track recognition for some files.
Updated to version 0.8.8. Changes: 0.8.8: ====== - mkvtoolnix now depends on libebml 0.7.0 and libmatroska 0.7.0. - mkvinfo: bug fix: mkvinfo was forcing libmatroska not to handle unknown elements and crashed on those. - mmg: new feature: When adding Matroska files the video track's display dimensions are displayed as well. - mmg: bug fix: On non-Windows systems some combinations of wxWindows and GTK caused continuous 100% CPU usage after a special call to wxExecute. - mkvmerge: new feature: Implemented reading AAC from AVIs. - mkvmerge: bug fix: The Flac packetizer was accessing uninitialized memory resulting in a crash on Windows. - mkvemrge: bug fix: Fixed the handling of RealMedia files with 'multirate' tracks (again). - mkvmerge: bug fix: On some rare occasions chapters were not written correctly when splitting was active. - avilib: bug fix: Fixed compilation on big endian systems. 0.8.7: ====== - mkvinfo: new feature: Added a terse output format via '-s'. - mkvmerge: new feature: If using MPEG4 video and no aspect ratio or display dimensions are given mkvmerge will extract the aspect ratio information from the stream and automatically set the display dimensions accordingly. - mkvmerge: bug fix: Using audio sync on AC3 tracks read from Matroska files did not work. - mkvextract: new feature: Added extraction of RealAudio and RealVideo tracks to RealMedia files. - mmg: new feature: Added a 'job queue'. The current settings can be added as a new job, and all pending jobs can be started for batch processing without user interaction.
Initial import of mkvtoolnix-0.8.6: Set of tools to create, alter and inspect Matroska files. MKVtoolnix is a set of tools to create, alter and inspect Matroska files. With these tools one can get information about (mkvinfo) Matroska files, extract tracks/data from (mkvextract) Matroska files and create (mkvmerge) Matroska files from other media files. From pkgsrc-wip, created by Sergey Svishchev with modifications by me.
Initial revision