Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
Name: mkvtoolnix | Distribution: SUSE Linux Enterprise 15 SP4 |
Version: 67.0.0 | Vendor: openSUSE |
Release: bp154.1.42 | Build date: Thu May 12 03:20:22 2022 |
Group: Unspecified | Build host: sheep88 |
Size: 34866108 | Source RPM: mkvtoolnix-67.0.0-bp154.1.42.src.rpm |
Packager: https://bugs.opensuse.org | |
Url: http://bunkus.org/videotools/mkvtoolnix/ | |
Summary: Tools to Create, Alter, and Inspect Matroska Files |
Tools to create and manipulate Matroska files (extensions .mkv and .mka), a new container format for audio and video files. Includes command line tools mkvextract, mkvinfo, mkvmerge and mkvpropedit.
GPL-2.0-or-later
* Sat Apr 16 2022 Luigi Baldoni <aloisio@gmx.com> - Update to version 67.0.0 New features and enhancements: * all: IETF BCP 47/RFC 5646 language tags: when deriving the legacy language element codes to use a language tag's ISO 639 code is also potentially interpreted as an & its prefix is used as the legacy language code. For example, "Yue Chinese" = `yue` is not part of ISO 639-2. However, there is an extlang subtag `yue` with a valid prefix of `zh` ("Chinese"), and for "Chinese" there is an ISO 639-2 language code: `chi`. In this example the IETF language element would be set to `yue` and the corresponding legacy element to `chi`. * all: IETF BCP 47/RFC 5646 language tags: grandfathered language tags are now supported. * all: IETF BCP 47/RFC 5646 language tags: all deprecated subtags from the IANA language subtag registry are now supported. * all: IETF BCP 47/RFC 5646 language tags: all lists of valid subtags have been updated from their respective authoritative sources. * all: IETF BCP 47/RFC 5646 language tags: all in the IANA language subtag registry are now supported, even those marked as deprecated and of type 'grandfathered'. * all: IETF BCP 47/RFC 5646 language tags: reduced the maximum number of extended language subtags that are present in a valid tag from 3 to 1 in compliance with RFC 5646 section 2.2.2. * all: IETF BCP 47/RFC 5646 language tags: all language codes reserved for private/local use (`qaa`–`qtz`) are now supported. * all: IETF BCP 47/RFC 5646 language tags: Digital Cinema Naming Convention language codes that fall into the IETF BCP 47 range of "private use" tags (`qaa`–`qtz`) are now replaced by their IETF BCP 47 equivalents during normalization (e.g. `QMS` → `cmn-Hans`). * all: added a new translation to Chinese Simplified (Singapore) by Dian Li. * mkvmerge, mkvpropedit: added a new command line option called `--enable-legacy-font-mime-types`. With this option on the two programs will use the same legacy MIME types for fonts whenever new attachments are added (both programs), when reading existing attachments (only `mkvmerge`) or when replacing existing ones (only `mkvpropedit`). * mkvmerge, mkvpropedit: IETF BCP 47/RFC 5646 language tags: added a command line option `--normalize-language-ietf <mode>` which turns on normalization of IETF BCP 47 language tags to either their canonical (mode `canonical`) or extended language subtags form (mode `extlang`) or turns it off (mode `off`). If the option isn't given, language tags will now be normalized to the canonical form. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: ISO 639-3 and 639-5 languages will now be used by default. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor dialog will now show warnings in several cases: when deprecated tags are used; when the tag's canonical and/or extlang forms differ from the user input. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor now has a button to replace the current tag with a normalized form (canonical or extlang) if those differ from the current tag. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: added an option in the preferences to always normalize all language tags to their canonical or extlang forms or to turn normalization off. Can also be enabled from the language editor dialog. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now shows a warning if a variant is used with a prefix that isn't in the variant's list of suitable prefixes. It'll also say if the corresponding canonical/extlang forms would have a suitable prefix. * MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now shows a warning if a script is used with a language for which it should be suppressed. * MKVToolNix GUI: multiplexer: the track property group boxes in the scrollable pane are now collapsible & expandable, saving their state over restarts of the GUI. This is in preparation of adding many more track properties in future releases, allowing the user to hide parts they don't use all that often. * MKVToolNix GUI: multiplexer: if the option "use legacy font MIME types" is enabled in the preferences, the new command line option `--enable-legacy-font-mime-types` will be passed to `mkvmerge` in order to have it remap the MIME types of existing attachments, too. Bug fixes: * all: IETF BCP 47/RFC 5646 language tags: variants aren't validated wrt. to prefixes anymore as BCP 47 doesn't actually pose restrictions on them, saying only that prefixes "are suitable sequences" for use with the variants. What is now verified, though, is that no variant is used multiple times within the same language tag. * build system & MKVToolNix GUI: fixed detecting the presence of & the compilation with the multimedia module of Qt version 6.2.0 and newer. * MKVToolNix GUI: job queue: fixed compiling in the audio player code for the the "play audio" end-of-job action. * MKVToolNix GUI: multiplexer: recognizing added XML chapter, segment info or chapter files required the XML declaration & root node (e.g. `<?xml…?> … <Chapters>` for chapters) be located within the first 1 KB, which wasn't enough for files that contain a lot of comments at the start like the included `example-chapters-2.xml`. The detection range was extended to 10 KB. Build system changes: * The bundled `fmt` library was updated to v8.1.1. * The bundled `nlohmann-json` library was updated to v3.10.5. * The bundled `pugixml` library was updated to v1.12.1. * Sun Mar 13 2022 Luigi Baldoni <aloisio@gmx.com> - Update to version 66.0.0 New features and enhancements: * mkvpropedit: added a new option `--chapter-charset` allowing the user to specify the character set to use when reading the following chapter file. * MKVToolNix GUI: each language shortcut can now be associated with an optional track name that is set along with the language when the shortcut is used. Bug fixes: * mkvmerge: Ogg/OGM reader: mkvmerge will no longer abort with an exception when it encounters Vorbis comments that contain data that isn't valid UTF-8. * MKVToolNix GUI: multiplexer: fixed several issues with the tab order of elements in the "properties" pane and the "output" tab. Also fixed the language display widgets (e.g. "track language" in the "properties" pane) never receiving tab focus. * MKVToolNix GUI: multiplexer: the chapter name template will now be passed to `mkvmerge` if a chapter file is selected on the "output" tab. * Sun Feb 06 2022 Luigi Baldoni <aloisio@gmx.com> - Update to version 65.0.0 New features and enhancements: * mkvmerge: the options `--default-track` and `--forced-track` have been renamed to `--default-track-flag` and `--forced-display-flag` respectively for improved consistency with other option names & the wording used in the GUI. However, the old names will be supported and recognized indefinitely. What will remain unchanged is the property names for those flags in mkvmerge's identification output. Existing third-party programs will continue working as they are. * mkvmerge: added a new option `--track-enabled-flag` to set or unset the "track enabled" track header flag. * mkvmerge: MP4 reader: `mkvmerge` will now evaluate the `flags` field of the track header atom (`tkhd`) and set the track's "enabled" flag accordingly. * MKVToolNix GUI: multiplexer: added support for the "track enabled" track header flag. * MKVToolNix GUI: multiplexer, header editor: added several menu entries & keyboard shortcuts for toggling various track flags of the currently selected tracks, e.g. `Ctrl+Alt+F, D` (that's `Ctrl` and `Alt` with `F` simultaneously followed by `D` without any other key pressed) for toggling the "default track" flag. * MKVToolNix GUI: multiplexer, header editor: added menu entries & keyboard shortcuts for setting the language of the currently selected tracks to one from a configurable list of languages. The shortcuts used are `Ctrl+Alt+A, 1` through `Ctrl+Alt+A, 0` for the first ten entries of that list (that's `Ctrl` and `Alt` with `A` simultaneously followed by a digit without any other key pressed). * MKVToolNix GUI: chapter editor: if the user enters commas in start or end timestamps they will automatically be changed to points as the decimal separator, allowing for easier copy & paste from other programs/sources. * MKVToolNix: header editor: the selected track or attached file can now be moved up & down with the keyboard shortcuts `Ctrl+Up` & `Ctrl+Down` respectively. Bug fixes: * mkvmerge: Matroska reader: DVB subtitle tracks with a codec private data size of more than five bytes are accepted now, too. * Mon Jan 10 2022 Guillaume GARDET <guillaume.gardet@opensuse.org> - Update _constraints to cover all architectures, not only ppc64 * Mon Dec 27 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 64.0.0 New features and enhancements: * MKVToolNix GUI: language dialog: when the user switches between the two edit modes, the mode's corresponding first control is automatically focussed. Bug fixes: * all: language lists: the entries for "Ancient Greek (to 1453)" and "Modern Greek (1453-)" have been renamed to "Greek (ancient, -1453)" and "Greek (modern, 1453-)" respectively in order to be easier to find. * mkvmerge: VobSub reader: files containing `id: --` lines to indicate that the track language isn't known were rejected by `mkvmerge`. Now they're accepted, and `und` (undetermined) is used as the language. * MKVToolNix GUI: chapter editor: the "Save to Matroska or WebM file" function was using the wrong standard file dialog (the "open file" one instead of "save"), leading to confusing button names. * MKVToolNix GUI: high DPI scaling: fixed the icons in the tool selector having the wrong size for scaling factors other than 100% or 200%. Build system changes: * The bundled `fmt` library was updated to v8.0.1. * The bundled `nlohmann-json` library was updated to v3.9.1. * The bundled `pugixml` library was updated to v1.11 revision 6a76cac. * The bundled `utf8-cpp` library was updated to v3.2 revision b85efd6. * Sun Nov 14 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 63.0.0 New features and enhancements: * mkvmerge: AC-3 parser: E-AC-3 with BSID values > 10 and ≤ 15 are recognized now, too. * mkvmerge: when using language codes for track selection (e.g. `-a und,en`) all tracks that do not have a language property (due to their container not providing one, e.g. AVIs) will be treated as if they did have one set to `und` ("undetermined") as that is the language the track will have in the Matroska file anyway. Before this change it wasn't possible to match such tracks via language codes. * MKVToolNix GUI: the spinner in the bottom right corner will now be hidden when no jobs are currently running. * MKVToolNix GUI: header editor: a new column has been added to the tree view showing the status of the "track enabled" flag. The information is also shown on the track overview page on the right. * MKVToolNix GUI: header editor: users can now reorder tracks by dragging & dropping. Bug fixes: * mkvmerge: AVI reader: fixed reading AVI files that contain `vprp` video properties header chunks; reading aborted too early. * Sun Oct 10 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 62.0.0 New features and enhancements: * all: IETF BCP 47/TFC 5646 language tags: all ISO 639 languages are now available, even the ones that aren't of types "Constructed", "Living" or "Special". * mkvmerge, mkvpropedit: chapters: both programs will now write elements set to their default value, too (e.g. the legacy language element if it's set to `eng`). This is done to be more consistent with how MKVToolNix GUI writes chapters. * MKVToolNix GUI: multiplexer: when adding new files as attachments the GUI checks if there are other attachments with the same name. If so, the GUI would ask whether to skip the affected files or add them anyway. There's now an option in the preferences to always skip such files, and it's enabled by default. * MKVToolNix GUI: chapter editor: removed the support for explicitly setting the legacy country elements. Instead the legacy country elements are derived from the region parts of the IETF BCP 47 languages. Bug fixes: * mkvmerge: fixed a crash when splitting by chapters is enabled but there are no chapters at all. * mkvmerge: the error message when trying to split by a chapter number that doesn't exist contained the wrong number of chapters that actually do exist. * mkvmerge: AVC ES parser: fixed mkvmerge aborting due to uncaught exception when encountering bad SPS data. * mkvmerge: AVC/H.264 parser: re-added the hack `--engage all_i_slices_are_key_frames` which was accidentally removed in release v61. * mkvmerge: AVI reader: fixed a crash trying to allocate too big of a memory chunk due to an integer overflows in check conditions. * mkvmerge: HEVC ES parser: fixed another issue with frame type recognition. Certain frames were marked as B frames/discardable on the container level even though they could be reference pictures. Now only SLNR pictures (sub-layer non-reference) are marked that way. * mkvmerge: HEVC ES reader: improved file content detection for HEVC ES files with wrong file name extensions (e.g. `.mkv`), which fixes them being mis-detected as something else, e.g. DTS. * mkvmerge: HEVC ES parser: "end of sequence" NALUs are kept now, and no superfluous flushing will be done when one is found. This prevents splitting NALUs into two different Matroska blocks when they should really be part of a single one, also causing problems with erroneous timestamps. Mostly affects DoVi NALUs. * mkvmerge: Matroska reader, TrueHD: mkvmerge will now probe much more TrueHD frames trying to find the first sync frame. This fixes track detection in situations when a TrueHD doesn't start with a sync frame, e.g. when the source file's the result of splitting between sync frames. * mkvmerge, MKVToolNix GUI's chapter editor: IETF BCP 47/RFC 5646 language tags: when reading chapters from MPLS playlist files, the `ChapLanguageIETF` element will now be set to the configured default chapter language, not just the legacy `ChapterLanguage` element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF BCP 47 elements will now always be created before writing chapters unless IETF BCP 47 elements are disabled. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when a chapter display element contains legacy language & country elements but no IETF BCP 47 elements and IETF BCP 47 elements aren't disabled, the IETF BCP 47 elements created will contain the region from the legacy element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: Legacy country elements are now created when IETF BCP 47 elements are present & contain a region code allowed in legacy country elements. Build system changes: * The `tools` sub-directory is now always built. The corresponding `configure` option `--with-tools` has been removed. The `install` target still doesn't install them, though. - Add tools subpackage * Mon Aug 30 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 61.0.0 New features and enhancements: * all: IETF BCP 47/RFC 5646 language tags: implemented support for officially registered IANA language tag extensions. * mkvmerge: track selection: when using language tags for selecting which tracks to keep, mkvmerge will now use component-based language tag matching instead of comparing them verbatim. This means that only those components (language, region etc.) the user specified will be required to exist and be equal. For example, if a file contains three subtitle tracks with languages `es` (generic Spanish), `es-MX` (Spanish as spoken in Mexico) and `es-ES` (Spanish as spoken in Spain), the user can use `--stracks es` to match all three tracks or be more specific with e.g. `--stracks es-MX` which would only match one track. Similarly inverting the selection with e.g. `--stracks !es` would get rid of all three tracks, not just the one for the generic Spanish. * MKVToolNix GUI: multiplexer: deriving track languages from file names: the GUI can now detect full BCP 47/RFC 5646 language tags in file names. * MKVToolNix GUI: multiplexer: deriving track languages from file names: the default list of boundary characters now includes `-`. * MKVToolNix GUI: multiplexer: the GUI now defaults to the "lower" process priority setting for new installations in order to leave more room for other applications, especially interactive ones. Up to and including v59 the default was the "normal" process priority. v60 changed that to "lowest", which turned out to be much slower on Windows for no real gain over "lower". The setting will be auto-corrected by the GUI if the settings file were saved last with a version between v60.0.0.0 & v60.0.0.17 & "lowest" & it is still set to "lowest". * HEVC dumper development tool: the tool has been renamed to `xvc_dump` and extended to be able to dump AVC/H.264 bitstreams, too. It now also detects the type of bitstream framing (ISO 14496-15 vs. ITU-T H.264/H.265 Annex B). Bug fixes: * all: IETF BCP 47/RFC 5646 language tags: fixed a corner case of wrongfully allowing scripts/variants not listed in any of the entries in the prefix list when the prefix list contains prefixes restricting scripts/variants and a prefix solely with the language at the same time (example: the variant `ekavsk` with its prefixes `sr`, `sr-Cyrl` and `sr-Latn` where e.g. `sr-ekavsk` and `sr-Cyrl-ekavsk` should be allowed but not `sr-Bali-ekavsk`). * mkvmerge: HEVC/H.265: the frame type of B frames was often wrongfully signalled as P frames instead, both with `BlockGroup` (missing second references) and `SimpleBlock` ("discardable" flag not set) elements. * mkvmerge: SSA/ASS packetizer: the frame numbers will now be re-calculated when appending SSA/ASS tracks so that frame numbers of appended tracks are always strictly higher than frame numbers of the track they're appended to. * mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: when BCP 47 language tags are used with a language code that isn't part of ISO 639-2, the programs will now write a legacy language element set to `und` ("undetermined") instead of not writing such an element at all or writing one with an invalid code. * mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: the programs will ensure that the legacy and IETF language elements written will be unique within the scope of the same "chapter display" element. * mkvinfo, MKVToolNix GUI's info tool: in summary mode the frame type was reported wrong for `BlockGroup` elements in which the `ReferenceBlock` elements were located behind the `Block` element. Build system changes: * all: `std::codecvt_utf8` is now used instead of Boost's `utf8_codecvt_facet`. The bundled copy the latter in `lib/boost` has therefore been removed. - Drop mkvtoolnix-use-system-boost.patch (no longer necessary) * Sat Jul 31 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 60.0.0 New features and enhancements: * all: IETF BCP 47/RFC 5646 language tags: added support for language families from ISO 639-5 that aren't part of 639-2. * all: IETF BCP 47/RFC 5646 language tags: implemented support for Alpha 2 country codes of the "user-defined" category: `AA`, `QM`–`QZ`, `XA`–`XZ` and `ZZ`. * all: IETF BCP 47/RFC 5646 language tags: updated the various lists of valid subtags from the official specs. * MKVToolNix GUI: multiplexer: pressing the keyboard shortcut for the track's "Language" label (Alt+L for English) will now open the language dialog. * MKVToolNix GUI: multiplexer: added an option in the preferences for turning off the colored boxes indicating which file each track belongs to. Bug fixes: * all: IETF BCP 47/RFC 5646 language tags: fixed validating extended language & variant subtags against their allowed prefixes (e.g. a valid tag with a country code as in `de-CH-1996` is recognized as valid while two generally known variants that aren't allowed together as in `de-1901-1996` is recognized as invalid). * all: IETF BCP 47/RFC 5646 language tags: when looking up a language for a two- or three-letter code, the programs will no longer compare that code with language names as that was unintended, ambiguous (e.g. the code "Ga" could be interpreted as the 639-2 alpha-2 code for "Irish" or as the name of the language called "Ga") and only worked with languages whose name was at most three letters long. * mkvmerge: HEVC/H.265: appending Matroska files with HEVC tracks might lead to the loss of the first couple of frames from each of the second and all following files. * mkvmerge, mkvextract: HEVC/H.265 parser: fixed the programs aborting when parsing VPS or SPS NALUs with invalid content due to unhandled exceptions. * MKVToolNix GUI: multiplexer: when the option "use legacy MIME types for font attachments" is enabled, the GUI will now use `application/x-truetype-font` for font collection files. * MKVToolNix GUI: multiplexer: when adding multiple files at once, the GUI will sort file names with numbers the way a human would expect it to. For example, `1.mp4`, `9.aac`, `10.srt`, `11.srt` are now sorted exactly that order instead of `1.mp4`, `10.srt`, `11.srt`, `9.aac`. * MKVToolNix GUI: header editor: the header editor will now honor the "use legacy MIME types when adding font attachments" setting when adding new attachments. * Sat Jul 10 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 59.0.0 New features and enhancements: * mkvmerge: WebVTT parser: the parser now follows the specs' rules for parsing timestamps more closely by being more lenient: it allows arbitrary number of spaces & tabs at the start of the line & around the arrow; it allows any number of digits for the hours. * MKVToolNix GUI: multiplexer: when adding a Blu-ray playlist without scanning for other playlists the GUI will now look for disc library information & let the user select which one to use if there's more than one entry. * MKVToolNix GUI: multiplexer: added an option for sorting files & tracks by track types when adding them to multiplex settings. The order is: video first followed by audio, subtitles and other types. Files & tracks can still be reordered manually later. The option is enabled by default & can be found in the preferences → "Multiplexer" page → "Adding files" section. * MKVToolNix GUI: multiplexer: added an option for recognizing file name sequences such as `movie.001.mp4`, `movie.002.mp4`, `movie.003.mp4` when adding multiple files at once. If a sequence is detected, the only first file will be added while the second and following file names will be appended to the first one. The option is enabled by default & can be found in the preferences → "Multiplexer" page → "Adding files" section. * MKVToolNix GUI: multiplexer: added small colored boxes for each file & track in order to indicate from which file each track is read. The colors used can be configured in the preferences → "Multiplexer" page → "File & track colors" section. Bug fixes: * build system: fixed compilation with fmt v8. Fixes #3151. * mkvmerge: SRT subtitle reader: characters that aren't valid according to the assumed encoding of the file will now be replaced by the Unicode "Replacement Character" U+FFFD instead of keeping the invalid characters, potentially violating the Matroska specs. * mkvmerge: WebVTT parser: the parser now accepts timestamps with hours larger than 99. * mkvextract: TTA extraction, only on Windows: fixed removing the temporary file created during extraction. * mkvmerge, mkvpropedit, MKVToolNix GUI's multiplexer & header editor: MIME type detection is now done using Qt instead of the `magic` library. The main impact is the MIME types of TrueType & OpenType fonts are now detected correctly. * MKVToolNix GUI: multiplexer: when adding files to the multiplexer by running the GUI's executable with file names as command line arguments, the source directory will be remembered as the "last open directory" again, causing subsequent uses of the "open file" dialog to start in the same directory. * MKVToolNix GUI: multiplexer: the "default track flag" column in the track list was missing its icons. Additionally it contained text even for things that aren't regular tracks and therefore do not actually have that flag (e.g. chapters or tags). * MKVToolNix GUI: multiplexer: the default for the dialog asking the user what to do with dragged & dropped files if they've never seen the dialog is back to adding the files to the current multiplex settings instead of "add as additional parts" which was an unintentional default. * MKVToolNix GUI: multiplexer: the "show command line" dialog will now always use backward slashes for the "Windows (cmd.exe)" mode and forward slashes for the "Linux/Unix shells" mode, regardless of the operating system it's currently running on. Build system changes: * The Qt library is now required for building all applications, even the command-line ones, as they use Qt's MIME type detection capabilities. In turn this means that you cannot disable the Qt usage anymore; either Qt5 or Qt 6 is required. You can still chose not to build MKVToolNix GUI, though. A new option has been added to `configure` for this purpose: `--disable-gui`. * The `gmp` library is now required. * The `magic` library is not used anymore. * The `PCRE2` & `JPCRE2` libraries are not used anymore. The bundled version of `JPCRE2` was removed. * Boost's "rational" library is not used anymore. * `configure`: the option `--enable-appimage` has been removed. The location of the relevant directories within an AppImage is now detected automatically. * The bundled `fmt` library was updated to v8.0.0. - Use system version of utfcpp * Sun Jun 13 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 58.0.0 New features and enhancements: * mkvmerge, MKVToolNix GUI's multiplexer: the handling of the "default track" flag has been changed to match the recent changes to the Matroska specifications. The new semantics are that if it is set, it is supposed to signal to the player that this track is eligible for being played by default, potentially taking other factors such as user preferences regarding languages into account. This implies that more than one track of each type can have this flag set. For example, a Blu-ray disc with three audio tracks might have the main audio in both English and Japanese, whereas the third audio track contains the director's comments. In such a case the first two tracks should have the "default track" flag set, the third one shouldn't. Earlier `mkvmerge` was enforcing that only one track of each type could have the flag set. This restriction has been removed, both in `mkvmerge` and in the GUI's multiplexer. `mkvpropedit` and the GUI's header editor are unaffected as they've always allowed to set the flag on as many tracks as the user wanted. * mkvmerge: AVC/H.264 & HEVC/H.265 identification: added the stream's pixel dimensions (AVC only; were present for HEVC already) & default duration. * mkvmerge, mkvextract: HEVC/H.265: added support for reading single-layer Dolby Vision from Annex B type bitstreams (elementary streams, MPEG transport streams). * mkvinfo: the option `-X`/`--full-hexdump` now affects all binary elements, not just the frame data in `SimpleBlock` and `BlockGroup` elements. * MKVToolNix GUI: multiplexer: the "delay" and "sync" options can now be used for chapters in source files, too. * MKVToolNix GUI: when moving list entries up & down with the optional buttons or the keyboard shortcuts (instead of using drag & drop), the GUI ensures that the top-most selected entry remains visible after the move. * MKVToolNix GUI: added an option in the preference to use legacy MIME types for font attachments instead of the current standard ones (e.g. 'application/x-truetype-font' instead of 'font/sfnt' and 'font/ttf'). Bug fixes: * build system: fixed filtering out optimization options when compiling the file `iso639_language_list.cpp` (before only numeric optimization levels were filtered out and only if it wasn't the last option in the list of flags). * build system: when libmagic was detected via `pkg-config`, MKVToolNix was actually compiled without support for libmagic due to a preprocessor symbol not being defined. * mkvmerge: MP4 reader: fixed an issue with timestamps overflowing when the file's or the track's time scale is large. * mkvmerge, mkvextract: fixed key frame handling for `BlockGroup` elements with a forward reference but no backward references. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: the programs will no longer omit writing mandatory elements set to their default value if other elements of the same type are present in the same master. This affects mostly the "chapter language" element which may occur multiple times within the same "chapter display" master. If it does occur multiple times and one of them is set to "English" (which is that element's default value), that element will now be written, too. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: when parsing chapter files IETF & legacy language elements as well as legacy country elements will now be properly generated depending on which exist already, especially when there's more than one language and/or country element in a "chapter display" element. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: fixed reading OGM-style chapter files with timestamps that don't have exactly three decimal places. Any number of decimal places between one and nine is now supported for nanosecond precision. * MKVToolNix GUI: chapter editor: added/fixed support for "chapter display" elements with multiple languages or countries. Build system changes: * Qt 6: added support for building with Qt 6. `configure` will look for Qt 6 first and only continue looking for Qt 5 if Qt 6 isn't found or disabled via `--disable-qt6`. Qt 6 detection works by first looking for the `qmake6` binary. Its location can be specified with the `--with-qmake6=…` option. All other Qt 6 related facts (such as compiler & linker flags or the position of the other required tools such as `lconvert`, `moc`, `rcc` and `uic`) will be derived from the output generated by `qmake6`. Note that at this point Qt 6 is not yet supported for the cross-compilation build to Windows, nor is a static Qt 6 build supported yet. Note that the command line options `--enable-static-qt`, `--with-qt-pkg-config-modules` and `--without-qt-pkg-config` only apply to the Qt 5 and have no effect on Qt 6. * Qt 5: the options for specifying the position of the tools (`--with-moc=…`,`--with-rcc=…` and `--with-uic=…`) have been removed. Their position will now be derived from the output generated by `qmake`. * `configure`: completely disabling the GUI now requires passing both `--disable-qt6` and `--disable-qt` options. * Boost's multi-precision library is now required. * Boost v1.66 or newer is now required. * Sat May 22 2021 Luigi Baldoni <aloisio@gmx.com> - Up date to version 57.0.0 New features and enhancements: * mkvmerge: MP4 reader: added support for reading Dolby Vision from MP4 files (FourCCs `dvh1` and `dvhe`; configuration records `dvcC`, `dvvC` and `hvcE` will be converted into block addition mappings). * mkvmerge: SRT subtitles: mkvmerge now accepts empty text files with the extension `.srt` as SRT subtitle files, enabling the creation of empty SRT tracks. * mkvmerge, mkvextract: HEVC/H.265: access unit delimiter NALUs will no longer be discarded, neither during muxing nor during extraction. * MKVToolNix GUI: preferences: switched the order & wording of controls in the "enabling items" panel to make it clearer that certain controls define exceptions. Bug fixes: * mkvmerge: HEVC/H.265 parser: several NALU types, notably the Dolby Vision-specific NALUs ("unspecified 62" and "unspecified 63") and suffix SEI NALUs, are now stored with the frame they belong to instead of with the next frame. * mkvmerge: HEVC/H.265 packetizer: fixed setting the track's default duration when reading HEVC/H.265 from Matroska files that don't have a default duration set. * mkvmerge: HEVC/H.265 packetizer: fixed the calculation of the duration of frames so that `SimpleBlock` elements can be used again instead of `BlockGroups` with `BlockDuration` elements. * mkvmerge, mkvextract: HEVC/H.265 parser: fixed issues with ordering & duplication of certain NALUs (parameter set & prefix SEI NALUs). * MKVToolNix GUI: multiplexer: when dragging & dropping files to the multiplexer, the source directory will be remembered as the "last open directory" again, causing subsequent uses of the "open file" dialog to start in the same directory. * mkvinfo: fixed the position of frames in block groups containing "block duration" elements in summary mode (e.g. for subtitle tracks). Build system changes: * `configure` will now try to detect `libmagic` via `pkg-config` and fall back to including & linking directly if it cannot be found via `pkg-config`. * Fri Apr 09 2021 aloisio@gmx.com - Update to version version 56.1.0 New features and enhancements: * mkvmerge: AAC: added support for LOAS/LATM files with channel configuration indexes 9–21 (e.g. channel count 22.2 for index 13) according to Rec. ITU-R BS.1196-7 & ISO/IEC 23008-3:2019. Bug fixes: * mkvmerge: HEVC/H.265 parser: fixed invalid memory access that could happen when reading certain types of HEVC data (e.g. with changing parameter sets mid-stream) from certain containers (e.g. Matroska). This bug was introduced in release 56.0.0. * mkvextract: AAC: mkvextract will now abort with an useful error message when the user tries to extract a track whose 'audio-specific config' element in `CodecPrivate` signals a number of channels of 7 or greater than 8 as that isn't supported by the ADTS format. Build system changes: * configure: the `--enable-ubsan` option hasn't actually enabled anything since release 39.0.0. * Mon Apr 05 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 56.0.0 New features and enhancements: * mkvmerge, mkvpropedit: tags: the programs will no longer write tag elements that are mandatory and set to their default value (e.g. "tag language" set to `und` = undetermined). * mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: the programs will no longer write chapter elements that are mandatory and set to their default value (e.g. "chapter language" set to `eng` = English or "Chapter flag enabled" = 1). * mkvextract: chapters: mkvextract will no longer add a `ChapterLanguage` element set to `eng` to the generated XML content if the source file doesn't contain such an element. * MKVToolNix GUI: multiplexer: when using the "tab widget below the files & tracks" layout option for the track properties the elements in the "general options" tab will use six rows à four columns instead of twelve rows à two columns, greatly reducing the required height. Bug fixes: * mkvmerge: AAC reader: fixed mkvmerge aborting to read AAC files bigger than 2 GB with a message about not being able to allocate memory. * mkvmerge: chapters: `ChapLanguageIETF` elements were still created when the option `--disable-language-ietf` was given after an option leading to the creation of chapters. Now the position doesn't matter anymore. * mkvmerge: chapters: when the option `--disable-language-ietf` is used, `ChapLanguageIETF` elements won't be written even when sources are read (Matroska files or XML chapters files) that do contain those elements. * mkvmerge: tags: when the option `--disable-language-ietf` is used, `TagLanguageIETF` elements won't be written. * mkvmerge: tags: mkvmerge will no longer write language elements for the track statistics tags it creates, making the effective language "undetermined" due to `und` being the default value for the legacy tag language element. * mkvmerge: tags: the XML tag parser will now validate all `<Simple>` children of `<Tag>` elements, not just the first for each `<Tag>`. * mkvmerge: tags: the XML tag parser now uses the spec-compliant `und` ("undetermined") as the default language for `<Simple>` tags instead of `eng`. * mkvmerge, mkvpropedit: tags: mkvmerge will no longer set the "target type" for track statistics tags (earlier it used `MOVIE`). The "target type value" will still be set to `50`. * mkvmerge, mkvextract: HEVC/H.265: both programs will now normalize the placement of VPS, SPS and PPS NALUs. Each key frame is prefixed with exactly one copy of the currently active parameter sets. This fixes certain classes of bugs related to splitting/appending. * mkvinfo: when compiled with newer versions of the `fmt` library, certain numbers were not output correctly (e.g. a track's audio sampling frequency of 48000 might be output as 48). * MKVToolNix GUI: multiplexer: deriving the track language from the file name will match languages case insensitively again (like versions prior to v55). * MKVToolNix GUI: multiplexer: under certain circumstances keyboard shortcuts such as `Ctrl+W` for closing the active tab or `Ctrl+R` for starting to multiplex ceased to work until the user did certain other things (such as switching to a different tool & back to the multiplexer or opening the multiplexer menu). This started with v54. * MKVToolNix GUI: chapter editor: the editor will no longer create empty `ChapterCountry` elements when adding a chapter name with no default country selected in the preferences. Build system changes: * The bundled `fmt` library was updated to v7.1.3. * Sat Mar 06 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 55.0.0 Bug fixes: * MKVToolNix GUI: multiplexer: the user can now configure what to do when using the "Add source files" button independently of the setting for what happens when files are dragged & dropped onto the GUI. The same options are available, but they're distinct settings, allowing for different use cases. * MKVToolNix GUI: multiplexer: deriving the track language from file names doesn't use one big regular expression of all enabled languages anymore. Instead, the file name is split into parts on a list of characters (such as `.` or `(` and `)`; configurable in the preferences). This prevents the regular expression becoming too big for the regular expression library to handle when many languages are enabled. * MKVToolNix GUI: preferences: the language lists for "deriving track languages" and "enabling items by language" always included all the ISO 639-3 languages, even if those weren't enabled in the "often-used languages" pane. Other changes: * mkvmerge, MKVToolNix GUI multiplexer: the functionality for changing the length of the NALU "size" field for AVC/H.264 and HEVC/H.265 tracks has been removed. The corresponding command-line option will continue to be recognized by mkvmerge as not to break existing third-party applications, but it won't actually do anything. * Fri Feb 26 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 54.0.0 New features and enhancements: * mkvmerge: added support for using ISO 639-3 language codes in IETF BF47 language tags. * mkvmerge: AC-3 parser: added support for byte-swapped AC-3 data. * mkvmerge: Matroska reader: for audio tracks that have the bit depth track header set mkvmerge will now keep that header even for codecs that don't require it for decoding. * mkvmerge: MPEG transport stream reader, PCM audio tracks: mkvmerge will now re-order the channels for 5.1, 7.0 and 7.1 channel tracks from the Blu-ray layout to the WAVEFORMATEXTENSIBLE layout expected in Matroska. * mkvmerge, mkvinfo, mkvpropedit, MKVToolNix GUI: added support for the following new track header elements: "hearing impaired" flag, "visual impaired" flag, "text descriptions" flag, "original" flag, "commentary" flag. * MKVToolNix GUI: added support for using ISO 639-3 language codes in IETF BF47 language tags. As there are several thousand of them, they're deactivated by default and must be activated in the preferences ("GUI" → "Often used selections" → "Languages"). * MKVToolNix GUI: multiplexer: when adding Blu-rays the user can select multiple playlists to add simultaneously in the "select playlist to add" dialog. * MKVToolNix GUI: multiplexer: the file name extensions "eb3" and "ec3" were added for Dolby Digital Plus & "mpl" for Dolby TrueHD in the file dialogs. * MKVToolNix GUI: multiplexer: when adding multiple files the dialog asking the user what to do with them has gained a new checkbox. If enabled, all files containing at least one video track will always be placed in newly created multiplex setting. * MKVToolNix GUI: multiplexer: added a menu entry in the "Multiplexer" for adding all files that are currently in the clipboard. Bug fixes: * mkvextract: AAC: fixed wrong channel mask field in the ADTS headers for 7.1 channel layouts. * mkvextract: h.265/HEVC extraction: if the first frame starts with the parameter sets (SPS, PPS & VPS), the ones from CodecPrivate aren't written and the ones from the first frame are kept. * mkvmerge: fixed the calculation of chapter timestamps read from NTSC DVDs. * MKVToolNix GUI: IETF BCP 47 language widget: the language combo box will now always contain the language code the user enters in the free-form field, even if it isn't in the list of often-used languages the user configured in the preferences. * MKVToolNix GUI: multiplexer: when browsing for the destination file name the default directory is now chosen according to the preferences regarding how the destination file name should be formed. For example, if the policy is set to "fixed output directory" then that output directory will be the one initially set when the directory selection dialog is opened. * MKVToolNix GUI: multiplexer: fixed the removal of appended source files if the "delete source files" end-of-job action is enabled. * MKVToolNix GUI: chapter editor: when importing chapters from DVDs the IETF BCP 47 language elements will be set, too, not just the legacy language elements. Build system changes: * libEBML v1.4.2 and libMatroska v1.6.3 are now required. The optional, bundled copies of both libraries have been updated to those versions. This bump in requirements fixes several heap overflow bugs in libEBML. * MKVToolNix is now using the C++17 library feature "file system library" instead of Boost's "file system" and "system" libraries. For the GNU Compiler Collection (gcc) libstdc++ this means v8 or newer is required; for clang's libc++ it means v7 or newer. * Sat Jan 30 2021 Luigi Baldoni <aloisio@gmx.com> - Update to version 53.0.0 New features and enhancements: * mkvmerge: AVI reader: added support for reading the video aspect ratio from the video properties header (`vprp` chunk) if present and setting the display dimensions accordingly. * mkvmerge: MP4 reader: for h.264/AVC tracks that don't have an `AVCConfigurationBox` (`avcC` atom) in their sample description (`stsd`) atom or whose `avcC` atom contains no content `mkvmerge` will now re-derive the `AVCConfigurationBox` from the bitstream. * mkvextract: mkvextract will now check if any of the destination file names is the same as the source file name and abort with an error if that's the case. * MKVToolNix GUI: when querying the user for a file name for saving things (e.g. multiplexer settings or an attachment in the header editor), the automatically suggested file name will now be based on the situation-specific file names (e.g. the destination file name for multiplexer settings or the attachment's name when saving an attachment in the header editor) instead of the directory's name. * MKVToolNix GUI: multiplexer: when deriving track languages from file names the GUI will now select the right-most match instead of the left-most one. For example, "La.vie.en.rose.(fr).srt" will now be detected as French (fr) instead of English (en). * MKVToolNix GUI: preferences: the items in the "pre-defined …" lists can now be renamed by double-clicking with the mouse or pressing the F2 key. Bug fixes: * mkvmerge: stretching chapter timestamps with `--chapter-sync` now works correctly with floating point values including fractions of floating point numbers (e.g. `12.3/45.67`). The tooltips in the GUI have been adjusted accordingly. * mkvmerge: MPEG 1/2 video handling: the "default duration" header field was often half the value it actually should be, resulting in all video frames having an explicit block duration with the correct value. * mkvmerge: MPEG 1/2 video handling: the data stored in `Codec private` and `Codec state` doesn't contain extensions other than sequence & sequence display extensions anymore. * mkvmerge: tag handling: when remuxing a Matroska file with the `--no-track-tags`, existing `SOURCE_ID` track tags are now skipped, too. * MKVToolNix GUI: multiplexer: the drop-down boxes with pre-defined track names now follow the order set in the preferences instead of sorting the entries alphabetically. * Tue Jan 05 2021 aloisio@gmx.com - Update to version 52.0.0 New features and enhancements: * MKVToolNix GUI: job queue: the maximum number of jobs to run concurrently can now be increased in the preferences. The default remains at 1. * MKVToolNix GUI: the GUI will now add a context-specific default extension to file names selected for saving on platforms that don't add one itself (e.g. GNOME). For example, when saving multiplexer settings the extension `.mtxcfg` will be added. * MKVToolNix GUI: added an option to the preferences for the window to stay on top of other windows. Bug fixes: * mkvextract: h.265/HEVC extraction: the code for skipping extraction of prefix SEI NALUs in the first frame was skipping two bytes too few, resulting in broken processing of all following bytes. * libEBML: the optional, bundled version of libEBML was updated to v1.4.1. Build system changes: * libEBML v1.4.1 is now required due to a bug in libEBML that caused pointers to just-freed memory being returned to the caller under certain invalid data constellations, causing use-after-free errors in all of MKVToolNix's programs. * Sun Oct 04 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 51.0.0 New features and enhancements: * mkvmerge, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added missing support for UN M.49 regions for which there are no corresponding ISO 3166 alpha codes. This enables language tags such as `es-419` = Spanish in Latin America and the Caribbean. * MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying the current language & the corresponding edit button is now displayed like a link (depending on the theme: different color & underlined), making it clearer that not just the edit button can be clicked but the text, too. Bug fixes: * mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due to certain data conditions. Found by fuzzying. * mkvmerge: AV1 packetizer: the duration of frames wasn't set properly. When appending AV1 IVF or OBU files this meant that the last frame of the Nth file and the first frame of file N+1 had the same timestamp. * mkvmerge: DTS reader: fixed handling of buffers with an odd length when byte-swapped DTS is detected so that mkvmerge doesn't abort with a failed assertion. Found by fuzzying. * mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will no longer claim to recognize data that looks like AVC or HEVC but with invalid video width/height values as that lead to failed assertions in libEBML later. Found by fuzzying. * mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught exceptions due to certain data constellations found by fuzzying. * mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero" error due to certain data conditions. Found by fuzzying. * mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the timestamp scaling factor being 0 after handling certain data constellations. Found by fuzzying. * mkvmerge: track statistics: fixed a "division by zero" error when the content's shorter than 1ms. Found by fuzzying. * mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an invalid memory access under certain data conditions. Found by fuzzying. * MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer open the language dialog when clicking on a disabled language display widget. * MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were not populated even when the language tag was valid and contained at a variant. * MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at least one of the other components (extended subtags, region, or variants) has something selected and "private use" is not empty, the GUI would claim this to be a valid tag, which it isn't. * MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes from "at least one entry selected" to "no entry selected", the input controls will be reset to their default state and not just disabled. Build system changes: * `configure` now checks for the presence of the a system-wide installed copy of the JPCRE2 C++ wrapper library for the PCRE2 library and uses that if it's new enough (at least v10.32.1). If not, the bundled version will be used as a fallback. * Sun Sep 06 2020 aloisio@gmx.com - Update to version 50.0.0 New feature: IETF BCP 47 language tags: * I've written up a [nice FAQ https://gitlab.com/mbunkus/mkvtoolnix/-/wikis/Languages-in-Matroska-and-MKVToolNix about the switch to using IETF BCP 47 language tags, how they interact with legacy language elements, how the programs actually behave and how to disable their use if necessary. * mkvmerge: IETF BCP 47/RFC 5646 language tags: mkvmerge will now accept full BCP 47 language tags for all options taking a language. mkvmerge will always write "LanguageIETF" track header elements. If the language tag contains a valid ISO 639-2 language code it will also set the legacy "Language" track header element to the included ISO 639-2 code. * mkvmerge: IETF BCP 47/RFC 5646 language tags: if present the "LanguageIETF" track header element will be reported as the `language_ietf` property in JSON identification mode. * mkvmerge: IETF BCP 47/RFC 5646 language tags in chapters: mkvmerge will now write "ChapLanguageIETF" elements when creating chapter atoms, either when reading the simple chapter format or when generating chapters due to the `--generate-chapters` command line option. * mkvmerge: IETF BCP 47/RFC 5646 language tags in tags: mkvmerge will now write "TagLanguageIETF" elements when creating "simple tag" elements, either when reading tag XML files or when generating them. * mkvmerge: IETF BCP 47/RFC 5646 language tags: added an option `--disable-language-ietf` that causes mkvmerge to only write the legacy language elements. * mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF BCP 47/RFC 5646 language tags in chapters: when reading XML chapter files the programs will now add "ChapLanguageIETF" elements for atoms that don't contain them. The values are derived from existing "ChapterLanguage" elements. * mkvpropedit: IETF BCP 47/RFC 5646 language tags: setting/deleting the track language now acts on both the old language element as well as the "LanguageIETF" track header element. * mkvpropedit: IETF BCP 47/RFC 5646 language tags: added an option `--disable-language-ietf` that causes mkvpropedit to apply changes to the `language` track header property only to the legacy language track header element. * mkvinfo: IETF BCP 47/RFC 5646 language tags: added support for the "LanguageIETF" track header element. * MKVToolNix GUI: multiplexer: added full support for IETF BCP 47/RFC 5646 language tags for both track and chapter languages. * MKVToolNix GUI: chapter: added full support for IETF BCP 47/RFC 5646 language tags for chapter languages. * MKVToolNix GUI: header editor: added full support for IETF BCP 47/RFC 5646 language tags for track header languages. The header editor allows editing of the legacy language elements and the IETF BCP 47 language elements independent of each other. Other new features and enhancements: * mkvmerge: the chapter generation mode `when-appending` now also works with the splitting modes `parts:` & `parts-frames:` when using the `…,+…` syntax for appending other sections of the source file to the same destination file. * MKVToolNix GUI: multiplexer: the file selection dialogs now include the extension `.dtsma` for DTS files. * mkvmerge: MP4 reader: sped up parsing MP4 DASH files with a lot of segments (`trun` atoms) quite a bit. * The PCRE2 regular expression library is now used instead of `std::regex` for big performance improvements in all places where regular expressions are used for parsing big chunks of text, e.g. in the subtitle parsers. Bug fixes: * MKVToolNix GUI: preferences: under certain conditions changing the selected entry in the page tree on the left did not cause the page shown on the right to be updated. * mkvmerge: splitting text by a fixed string (e.g. `,`) is now done by using `std::string.find()` instead of using a regular-expression-based text splitting function, greatly improving its performance. * mkvmerge: MP4 reader: fixed handling of `tkhd` atoms of version 1. Build system changes: * The PCRE2 library (the 8-bit variant) is now required. * Sun Aug 02 2020 aloisio@gmx.com - Update to version 49.0.0 New features and enhancements: * mkvmerge: added support for copying the new track header elements `BlockAddIDName`, `BlockAddIDType`, `BlockAddIDValue` and `BlockAddIDExtraData` from Matroska files if they exist. * mkvinfo: added support for the new track header elements `BlockAdditionMapping`, `BlockAddIDName`, BlockAddIDType`, `BlockAddIDValue` and `BlockAddIDExtraData`. * MKVToolNix GUI: multiplexer: the list of recent directories can now be edited in the preferences → "Multiplexer" → "Destination file name". * MKVToolNix GUI: preferences: the values in the various "predefined values" lists can now be re-ordered freely by dragging & dropping. Bug fixes: * mkvmerge: Matroska reader: when reading tracks (e.g. a subtitle track) from Matroska files with their `default track` flag set to `yes`, and when overwriting those via the command line to `no`, `mkvmerge` would not promote additional tracks of the same type from other files (e.g. another subtitle track from an SRT file). * mkvmerge: SRT reader: empty lines inside entries were doubled. * mkvmerge: subtitles: when calculating the rounded duration of each entry the error from rounding the corresponding timestamp will be taken into account. * mkvextract: SSA/ASS extraction: mkvextract is no longer inserting empty lines before the `Dialogue:` lines. * mkvextract: USF subtitles: start & end timestamps were too high by a factor of 1.000.000. * MKVToolNix: info tool: when saving to a text file the checkbox "Save as default for saving output to text files" did nothing. * MKVToolNix: info tool: when saving to a text file in "all elements in a tree-like structure" mode, the GUI always stopped at the first cluster regardless of the setting of the "verbosity" option. * MKVToolNix GUI: preferences: when tooltips were disabled the dialogs for adding new entries to the various "predefined values" lists were missing their texts. * configure: fixed detection of QtDBus. Fixes #2886. Build system changes: * libMatroska v1.6.1 is now required. The bundled version has been updated to that version. * Sun Jun 28 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 48.0.0 New features and enhancements: * mkvmerge: AC-3: file identification will report AC-3 tracks encoded in Dolby Surround EX as codec "AC-3 Dolby Surround EX". * MKVToolNix GUI: multiplexer: on new installations the GUI will now recognize all known ISO 639-2 language codes in file names by default instead of only the top 100 of languages by native speakers. * MKVToolNix GUI: multiplexer: on new installations the list of "often used languages" will by default only contain certain agnostic ones ("multiple languages", "no linguistic content", "reserved for local use", "uncoded languages"), "English" and the default user interface language. The "list of spoken languages by native speaks" isn't used anymore. * MKVToolNix GUI: header editor: added an option to remove all attachments to the tree context menu. * MKVToolNix GUI: while the GUI is running it will remember the last page that was selected when the preferences dialog is closed. Upon re-opening the preferences that page will be selected by default. Bug fixes: * mkvmerge: fixed a segmentation fault when exiting prematurely due to write errors such as the destination having run out of space. * mkvmerge: DTS: fixed wrong channel count for DTS tracks with XCh extensions. * mkvmerge: MPEG TS reader: fixed detecting h.264/AVC and h.265/HEVC tracks that consist of only a single frame. * mkvmerge: MPEG TS reader: fixed handling of unbounded PES sizes for tracks that consist of only a single PES packet. * mkvmerge: MPEG TS reader: PGS subtitle tracks are now exempt from the "detect bogus subtitle timestamps" heuristic which could lead to some PGS subtitles not being timestamped correctly. Symptoms were that they were shown at the wrong time or that they were shown indefinitely. * mkvmerge: MPEG TS reader: when reading MPLS playlists the start timestamps of a play items were handled wrong: all the timestamps of packets read were compared to that start timestamp, dropping those packets whose timestamps were smaller than the play item's start timestamp. The correct behavior is to accept all packets as soon as the first one with a timestamp equal to or larger than the play item's start timestamp is encountered. This could result in PGS subtitle entries located right at the start of the play item being garbled/lost as they consist of multiple PES packets for which some timestamps are often slightly smaller. * mkvmerge: MPEG TS reader: when reading MPLS playlists mkvmerge will no longer read the whole M2TS files they reference, processing only the packets lying inside the timestamp range given by the playlists's play item's start & end timestamps. Instead mkvmerge will use the index information present in corresponding clip information (CLPI) files in order to seek to the nearest file position of the play item's start timestamp. Additionally mkvmerge will simply stop processing a file once the end timestamp is seen. This change greatly speeds up processing files from which only small portions must be read. * mkvmerge: WavPack: fixed support for files created by v5 of the program. Checksums, DSD audio data and non-standard sampling rates are handled correctly. * MKVToolNix GUI: multiplexer: fixed the cursor being positioned wrong after entering or pasting characters that aren't allowed in file names into the "destination file" control. Build system changes: * libEBML v1.4.0 and libMatroska v1.6.0 are now required. Other changes: * The source code repository's main development branch was renamed to `main`. * Tue Jun 02 2020 Michel Normand <normand@linux.vnet.ibm.com> - Add _constraints file to avoid build error for ppc64/ppc64le * Sat May 30 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 47.0.0 New features and enhancements: * mkvmerge: chapters: mkvmerge can now read chapters from DVDs if the user specifies the path to a DVD folder structure via the `--chapters …` parameter. By default chapters from the first title will be imported. This can be changed by append `:<title number>` to the file/directory name in the `--chapters …` argument, e.g. `--chapters /srv/dvds/BigBuckBunny/VIDEO_TS:3`. This feature requires mkvmerge to have been built with the `libdvdread` library. * mkvmerge: added `--engage append_and_split_flac` that enables mkvmerge to append and split FLAC tracks, restoring pre-v45 behavior. The resulting tracks will be broken: the official FLAC tools will not be able to decode them and seeking will not work as expected. * MKVToolNix GUI: multiplexer: added support for mkvmerge's new support for reading chapters from DVDs if both have been built with the `libdvdread` library. * MKVToolNix GUI: multiplexer: when deriving languages from file names the GUI will now look for simplified language names instead of the full ones (e.g. instead of looking for "Greek, Modern (1453-)" it would simply look for "Greek"). * MKVToolNix GUI: multiplexer: the options in the "additional command-line options" dialog are now sorted alphabetically. Additionally the `--append-mode` option has been added as one of the only missing global options. * MKVToolNix GUI: chapter editor: the chapter editor can now read chapters from DVDs if MKVToolNix has been built with the `libdvdread` library. * MKVToolNix GUI: header editor: added an option in the preferences for displaying all date & time values in UTC instead of the local time zone. Bug fixes: * all: fixed a crash when using the `MTX_LOGGER=file` syntax for logging debug messages without specifying a file name to log to. It will now log to a file called `mkvtoolnix-debug.log` in the system's default temporary directory, as initially intended. Build system changes: * The `libdvdread` library will be used if found via `pkg-config`. If it is found, support for reading chapters from DVDs will be enabled in `mkvmerge` and the MKVToolNix GUI. * Boost's Date/Time, Lexical Cast, Range, Range Adaptors, Tri-Bool, Variant libraries are not used anymore. * MKVToolNix now requires a C++ compiler & standard library that support the following features of the C++17 standard: "`std::variant`", "`std::gcd`". For the GNU Compiler Collection (gcc) this means v7 or newer; for clang it means v4 or newer — the same versions required by earlier MKVToolNix versions. * MKVToolNix now requires version 6.1.0 of fmtlib or later for the `fmt::to_string` function and bugfixes to the formatting of floating point numbers. If a system-wide version is installed that's older, the bundled copy will be used. * Fri May 01 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 46.0.0 New features and enhancements: * mkvmerge: when splitting, the placeholder `%c` can be used in the destination file name. It'll be replaced by the name of the first chapter in the file. Implements #2791. * mkvmerge: when reading MPLS playlists mkvmerge will include a tag named `SOURCE_ID` in the track's statistics tags that conveys the fact that the source was a Blu-ray and what the track's ID was in the source container. When reading Matroska file existing `SOURCE_ID` tags will be kept. The format used is the same format MakeMKV uses. Implements #2774. * mkvmerge: for audio-only files mkvmerge will now write a cue entry every 500ms instead of every 2s. * MKVToolNix GUI: job actions: split up the option "execute when the job finishes successfully or with warnings" into two separate options: "…when finishes successfully" and "…when exits with warnings". Implements #2798. Bug fixes: * mkvmerge: Matroska reader: when regenerating UIDs for chapters mkvmerge will now fix referencing tag chapter UID targets to have the same values. Fixes #2804. * mkvmerge: MP4 reader: fixed a crash that could potentially happen while trying to identify H.265/HEVC tracks. * mkvmerge: MP4 reader: when reading H.265/HEVC tracks without a frame offset table (`ctts` atom) present, mkvmerge did not parse the `hevcC` structure correctly in certain cases, causing no video frames to be output at all or the output not being playable. This fixes #2782, a bug introduced in v45. * mkvmerge: MPLS handling/MPEG TS reader: timestamp restrictions as given in an MPLS file were only honored for the first play item, not for subsequent play items. For those play items the whole referenced file was always copied. Part of the fix of #2789. * mkvmerge: MPLS handling/MPEG TS reader: under certain circumstances mkvmerge copied one frame too many before switching to the next play item. Part of the fix of #2789. * mkvmerge: for audio-only files cues will only be created for I frames (important for e.g. TrueHD where decoding can only start on a sync frame). Fixes #2790. * MKVToolNix GUI: fixed a crash that happened when closing the preferences after having closed at least one multiplexer tab. Fixes #2785. * Sat Apr 04 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 45.0.0 New features and enhancements: * mkvmerge: mkvmerge has never supported appending & splitting FLAC audio tracks. mkvmerge will now emit error messages when the user attempts either instead of continuing and creating invalid FLAC tracks. * MKVToolNix GUI: added an option in the preferences to turn on eliding text on tab headers. If enabled, tab names will be shortened so that all tab headers fit into the window's width. Implements #2768. * MKVToolNix GUI: added an option in the preferences to disable all tooltips. * MKVToolNix GUI: multiplexer: if the file identification fails due to a JSON parser error, the output generated by `mkvmerge` will be output to `STDERR` allowing insight into what's gone wrong. * MKVToolNix GUI: multiplexer: if an error occurs during file identification, the name of the processed file will be mentioned in the error message. * MKVToolNix GUI: multiplexer: if an error occurs during identification of multiple files, the GUI will ask the user whether to continue or abort the identification process. Implements #2778. * MKVToolNix GUI: job queue: added an option in the preferences for removing completed jobs when exiting the program depending on their status. Implements #2769. Bug fixes: * mkvmerge: H.265/HEVC packetizer: fixed changing the NALU size length, it was using the wrong offset into the `hevcC` structure. * mkvmerge: MP4 reader: fixed calculating the duration of video tracks that only contain a single frame. Fixes #2747. * mkvmerge: MP4 reader: if there's no frame offset table (`ctts` atom) present for H.265/HEVC video tracks, mkvmerge will determine the timestamp order itself instead of relying on the timestamps in the MP4 being in the presentation order required by Matroska. Fixes #2777. * MKVToolNix GUI: multiplexer: when using the title as part of the destination file name (both automatically as well as using the "copy title to destination file name" function) all characters that aren't valid in a file name are replaced by hyphens. * MKVToolNix GUI: multiplexer: the "copy title to destination file name" function was broken when the "make file name unique" option in the preferences was disabled. In that case the file base name was removed regardless of what the title was set to at the time. * MKVToolNix GUI: multiplexer: when adding Blu-ray playlists the GUI used to only look for the English version of the disc library information (title & cover images). Now the GUI will present all disc library entries in the "select playlist to add" dialog & let the user chose which one to use (if any). Fixes #2765. * MKVToolNix GUI: multiplexer, info tool: fixed the "warn before overwriting" check wrt. jobs creating the same file. Fixes #2758. * Mon Mar 09 2020 aloisio@gmx.com - Update to version 44.0.0 New features and enhancements: * MKVToolNix GUI: header editor: the attachments can now be reordered via drag & drop. Implements #2753. Bug fixes: * mkvmerge: Matroska reader: when encountering certain errors in the track headers such as the codec ID not being present mkvmerge will simply skip those tracks instead of exiting with an error. Fixes #2737. * MKVToolNix GUI: multiplexer: the "ask before overwriting" functionality did not look for the correct file names when splitting was active. Fixes #2741. * Mon Jan 27 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 43.0.0 New features and enhancements: * MKVToolNix GUI: using one of the command line options `--info`, `--edit-headers` or `--edit-chapters` will make the GUI select the corresponding tool on startup even if no further file name is given. Implements #2723. * MKVToolNix GUI: multiplexer: added a setting in the preferences for changing the location of the MediaInfo executable for when the user accidentally selected the wrong one. Bug fixes: * mkvmerge: AVC/h.264 parser: the order of the NALUs before each key frame was sometimes wrong: mkvmerge wrote SPS & PPS after SEI NALUs. Now SPS & PPS NALUs are always written before the other NALUs. Patch by Torsten Hauska. Part of the implementation of #2709 and part of the fix of #2250. * mkvmerge: AVC/h.264 parser: when additional SPS or PPS NALUs (with IDs that haven't been seen so far) are found mid-stream, mkvmerge will prepend all following key frames with all current valid SPS & PPS NALUs (just like when SPS & PPS NALUs are overwritten mid-stream). Part of the fix of [#2250]. * mkvmerge: MPEG TS reader: fixed detection of MPEG-1/2 video tracks consisting of very few frames. Fixes #2732. * mkvmerge: Ogg Opus reader: fixed the handling of Ogg Opus streams that contain a just one Ogg page (`mkvmerge` aborted with an exception). Fixes #2722. * MKVToolNix GUI: multiplexer: dragging & dropping XML files with chapters or tags to the GUI's window was broken in v42. Instead of adding the file names to the appropriate input boxes the GUI was running mkvmerge for file identification purposes which then failed. Fixes #2718. * Thu Jan 02 2020 Luigi Baldoni <aloisio@gmx.com> - Update to version 42.0.0 New features and enhancements: * mkvmerge: added an option for creating byte-identical files: `--deterministic <seed>`. Part of the implementation of [#2698]. * mkvmerge: Matroska reader: mkvmerge will remove the `icpf` atom headers if they're present in frames read from Matroska files. Implements #2692. * mkvmerge: MP4 reader: ALAC tracks: the number of channels, sampling frequency and bit depth are now taken from the bitstream in order to fix bogus values on the container level. Implements #2714. * mkvpropedit: when changing track UIDs the referring elements in existing chapters & tags will be updated automatically, too. Part of the implementation of #2700. * mkvinfo: when the option `-p`/`--hex-positions` is used, element positions will be output regardless of the verbosity level. Part of the implementation of #2713. * mkvinfo: added the option `-P`/`--positions` for showing the position of each element in decimal regardless of the verbosity level used. Part of the implementation of #2713. * mkvinfo: added the option `-o`/`--continue` for continuing processing when the first cluster is encountered regardless of the verbosity level used. Part of the implementation of [#2713]. * mkvinfo: added the option `-a`/`--all` for outputting all sub-elements (even cues & seek head entries) and not stopping at the first cluster regardless of the verbosity level used. Part of the implementation of #2713. * MKVToolNix GUI: multiplexer: added an option in the preferences for disabling adding cover images from Blu-ray discs. Implements #2693. * MKVToolNix GUI: multiplexer: added mkvmerge's new `--deterministic` option in the "additional command-line options" dialog. Part of the implementation of #2698. * MKVToolNix GUI: header editor:: when changing track UIDs the referring elements in existing chapters & tags will be updated automatically, too. Part of the implementation of [#2700]. Bug fixes: * mkvmerge: HEVC ES parser: fixed a bug in the slice parser calculating the size of a field which in turn could have led to the slice's type being read wrong. Patch by Torsten Hauska. Fixes #2710. * mkvmerge: Matroska reader: fixed a segmentation fault when trying to read a file that uses header removal compression but no removed bytes are present in the track headers. Fixes [#2687]. * mkvmerge: MPEG elementary stream parser: fixed an invalid memory access and use of uninitialized memory that could happen under certain circumstances. Fixes #2690. * mkvmerge: RealMedia reader: fixed a division by zero when all audio timestamps were zero. Fixes #2689. * mkvmerge: RealMedia reader: fixed an invalid memory access in the video frame assembly code triggered by invalid data in the file. Fixes #2691. Build system changes: * `std::optional` (C++17 feature) is now used instead of `boost::optional`. * `std::regex` is now used instead of `boost::regex`. Other changes: * New man page translations into French, Italian, Russian and Chinese Traditional have been added. * Fri Dec 06 2019 Luigi Baldoni <aloisio@gmx.com> - Update to version 41.0.0 New features and enhancements: * mkvmerge: Matroska reader: Vorbis tracks: stream comments (aka Vorbis comments) will be converted to Matroska attachments (for cover arts) and Matroska track tags (for other comments). Additionally the stream comments will be removed from Vorbis headers. * mkvmerge: MP4 reader: added support for reading Opus audio from MP4 files. Part of the implementation of #2673. * mkvmerge: MP4 reader: added support for reading VP9 video from MP4 files. Part of the implementation of #2673. * mkvmerge: Ogg reader: Vorbis, Opus & VP8 streams: stream comments (aka Vorbis comments) will be converted to Matroska attachments (for cover arts) and Matroska track tags (for other comments). Additionally the stream comments will be removed from Vorbis headers. * mkvmerge: WAV reader: added support for reading RF64 files. * MKVToolNix GUI: multiplexer: the list of predefined track names is now split up into three lists, one for each track type (audio, video & subtitles). Part of the implementation of #2654. * MKVToolNix GUI: multiplexer: when trying to add thumbnails for a Blu-ray the GUI will determine the thumbnail's pixel size from the thumbnail files if the XML file doesn't contain that information. This works for JPEG and PNG files. Implements #2674. * MKVToolNix GUI: general: line edits & combo boxes will now have a "clear text" button appear whenever they're not empty. Part of the implementation of #2654. * MKVToolNix GUI: update check: the dialog showing the latest news & version information states explicitly where the links take the user (the MKVToolNix `NEWS.md` file and YouTube respectively). Bug fixes: * mkvmerge: Matroska reader: mkvmerge did not copy the codec's private data when reading WavPack from Matroska files. Fixes [#2685]. * mkvmerge: MPLS handling: re-added caching when using MPLS playlists as input files. Fixes #2666. * mkvmerge: MPEG TS reader: when reading an MPLS playlist, the calculation of the minimum timestamp to use for shifting all output timestamps to zero was wrong. It was wrongfully considering timestamps from packets it would not copy due to the MPLS's timestamp restrictions. This could lead to the first timestamps in the output file being quite large, e.g. more than a couple of minutes, causing sync problems when multiplexing together with other files. Fixes #2670. * MKVToolNix GUI: multiplexer: the automatic switch between aspect ratio & display width/height wasn't reflected in the configuration generated for `mkvmerge`. The user had to change between the two settings manually. Fixes #2660. * MKVToolNix GUI: multiplexer: the progress dialog shown when scanning a Blu-ray wasn't closed properly in certain situations. Fixes #2678. * MKVToolNix GUI: general: the configured font was not applied to a lot of controls (e.g. the file & track lists or the menu entries) on application startup. Instead the user had to open & close the preferences in order for the font to be applied to all controls. Fixes #2671. * Sat Nov 09 2019 Luigi Baldoni <aloisio@gmx.com> - Update to version 40.0.0 New features and enhancements: * mkvmerge: MP4 reader: added support for BMP covert art images. * MKVToolNix GUI: multiplexer: added an option to disable deriving the destination file name from the file title. Implements #2648. * MKVToolNix GUI: multiplexer: the content of the "stereoscopy" combo box has been simplified making the box's minimum width much smaller, allowing the user to resize the GUI's whole window to a much smaller width. * MKVToolNix GUI: multiplexer: whenever the user changes the "aspect ratio" or "display dimensions" controls, the corresponding radio button will be activated automatically. Implements #2651. * MKVToolNix GUI: Windows: added a setting in the preferences to disable the GUI's dark color mode even if Windows's app color mode is set to dark. Implements #2646. * MKVToolNix GUI: Windows: replaced the dark mode introduced in v39 with another dark mode that's less wasteful with space between widgets. Bug fixes: * mkvmerge: MP4 reader: mkvmerge was reading eight bytes too many for cover art images. This could cause file identification to fail when the cover art was located at the end of the MP4 file. Even if it succeeded, this meant too much data present in the attachment. Fixes #2650. * mkvmerge: MP4 reader: covert art images with unknown image types will be skipped instead of treated as JPEG images. Build system changes: * Qt 5.9.0 or newer is now required for building MKVToolNix GUI. * Tue Nov 05 2019 Luigi Baldoni <aloisio@gmx.com> - Update to version 39.0.0 New features and enhancements: * mkvmerge: Blu-ray: when reading an MPLS playlist mkvmerge will look up and use chapter names from the Blu-ray's "track/chapter names" meta data if it exists. Part of the implementation of 2486. * mkvmerge: MP4 reader: if present, cover art images (the `meta.udta.ilist.covr` atom) will be converted into attachments. * MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the disc library meta data will be parsed, and the biggest thumbnail, if present, will be added as a new attachment with name `cover.jpg` (extension depends on thumbnail's extension). Implements #2644. * MKVToolNix GUI: multiplexer: when adding a playlist from a Blu-ray disc, the title from the disc library meta data will be set as the new file title if the disc library meta data contains one & no title has been set yet. * MKVToolNix GUI: multiplexer: the automatically generated destination file name will now be based on the file title if one is set at that point. This works in conjunction with the title being said from the Blu-ray disc library meta data. * MKVToolNix GUI: chapter editor: when reading chapters from an MPLS playlist the GUI will look up and use chapter names from the Blu-ray's "track/chapter names" meta data if it exists. Part of the implementation of 2486. * MKVToolNix GUI: Windows: added a dark mode that's enabled when Windows 10's dark mode is turned on. * translations: added a Bulgarian translation of the programs & the man pages by Симеон Цветков (see `AUTHORS`). Bug fixes: * mkvmerge: attachments without a file name won't be ignored anymore. Part of the fix of #2642. * MKVToolNix GUI: header editor: attachments with an empty name element will be shown as `<unnamed>` as originally intended. Part of the fix of #2642. * Linux AppImage: the AppImage will no longer change directories before running the desired executable allow the use of relative file names. Fixes #2632. Build system changes: * MKVToolNix now requires a C++ compiler that supports the following features of the C++17 standard: "`[[maybe_unused]]` attribute", "nested namespace definition", "structured bindings". For the GNU Compiler Collection (gcc) this means v7 or newer; for clang it means v4 or newer. * Boost 1.60.0 or newer is now required. - Use system nlohmann-json - Spec cleanup * Sun Oct 06 2019 Luigi Baldoni <aloisio@gmx.com> - Update to version 38.0.0 New features and enhancements: * mkvextract: chapters, tags & cue sheets will now be written to standard output if no file name is given, same as if `-` is given as the file name. * MKVToolNix GUI: job queue: added a new setting in the preferences' "job queue & job status" section that, when enabled, will cause the GUI to remove all output files created by jobs that are either aborted by the user or that end in an error. Implements #2614. Bug fixes: * all programs: macOS: fixed file access if the file name (including all path components) contains any Unicode character where NFC (Normalization Form Canonical Composed) and NFD (Normalization Form Canonical Decomposed) differ, e.g. German Umlauts. Fixes #2620. * mkvmerge: when splitting by chapters the user can now split by chapters coming from one of the appended files, too. Fixes #2625. * mkvmerge: AAC reader: fixed reading codec parameters (channels, sample rate) if a file starts with garbage that includes valid-but-bogus AAC headers. Fixes #2622. * MKVToolNix GUI: Hebrew was added to the list of often-used languages so that it can be selected by default again. Fixes [#2610]. * MKVToolNix GUI: when updating the GUI's settings from v37.0.0 or older, the GUI checks if the list of often-used languages equals the built-in list from v36.0.0. If it does, it will be updated to the built-in list changed in v37.0.0. Fixes #2611. Build system changes: * Boost's Operators header library is now required. * Mon Sep 02 2019 Ismail Dönmez <idonmez@suse.com> - Update to version 37.0.0 New features and enchancements: * MKVToolNix GUI: the list of often used languages now contains those from Wikipedia's "List of languages by native speakers" by default. Also by default only those languages will be shown in the language drop-down boxes. * mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and H.265/HEVC tracks whose pixel dimensions differ. Implements #2582. Bug fixes: * MKVToolNix GUI: multiplexer: fixed a bug in the "make destination file names unique" logic that caused an existing number-in-parenthesis at the end of the file base name to be removed in certain situations (e.g. when the first added file was named `m (3).mkv` and both `m (3) (1).mkv` and `m (3) (2).mkv` existed already, the GUI was suddenly use `m.mkv` instead of `m (3) (3).mkv`). * MKVToolNix GUI: on Windows the GUI is built with a slightly older version of the Qt library again (5.12.4). The Qt version used in release v36.0.0, v5.13.0, lead to crashes when doing certain things such as selecting multiple tracks in the multiplexer. Fixes #2605 and #26008. * source code: fixed building with Boost 1.71.0. Fixes #2599. * all: fixed the spelling of the H.264 & H.265 codec names. * mkvmerge: Blu-ray MPLS handling: mkvmerge will now find corresponding M2TS files even if the `clip_codec_identifier` playlist item field is not set to `M2TS` in the MPLS file. Fixes #2601. * mkvmerge: fixed handling of text files that use both DOS-style and Unix-style line endings resulting in problems such as text subtitle files not being parsed correctly. Fixes #2594. * Wed Jun 26 2019 Luigi Baldoni <aloisio@gmx.com> - Update to version 35.0.0 New features and enhancements: * mkvmerge: JSON identification: the "codec name" track property will be output as `codec_name`. The JSON schema has been bumped to v12 for this change. * MKVToolNix GUI: job queue: added a new type of action to execute after job completion: deleting source files for of multiplexer jobs. As this is a destructive operation, the action is disabled by default. Implements #869 and #2570. Bug fixes: * mkvmerge: the "codec name" track property wasn't copied from Matroska files. Fixes #2566. * MKVToolNix GUI: multiplexer: Windows: clearing the destination file name will reset the tab name to "\<No destination file\>" again. Fixes #2571. * MKVToolNix GUI: multiplexer: the file types were not re-translated if the UI language was changed. Fixes #2572. * Fri Jun 07 2019 Ferdinand Thiessen <rpm@fthiessen.de> - Update to version 34.0.0: * mkvmerge: bugfix: all subtitle frames are now treated as key frames in order to fix wrong data in source files. bugfix: AV1: fixed frame timestamp calculation when reading bitstreams that lack timing information from IVF files. bugfix: Matroska reader: fixed an infinite loop that could happen with large video frames and applied timestamp files due to too much data being buffered at the wrong time. * Tue Apr 16 2019 Ferdinand Thiessen <rpm@fthiessen.de> - Update to version 33.1.0: * Build with stack protection - Update to version 33.0.0: * mkvinfo: bugfix: when using the `--size` option, mkvinfo will now report the correctly if an element has an unknown size. * MKVToolNix GUI: bugfix: info tool: clusters with an unknown size will now be read and displayed correctly. bugfix: multiplexer: if a destination file names ends with a number in parenthesis (e.g. a year such as "(2017)"), that number will not be stripped anymore during the process of ensuring the destination file name is unique. Only those suffixes added automatically in prior attempts to make the file name unique will be removed. - Update to version 32.0.0: * mkvinfo: new feature: when sizes are output the size of the element's data portion is output in addition to the element's total size. * MKVToolNix GUI: new feature: info tool: the element's data portion is shown as an extra column. new feature: multiplexer: added column "Delay" to the track list containing the additional delay to apply during multiplexing. bugfix: the portable mode wasn't detected correctly when the current working directory the GUI was started from wasn't the directory the GUI's executable file was located it. bugfix: multiplexer: using button to change the current destination directory to one of the recently used ones did not update the file name according to the "make file name unique" setting. bugfix: multiplexer: the function "set destination file name from selected file's name" will now only change the destination file's name but not its path. * all: fixed handling of Unicode code points > U+FFFF. - Update to version 31.0.0: * all programs: New Feature: added a new option `--abort-on-warnings` that will cause the program to abort after it has emitted the first warning, similar to how it aborts after the first error. * mkvmerge, mkvextract: New Feature: when closing files that were opened for writing, cached data will not be flushed to storage automatically anymore. A new option was added to both programs (`--flush-on-close`) that re-enables flushing for people who are affected by data loss. The reason is that automatic flushing causes long delays in processing queues when the output by mkvmerge/mkvextract isn't the final product but just an intermediate result to be processed further. Bugfix: AVI reader: using DV type 1 AVIs will now result in an unsupported file type being reported instead of crashing mkvmerge Bugfix: HEVC: the height of interlaced streams will now be set correctly to the height of the full frame instead of the height of a single interlaced field. Bugfix: MP4 reader: edit lists consisting solely of elements that mkvmerge doesn't support (such as dwells) are simply ignored. Before no data was read for such tracks at all. Bugfix: text subtitles: entries with an explicit duration of 0ms will now be handled correctly: the 0ms duration will be stored in Matroska instead of the difference between the current and the following entry. * MKVToolNix GUI: New Feature: multiplexer: the dialog previewing different character sets for text subtitles will now keep the position of the displayed text when switching between character sets. Bugfix: multiplexer, chapter editor: fixed drag & drop handling with Qt 5.12.0 and newer. Bugfix: multiplexer: the GUI did not clean up temporary files created when running `mkvmerge`. * Tue Mar 19 2019 plater <davejplater@gmail.com> - Fix Factory build by changing rubygem-rake build requirement to rubygem(rake) and adding libboost_system build dependency again, fixes boo#1129626 * Mon Jan 14 2019 Martin Pluskal <mpluskal@suse.com> - Drop libboost_system dependency as it is not needed * Sat Jan 12 2019 Ferdinand Thiessen <rpm@fthiessen.de> - Update to version 30.1.0: * MKVToolNix GUI: bugfix: chapter editor: when opening a Matroska/WebM file that doesn't contain chapters and later saving chapters back to them, the editor was truncating the file down to a couple of KB in size. - Update to version 30.0.0: * MKVToolNix GUI: New Feature: multiplexer: a new button was added next to the "destination file" controls. Clicking it shows a menu with the ten most recently used output directories. Selecting one of them will change the destination file to the selected directory keeping the file name. New Feature: The ten most recently used values for the "relative output directory" and "fixed output directory" settings are now saved. The corresponding settings have been changed into combo boxes allowing quick access to those recent values. New Feature: The predefined split sizes and durations can now be customized in the preferences. New Feature: chapter editor: added an option in the "Chapter editor" menu for appending chapters from an existing file to the currently open editor tab. New Feature: Added an action in the context menu for copying the selected entry and all of its children to another open editor tab. Bugfix: removing a file added as an "additional part" will no longer cause a crash. * mkvextract: New Feature: WAV extractor: mkvextract will now write W64 files instead of WAV files if the file name extension is `.w64` or if the final file size is bigger than 4 GB, the file size limit for WAV files. * mkvmerge: Bugfix: all files opened for writing will now be flushed once before they're closed. This ensures the operating system actually writes all cached data to disk preventing data loss in certain situations such as power outages or buggy drivers in combination with suspending the computer. Bugfix: AAC: under certain conditions 8 channel audio files were taken for 7 channel ones. - Update to version 29.0.0: * MKVToolNix GUI: New Feature: added an option in the preferences for disabling automatic scaling for high DPI displays. New Feature: The GUI will now prevent the system from going to sleep while the job queue is running. * mkvmerge: Bugfix: chapter generation: the start timestamps of chapters generated in intervals was wrong for files whose smallest video timestamp was bigger than 0. Bugfix: MP4 reader: fixed handling of atoms whose size exceeds the parent atom's size. Bugfix: the chapter name template will now also be used when reading Ogg-style chapter files with empty chapter names. * mkvextract: Bugfix: AAC: mkvextract will now write the program config element (PCE) before the first AAC raw data packet if the PCE is present in the `AudioSpecificConfig` structure in the `Codec Private` Matroska element. The PCE carries vital information about the number of channels and is required in certain cases. * mkvpropedit, MKVToolNix GUI's header editor: Bugfix: in situations when a one-byte space must be covered by a new EBML void element the following element must be moved up instead. If that moved element is a cluster, the corresponding cue entries will now be updated to reflect the cluster's new position. * Tue Oct 30 2018 Ferdinand Thiessen <rpm@fthiessen.de> - Update to version 28.2.0 * mkvmerge, mkvinfo, mkvextract, mkvpropedit, MKVToolNix GUI's info tool & chapter editor: fixed a case of memory being accessed after it had been freed earlier. This can be triggered by specially crafted Matroska files and lead to arbitrary code execution. The vulnerability was reported as Cisco TALOS 2018-0694 on 2018-10-25 (CVE-2018-4022). Fixes boo#1113709. - Update to version 28.1.0 * mkvmerge: bugfix: AV1 parser: fixed an error in the sequence header parser if neither the `reduced_still_picture_header` nor the `frame_id_numbers_present_flag` is set. bugfix: AV1 parser: when creating the `av1C` structure for the Codec Private element the sequence header OBU wasn't copied completely: its common data (type field & OBU size among others) was missing. bugfix: Matroska reader, AV1: mkvmerge will try to re-create the `av1C` data stored in Codec Private when reading AV1 from Matroska or WebM files created by mkvmerge v28.0.0. * MKVToolNix GUI: bugfix info tool: the tool will no longer stop scanning elements when an EBML Void element is found after the first Cluster element. - Update to version 28.0.0 * mkvmerge: New feature: AV1 parser: updated the code for the finalized AV1 bitstream specification. New feature: AV1 packetizer: updated the code for the finalized AV1-in-Matroska & WebM mapping specification. New feature: AV1 support: the `--engage enable_av1` option has been removed again. New feature: MP4 reader: added support for AV1. New feature: DTS: implemented dialog normalization gain removal for extension substreams. New feature: VP9: mkvmerge will now create codec private data according to the VP9 codec mapping described in the WebM specifications. bugfix: JSON identification: fixed a bug when removing invalid UTF-8 data from strings before they're output as JSON. bugfix: MP4/QuickTime reader: fixed handling of PCM audio with FourCC `in24`. bugfix: MPEG transport stream reader, teletext subtitles: the decision whether or not to keep frames around in order to potentially merge them with the following frame is made sooner. That avoids problems if there are large gaps between teletext subtitle frames which could lead to frames being interleaved too late. * mkvmerge, mkvextract: New feature: simple text subtitles: added a workaround for simple text subtitle tracks that don't contain a duration. * mkvextract: New feature: added support for extracting AV1 to IVF. New feature: IVF extractor (AV1, VP8, VP9): precise values will be used for the frame rate numerator & denominator header fields for certain well-known values of the track's default duration. * MKVToolNix GUI: New feature: automatic scaling for high DPI displays is activated if the GUI is compiled with Qt ≥ 5.6.0. New feature: added a menu item ("Help" → "System information") for displaying information about the system MKVToolNix is running on in order to make debugging easier. New feature: multiplexer, header editor: the user can enter a list of predefined track names in the preferences. She can later select from them in "track name" combo box. * mkvextract: bugfix: IVF extractor (AV1, VP8, VP8): the frame rate header fields weren't clamped to 16 bits properly causing wrong frame rates to be written in certain situations. * mkvpropedit, MKVToolNix GUI's header editor: bugfix: fixed file corruption when a one-byte space must be covered with a new EBML void element but all surrounding elements have a "size length" field that's eight bytes long already. * Thu Oct 18 2018 Ferdinand Thiessen <rpm@fthiessen.de> - Update to version 27.0.0: * mkvmerge: New feature: chapters: the timestamps of chapters read from containers or from chapter files can be adjusted (multiplication and addition) with the new `--chapter-sync` option or using the special track ID `-2` for the existing `--sync` option. Bugfix: AC-3: dialog normalization gain removal was corrupting E-AC-3 frames irreversibly by writing checksums in places where they didn't belong. Additionally only the first E-AC-3 frame in a Matroska was processed but not additional dependent frames in the same block. * MKVToolNix GUI: New feature: multiplexer: adjusted & added controls for mkvmerge's new feature of being able to adjust chapter timestamps. New feature: multiplexer: the GUI can now ask for confirmation when the user is about to create a file that won't contain audio tracks. It does this by default if at least one source file contains an audio track. Bugfix: fixed a leak of Windows font resources leading to a general slowdown and subsequent crash. - Update to version 26.0.0: * mkvmerge: New feature: chapter generation: if the name template given by `--generate-chapters-name-template` is empty, no names will be generated for the chapter atoms. New feature: chapters: chapter names generated from MPLS files will now use the name template if one is set via `--generate-chapters-name-template`. New feature: mkvmerge will no longer abort with an error message if no audio, video and subtitle tracks should be multiplexed. This allows copying of chapters from non-chapter source files. Bugfix: Matroska reader: fixed wrong timestamps when appending Matroska files where the second Matroska file's first timestamp is bigger than 0. Bugfix: MP4 reader: fixed division by zero errors during file identification if the timescale is 0 in the `MVHD` atom. Bugfix: Windows Television DVR files are now recognized as an unsupported file type. This prevents mis-detection as MPEG-2 with an accompanying flood of error messages. * MKVToolNix GUI: New feature: the font size in the tool selector on the left will scale with the font size the user selects in the preferences. New feature: the GUI will no longer automatically resize the columns in tree and list views to match the content size. Instead it remembers and restores the widths set by the user. New feature: multiplexer: the chapter name template will now be set automatically to the name template in the preferences' "chapter editor" section. Additionally the option `--generate-chapters-name-template …` will be passed to mkvmerge in situations when mkvmerge will generate chapters. New feature: chapter editor: if the chapter name template is empty, chapters will be generated without names. New feature: chapter editor: added an option to remove all chapter names to the "additional modifications" dialog. Bugfix: info tool: under certain circumstances "cues" were shown at the wrong level (inside the previous master element instead of on lvel 1). Bugfix: job queue: fixed invalid memory handling and consequent crashes when using the "edit in corresponding tool & remove from job queue" option if one of the files in that job contained attached files. * Wed Aug 08 2018 rpm@fthiessen.de - Update to 25.0.0: * mkvextract: New feature: VobSub extraction: empty SPU packets will now be dropped during extraction as other tools such as MP4Box cannot handle them correctly. Bugfix: fixed a crash when mkvextract with a non-Matroska file as the source file. * MKVToolNix GUI: New feature:: multiplexer: added options to only enable tracks of certain types by default. New feature: multiplexer: added an option to enable dialog normalization gain removal by default for all audio tracks for which the operation is supported. New feature: multiplexer: when deriving track languages from the file names is active and the file name contains the usual season/episode pattern, then only the part after the season/episode pattern will be used for detecting the language. New feature: multiplexer: the regular expression used for deriving track languages from the file names can now be customized in the preferences. New feature: multiplexer: the user can now customize the list of track languages the GUI recognizes in file names. This list defaults to a handful of common languages instead of the full list of supported languages. Bugfix: multiplexer: when scanning playlists, all playlists were offered for selection regardless of the value of the "minimum playlist duration" setting. Bugfix: multiplexer: deriving track languages from file names: the regular sub-expressions for ISO 639-1 codes could match on empty strings, too, causing matches in wrong places and hence no language being recognized in certain situations. Bugfix: header editor: fixed a crash when saving the file fails (e.g. because it isn't writable). Bugfix: header editor: the editor was wrongfully claiming that mandatory elements with default values cannot be removed in the "status" text. Bugfix: preferences: on macOS & Linux the setting "enable copying tracks by their type" wasn't restored on program start. Bugfix: the central area is now scrollable, allowing the GUI to be resized to almost arbitrary sizes. Bugfix: multiplexer: the "copy file title to destination file name" functionality will now replace everything in the destination file name up to the last period instead of only up to the first period. * mkvmerge: New feature: SRT/ASS/SSA text subtitles: for files for which no encoding has been specified, mkvmerge will try UTF-8 first before falling back to the system's default encoding. New feature: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if invalid 8-bit characters are encountered outside valid multi-byte UTF-8 sequences. New Feature: Matroska & MPEG transport stream readers: the encoding of text subtitles read from Matroska files can now be changed with the '--sub-charset' parameter. New feature: MP4 reader: improved the detection of edit lists consisting of two identical entries, each spanning the file's duration as given in the movie header atom. The second entry is ignored in such cases. New feature: JSON identification: the "display unit" video track property is now reported as `display_unit`. The JSON schema has been bumped to v11 for this change. New feature: AVC/h.264: empty NALUs will now be removed. New feature: input: format detection uses file-extension to improve performance and to give preference when several formats match. New feature: AV1: added support for reading AV1 video from Open Bitstream Unit files. New feature: AV1: adjusted the code for the AV1 bitstream format changes made up to 2018-05-02 (git revision d14e878). New feature: MP4 reader: if a track has an edit list with two identical entries, each spanning the file's duration as given in the movie header atom, then the second entry will now be ignored. Improves the handling of files with bogus data. Bugfix: AVC/h.264 and HEVC: fixed file identification failing for certain elementary streams due to internal buffers not being cleared properly. Bugfix: MLP code: fixed various issues preventing MLP from being parsed correctly. Bugfix: TrueHD/MLP packetizer; dialog volume normalization removal isn't attempted if the track is an MLP track as the operation is only supported for TrueHD, not MLP. Bugfix: MPEG TS reader: when reading MPLS mkvmerge will now compare the MPLS's start and end timestamps against the transport stream's PTS instead of its DTS. Otherwise the first key frame of a video track might be dropped if it isn't the first in presentation order. Bugfix: JSON identification: mkvmerge will ensure that all strings passed to the JSON output modules are valid UTF-8 encoded strings by replacing invalid bytes with placeholder characters. This avoids the JSON library throwing an exception and mkvmerge aborting on such data. Bugfix: audio packetizers: mkvmerge will now keep discard padding values if they're present for packets read from Matroska files. Bugfix: Ogg Opus reader: packet timestamps aren't calculated by summing up the duration of all packets starting with timestamp 0 anymore. Instead the algorithm is based on the Ogg page's granule position and which packet number is currently timestamped (special handling for the first and last packets in the stream). Bugfix: E-AC-3 parser: fixed determining the number of channels for streams that contain an AC-3 core with dependent E-AC-3 frames. Bugfix: Matroska reader: fixed mkvmerge buffering the whole file if a video track is multiplexed that consists of only one or a few frames. Bugfix: the "display unit" video track property will now be kept if it is set in the source file. Bugfix: MP3 packetizer: removed a memory leak growing linearly with the track's size. Bugfix: VobSub packetizer: whenever a VobSub packet doesn't contain a duration on the container level, mkvmerge will now set it from the duration in the SPU packets. Before it was accidentally setting the SPU-level duration to 0 instead. Bugfix: track statistics tags: if writing the `Date` element is deactivated via `--no-date`, the `_STATISTICS_WRITING_DATE_UTC` isn't written either anymore. Bugfix: removed several small, constant-size memory leaks. * Mon Apr 09 2018 rpm@fthiessen.de - Update to 22.0.0: * mkvmerge: New feature: AC-3, DTS, TrueHD: added an option for removing/minimizing the dialog normalization gain for all supported types of the mentioned codecs. New feature: AV1: added support for reading AV1 video from IVF, WebM and Matroska files. New feature: FLAC: mkvmerge can now ignore ID3 tags in FLAC files which would otherwise prevent mkvmerge from detecting the file type. Bugfix: MP4 reader: fixed reading the ESDS audio header atom if it is located inside a "wave" atom inside the "stsd" atom. Bugfix: MP4 reader: AAC audio tracks signalling eight channels in the track headers but only seven in the codec-specific configuration will be treated as having eight channels. Bugfix: MPEG TS reader: fixed wrong handling of the continuity counter for TS packets that signal that TS payload is present but where the adaptation field spans the whole TS packet. Bugfix: the 'document type version' and 'document type read version' header fields are now set depending on which elements are actually written, not on which features are active. Bugfix: the 'document type version' header field is now set to 4 correctly if any of the version 4 Matroska elements is written. * mkvinfo: New Feature: the size and positions of frames within "SimpleBlock" and "BlockGroup" elements are now shown the same way they're shown for other elements. Bugfix: summary mode: the file positions reported for frames in `BlockGroup` elements did not take the bytes used for information such as timestamp, track number flags or lace sizes into account. They were therefore too low. * mkvpropedit, MKVToolNix GUI header editor: the 'document type version' and 'document type read version' header fields are now updated if elements written by the changes require higher version numbers. Bugfix: mandatory elements can now be deleted if there's a default value for them in the specifications. * MKVToolNix GUI: multiplexer: added options for deriving the track languages from the file name by searching for ISO 639-1/639-2 language codes or language names enclosed in non-word, non-space characters. Bugfix: info tool: implemented reading all elements in the file after the first cluster. Only top-level elements are shown; child elements are only loaded on demand. Bugfix: info tool: added a context menu with the option to show a hex dump of the element with the bytes making up the EBML ID and the size portion highlighted in different colors. In-depth highlighting is done for the data in `SimpleBlock` and `Block` elements. Bugfix: chapter editor: added an option to remove all end timestamps to the "additional modifications" dialog. - Update to 21.0.0: * mkvinfo: the GUI portion has been removed. mkvinfo is now a pure command-line program again. * mkvmerge: New feature: track statistics tags: the `TagDefault` element will not be written anymore as it was always set to the default value `1` anyway. New feature: JSON files can now contain C++-style line comments outside of strings. Such comments, even though not part of the official JSON specifications, are now ignored when reading JSON files. Bugfix: Appending files with additional parts at the same time was broken if more than one additional part was appended. Bugfix: FLV reader: a single invalid AAC frame was written for AAC audio tracks with codec initialization data longer than five bytes. Bugfix: FLV reader: timestamps will be normalized down to 0. Bugfix: MP4 reader: if an AAC track doesn't contain an AAC-specific decoder configuration in the ESDS portion, then a default decoder configuration will be generated based on the track's header data instead of skipping the track. Bugfix: MP4 reader: fixed reading HEVC/h.265 video tracks if they're stored as Annex B byte streams inside MP4. Bugfix: Ogg Opus reader: mkvmerge will now emit a warning instead of aborting when it encounters an Ogg Opus page with no data in the packet. Bugfix: Matroska parser: fixed a segmentation fault that occurred whenever the first level 1 element after resyncing after an error in the file structure isn't a cluster. Bugfix: fixed a crash during file type detection for attachments if MKVToolNix is installed in a path with non-ASCII characters (e.g. German Umlauts). * MKVToolNix GUI: New Feature: chapter editor: opening a Matroska file without chapters in it will now open the file in an empty chapter editor instead of showing an error message. New Feature: an "info" tool has been added, replacing the functionality of mkvinfo's GUI. The functionality is not on par yet but will be for release v22. Bugfix: MKVToolNix GUI: Bugfix: multiplexer: the subtitle character set can now be set for appended subtitle files, too. Bugfix: MKVToolNix GUI: multiplexer: when appending, all tracks appended to disabled tracks will start out disabled, too. * mkvinfo: the `--hex-positions` parameter did nothing in summary mode. Bugfix: mkvinfo: Windows: line endings will be written as `\r\n` again instead of just `\n`. * mkvpropedit: Bugfix: adding track statistics tags: for tracks with content encoding (compression) mkvpropedit is now accounting the uncompressed number of bytes, not the encoded (compressed) number of bytes. * Sun Jan 21 2018 rpm@fthiessen.de - Update to 20.0.0: * Feature removal: several deprecated features have been removed: mkvmerge: the deprecated options `--identify-verbose`, `--identify-for-gui`, `--identify-for-mmg` and `--identification-format verbose-text` all command line tools: support for the deprecated, old, proprietary format used for option files all command line tools: support for passing command line options via the deprecated environment variables `MKVTOOLNIX_OPTIONS`, `MKVEXTRACT_OPTIONS`, `MKVINFO_OPTIONS`, `MKVMERGE_OPTIONS` and `MKVPROPEDIT_OPTIONS` * mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter NALUs will now be removed. bugfix: AVC/h.264 parser: when fixing the bitstream timing information mkvmerge will now use exact representations of the desired field duration if possible. bugfix: AVC/h.264 parser: mkvmerge no longer assumes that encountering sequence parameter set or picture parameter set NALUs signal the start of a new frame. bugfix: AVC/h.264 packetizer (framed): when mkvmerge is told to fix the bitstream timing information, it will now update all SPS NALUs, not just the ones in the AVCC. bugfix: MPEG TS reader: TS packet payloads will only be treated as PES packets if the payload actually starts with a PES start code. The prior behavior led to wrong timestamps and potentially broken frame data. bugfix: MPEG TS reader: mkvmerge will now drop incomplete PES packets as soon as an error is detected in the transport stream instead of passing the incomplete frame to the packetizer. An error is assumed either if the `transport_error_indicator` flag is set or if the value of the `continuity_counter` header field doesn't match the expected value. bugfix: Opus: when re-muxing Opus from Matroska mkvmerge will now write "block duration" elements for all block groups where a "discard padding" is set, too. bugfix: SRT reader: mkvmerge can now handle SRT files with timestamps without decimal places. bugfix: read buffer I/O class: the class could get out of sync regarding the file position of the underlying file I/O class causing wrong data to be returned on subsequent read operations. One result was that trying to identifying MPLS files that refer to very short M2TS files caused mkvmerge to segfault. bugfix: multiplexer core: if there's a gap in audio timestamps, a new block group/lace will be started for the first frame after each gap. Before the fix the frame after the gap was often stored in the previous block group causing the gap to be in the wrong place: at the end of that block group. * mkvextract: bugfix: AVC/h.264: if two consecutive IDR frames with the same `idr_pic_id` parameter and no access unit delimiters are found between them, mkvextract will insert an access unit delimiter in order to signal the start of a new access unit. * MKVToolNix GUI: bugfix: update check dialog: Markdown links will now be converted to clickable links. * Mon Dec 25 2017 jengelh@inai.de - Update to new upstream release 19.0.0 * mkvmerge: splitting by duration, by timestamps or by timestamp-based parts: mkvmerge will now consider the first key frame within 1ms of the requested value to be eligible for splitting. * mkvmerge: fixed reading text files encoded in UTF-16 order UTF-32 that have different forms of line endings (new lines, carriage returns or a mix of both). * MKVToolNix GUI: multiplexer: once a "subtitle/chapter character set" was set for a track it couldn't be changed back to the empty entry (= auto-detection) anymore. * Tue Dec 12 2017 rpm@fthiessen.de -Update to 18.0.0: * mkvmerge: bugfix: AAC ADTS parser: fixed interpretation of the `channel_configuration` header element for ADTS files that do not contain a program configuration element: value 7 means 7.1 channels. bugfix: Matroska identification: the `date_local` and `date_utc` attributes will only be output if the identified Matroska file actually contains the "date" header field. bugfix: WebVTT: mkvmerge did not recognize timestamp lines if the hours components were absent. enhancement: AVC & HEVC ES parsers: performance improvements by copying much less memory around. enhancement: tags: reintroduced a workaround for non-compliant files with tags that do not contain the mandatory `SimpleTag` element. This workaround was removed during code refactoring in release v15.0.0. * mkvpropedit: bugfix: GUI's header editor: the `date` header field won't be added automatically anymore whenever the segment info section is edited and the `date` element is either deleted or not present in the first place. * GUI: multiplexer: the "AAC is SBR/HE-AAC/AAC+" checkbox in the "audio properties" section will be disabled if the functionality is not implemented for the selected track's codec & container. enhancement: multiplexer: the "reduce to core" checkbox in the "audio properties" section will be disabled if the functionality is not implemented for the selected track's codec. * Wed Nov 08 2017 rpm@fthiessen.de - Update to 17.0.0: * The word "timecode" has been changed to "timestamp" everywhere. This affects program output (including mkvinfo's), GUI controls, command line parameters (e.g. `mkvmerge --timestamp-scale …`) and file formats. All programs remain backwards compatible insofar as they still accept "timecode" in all those places. * mkvextract's command line interface has been changed to allow extraction of multiple items at the same time. * mkvmerge: New feature: AC-3: during identification regular AC-3 and E-AC-3 tracks will now be identified differently for most container formats (exception: AVI, Real Media, Ogg/OGM). The codec will be reported as `AC-3` for regular AC-3 and as `E-AC-3` for E-AC-3 tracks instead of the combined `AC-3/E-AC-3`. bugfix: AAC ADTS parser: mkvmerge will now parse the `program_config_element` if it is located at the start of an AAC frame in order to determine the actual number of channels. This overrides invalid channel configurations in the ADTS headers. bugfix: fixed AC-3 being misdetected as encrypted MPEG program streams under certain conditions. bugfix: Dirac: under certain conditions (e.g. only muxing a single Dirac track without any other tracks) mkvmerge was always setting the pixel width & height to 123. The frame rate was wrong, too. bugfix: E-AC-3 in Matroska: if AC-3 cores and their corresponding E-AC-3 extension are located in two different Matroska blocks, then mkvmerge will now re-assemble them into a single block and only use the first block's timestamp. bugfix: SRT reader: fixed calculating the duration of entries starting with at a negative timestamp. bugfix: VC-1: under certain conditions (e.g. only muxing a single VC-1 track without any other tracks) mkvmerge was always setting the pixel width & height to 123. The frame rate was wrong, too. bugfix: command line options: an error message will be output if the single-value-form of the `--sync` option is used and it isn't a number (e.g. `--sync 0:asd`). * mkvpropedit, GUI's header editor: bugfix: both programs will now show proper error messages instead of crashing when certain kinds of data corruption is found when reading a file. - Update to 16.0.0: * mkvmerge: New feature MP4 reader: added support for Vorbis. bugfix: AAC reader: mkvmerge will now emit an error message for AAC files whose header fields imply a sampling frequency or number of channels of 0. bugfix: AVC/h.264 ES parser: fixed the calculation of reference information for P and B frames. This also fixes some P frames being marked as B frames and vice versa. bugfix: AVC/h.264 ES parser: only non-key frames that have the NALU header field `nal_ref_idc` set to 0 will be marked as "discardable" in `SimpleBlock` elements. Other half of the fix for #2047. bugfix: HEVC/h.265: the generation of the HEVCC structure stored in `CodecPrivate` was wrong in two places: 1. the position of the number of sub-layers was swapped with reserved bits and 2. the VPS/SPS/PPS/SEI lists did not start with a reserved 1 bit. bugfix: output: the `doc type version` will be set at least to 2 if certain elements are written (`CodecState`, `CueCodecState`, `FlagInterlaced`). bugfix: output: the track header attributes `MinCache` and `MaxCache` will not be written anymore. bugfix: Matroska reader: the "key" and "discardable" flags of SimpleBlock elements will be kept as they are. bugfix: Matroska reader: if present in the file, the "white colour coordinate x" track header attribute was written to both "white colour coordinate x" and "white colour coordinate y" in the output file. bugfix: Opus output: mkvmerge will now put all frames with discard padding into their own block group. * MKVToolNix GUI: Bugfix: header editor: removed the check for external modification when saving the file. bugfix: job queue: fixed calculation of total progress when automatic removal of completed is enabled. * Thu Aug 31 2017 rpm@fthiessen.de - Update to 15.0.0: * Requires libebml >= 1.3.5 * Dropped disable-update-check.patch (upstream now provides configure option for disabling the update check). * mkvmerge, mkvpropedit, GUI's header and chapter editors: the programs will no longer add most missing Matroska elements that are mandatory but have a default value in the Matroska specification (e.g. the `TagLanguage` element with a value of `und` if it isn't present in its `SimpleTag` parent). * mkvmerge: the option `--colour-matrix` has been renamed to `--colour-matrix-coefficients` in order to match the specification more closely. The old option name will continue to be recognized as well. * all: bugfix: selecting the program's language (e.g. via the `--ui-language`command-line option or via the GUI's preferences) did not work on Linux & Unix if the `LANGUAGE` environment variable was set and didn't include the desired language. * MKVToolNix GUI: new feature: multiplex tool: added a new entry to the "source files" context menu labeled "Set destination file name from selected file's name". It will force the GUI to consider the selected file to be the reference for automatically setting the file name, no matter which file was originally added as the first file. It will also force setting the destination file name once if automatic destination file name generation is turned off in the preferences. new feature: multiplex tool: added an option in the preferences on "Multiplexer" → "Output" labeled "Only use the first source file that contains a video track". If enabled, only source files containing video tracks will be used for setting the destination file name. Other files that are added are ignore. new feature: header editor: added support for editing the video colour attributes. new feature: header editor: added support for the "video projection" track header attributes. new feature: job queue: selected jobs can now be move up and down by pressing the `Ctrl+Up` and `Ctrl+Down` keys. Additionally, push buttons to move them up & down are shown if the corresponding option is enabled in the preferences. bugfix: removed the keyboard shortcuts for switching between the different tools (e.g. `Ctrl+Alt+1` for the multiplexer). They overlapped with basic functionality on keyboards that use an `AltGr` key, e.g. German ones, where `AltGr+7` emits `{`. As `AltGr+key` is implemented as `Ctrl+Alt+key` under the hood, this means that `AltGr+7` is really `Ctrl+Alt+7` which the GUI now took to mean "switch to the job queue" instead of "insert `{`". bugfix: header editor: after saving the file the GUI wasn't updating its internal file modification timestamp. That lead to the GUI wrongfully claiming that the file had been modified externally when the user wanted to save the file once more, requiring a reload of the file losing all modifications made since saving the first time. * mkvmerge: new feature: added support for the "video projection" track header attributes. bugfix: DTS handling: some source files provide timestamps for audio tracks only once every `n` audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number `n - 1` (the second audio timestamp read from the source file was used one output frame too early). * mkvinfo: new feature: added support for the "video projection" track header attributes. bugfix: fixed a null pointer dereference if an `EbmlBinary` element's data pointer is a null pointer. * mkvpropedit: new feature: added support for editing the video colour attributes. new feature: added support for the "video projection" track header attributes. * Fri Aug 25 2017 rpm@fthiessen.de - Split boost-devel BuildRequires for Tumbleweed - Update to version 14.0.0 * mkvmerge, mkvpropedit, MKVToolNix GUI (chapter editor): new feature: added support for chapters in WebM files that is spec-compliant by removing all tag elements not supported by the WebM spec. * translations: added a Romanian translation of the programs. * mkvmerge: bugfix: AVC/h.264 and HEVC/h.265 parser: fixed wrong frame order & timestamp calculation in certain situations when SPS (sequence parameter sets) or PPS (picture parameter sets) change mid-stream. bugfix: MPEG-1/-2 video: the "remove stuffing bytes" feature introduced in v5.8.0 was broken. In a lot of situations it did not detect the end of a slice correctly and removed 0 bytes that were actually part of the slice structure. Often there were no visual problems as decoders were able to ignore such errors, but in other cases there are visual artifacts upon decoding. As detecting the slice end properly requires parsing the whole slice structure, this feature has been removed again. bugfix: MPEG PS reader: fixed mkvmerge trying to handle an "end" code the same way as a "program stream map" code. bugfix: MPEG TS reader: mkvmerge won't emit warnings if the system's `iconv` library doesn't support the ISO 6937 character set. bugfix: when appending fails the error message details (e.g. "the number of channels differs: 1 and 2") were often not output. new feature: AAC: implemented support for AAC with 960 samples per frame. new feature: identification: if the encoding/character set of a text subtitle track is known (e.g. because a byte order mark is present in the file), then it will be output during identification as the `encoding` property. new feature: WAV reader: added support for Wave64 files. * MKVToolNix GUI: bugfix: multiplex tool: implemented a workaround for a crash that could occur during drag & drop if at least one of the columns is hidden. bugifx: multiplex tool: appended tracks can no longer be enabled (selected for multiplexing) if the track they're going to be appended to is not enabled. bugifx: multiplex tool: if the GUI is set to ensure unique output file names, it will now verify that right before starting to multiplex/adding the job to the queue, too. bugifx: fixed the total progress reverting to 0% instead of staying at 100% when all jobs have finished. This was introduced by the attempt at fixing the computation of the value of total progress bar for multiple jobs running. new feature: multiplexer: if the encoding/character set of a subtitle track cannot be changed, the GUI will deactivate the "subtitle character set" drop-down box and ignore changes to it when multiple tracks are selected. Additionally, if the track's encoding is known and cannot be changed (e.g. due to a byte order mark in the file), that encoding will be selected in the drop-down box automatically. Both changes signal to the user that she doesn't have to take care of the encoding herself. new feature: chapter editor: added a function to the "additional modifications" dialog for calculating and setting the end timestamps. new feature: changed the shortcuts for switching between the various tools from `Alt+number` (e.g. `Alt+1` for the multiplexer tool) to `Ctrl+Alt+number` in order to avoid clashing with Windows' input method for arbitrary characters (pressing and holding `Alt` and typing the codepoint on the number pad). new feature: added a "Window" menu and entries with shortcuts for selecting the next (`Ctrl+F6`) respectively previous tab (`Ctrl+Shift+F6`) in the current tool. * Thu Jul 13 2017 rpm@fthiessen.de - Update to version 13.0.0 * mkvmerge: new feature: MPEG TS reader: information about multiple programs will be output as container properties during verbose/JSON identification. bugfix: MP4 reader: MPEG-1/2 video read from MP4 files was written with an invalid codec ID (e.g. `V_MPEG7`) in certain cases. bugfix: MPEG PS reader: made the file type detection less strict so that garbage at the start of the file doesn't prevent detection. bugfix: MPEG PS reader: (E-)AC-3 tracks were not detected if the very first packet for that track didn't contain a full (E-)AC-3 frame. bugfix: MPEG TS reader: fixed mkvmerge not detecting all tracks in MPEG transport streams containing multiple programs. bugfix: MPEG TS reader: fixed track content being broken for some tracks read from MPEG transport streams containing multiple programs. bugfix: JSON identification: the `stream_id` and `sub_stream_id` track properties were output as hexadecimal strings instead of unsigned integers. As the `ts_pid` track property was only used for MPEG transport streams, its value is now output as `stream_id` instead, and the `ts_pid` property has been removed. The JSON schema version has been bumped to 8 due to this change. bugfix: fixed a crash when appending video tracks where one track has a CodecPrivate member and the other one doesn't. bugfix: track statistics tags: the `NUMBER_OF_BYTES` tag is supposed to contain the number of bytes in a track before any of the content encoding schemes such as lossless compression is applied; however, mkvmerge was wrongfully using the number of bytes after the schemes had been applied. bugfix: CLPI & MPLS parsers: MPLS and CLPI files with version number `0300` as used on Ultra HD Blu-ray Discs are now accepted as well. * MKVToolNix GUI: new feature: multiplex tool: added a column "program" to the tracks list. Certain container types such as MPEG transport streams can contain multiple programs. The new column will contain the service name (think TV station names such as "arte HD") for such streams. bugfix: fixed computation of value of total progress bar for multiple jobs running. bugfix: multiplexer, adding new attachments: when the GUI checks if there's an attachment with the same name it will now disregard disabled attached files. new feature: multiplex tool: the dialog asking the user what to do with dropped files (add to current settings, add to new settings etc.) now remembers the previous decision and defaults to it the next time it's shown. new feature: tabs can now be closed by pressing the middle mouse button. * mkvpropedit: bugfix: fixed a crash when the selector used for `--tags` is invalid. * Tue Jun 06 2017 olaf@aepfle.de - Adjust usage of gccN-c++ for Leap42 and SLE12 * Tue May 30 2017 rpm@fthiessen.de - Update to version 12.0.0 * MKVToolNix GUI: new feature: the key combination Ctrl+Shift+Space will now toggle the selection of the current item in all tree views where multiple selections are allowed. new feature: chapter editor: added the extension `*.cue` to the "open chapter file" dialog. bugfix:preferences → job actions, type "play audio file": the GUI will no longer clear the audio file name input if the user aborts the audio file selection dialog. bugfix: multiplexer tool: the "show command line" dialog will no longer include the mkvmerge executable's location as the first argument for the two "MKVToolNix option files" escape modes. bugfix: header editor: empty track language elements are now treated the same as those set to invalid ISO 639-2 codes: as if they were set to `und` = "undetermined". new feature: watch jobs: the user can now have the GUI execute an action once as soon as the current job or the whole queue finishes. The actions are the same ones that can be configured to be run automatically after job or queue completion. new feature: implemented several built-in actions that can be executed either on special events or once via the "watch jobs" tool. These are: playing an audio file; hibernating, sleeping and shutting down the computer. new feature: multiplex tool: added a new option for what to do after starting to multiplex/adding to the job queue: "close current settings" will close the current multiplex settings without opening new ones. * mkvmerge: New feature: cue sheet parser: if the cue sheet contains a non-empty `TITLE` entry and if no other segment title has been set yet, then the segment title will be set to the cue sheet's `TITLE` value. new feature: added an option `--no-date` that prevents the "date" field from being written to the segment information headers. new feature: FLAC reader: added support for handling embedded pictures as attachments. new feature: MP4 reader: Added support for parsing the "COLR" atom and including its values as track headers. bugfix: HEVC/h.265 parser: fixed the superfluous copying of the 'bitstream_restriction_flag' and its dependent flags in the VUI parameters of the sequence parameter sets if the timing information is present, too. bugfix: MPEG TS reader, AAC parser: the MPEG TS reader will now force the AAC parser to use the multiplex mode that the MPEG TS reader has detected. This prevents the AAC packetizer from mis-detecting it in its own attempt to identify the mode. bugfix: MPEG TS reader: valid MPEG transport streams that start with an h.264/h.265 start code were not recognized as a supported file type. bugfix: MPEG TS reader: fixed a potential read access from invalid memory addresses in the code parsing the program map table (PMT). bugfix: MPEG TS reader: if packets are encountered that belong to a PID not listed in the program map table (PMT), mkvmerge will attempt to determine their type and codec from the content. This supported content types are AAC (ADTS only) and AC-3. bugfix: MP4 reader: fixed finding and parsing the `colr` atom if there are more than one video extension atoms and the `colr` atom is not the first one. bugfix: MP4 reader: the `nclx` colour type of the `colr` atom is now recognized, too. bugfix: AAC parser: fixed mis-detection of certain data as valid ADTS AAC headers resulting in memory allocation failures. bugfix: AVC/h.264 parser: mkvmerge will now ignore bogus timing information in the sequence parameter sets. bugfix: AVC/h.264 & HEVC/h.265 parsers: all trailing zero bytes will now be removed from NALUs. bugfix: HEVC/h.265 parser: fixed copying the `bitstream_restriction_flag` and all dependent fields in the VUI parameters of the sequence parameter sets. bugfix: HEVC/h.265 parser: fixed the calculation of the number of parameter set arrays in the HEVCC data structure stored in CodecPrivate. * mkvpropedit: bugfix: header editor: added support for editing the "date" segment information field. * Tue Mar 28 2017 rpm@fthiessen.de - Update to new release 10.0.0 * mkvmerge: new feature AVC/h.264 and HEVC/h.265 parser: mkvmerge will now drop all frames before the first key frame as they cannot be decoded properly anyway. new feature HEVC/h.265 parser: added a workaround for invalid values for the "default display window" in the VUI parameters of sequence parameter sets. bugfix MP4 reader: fixed track offsets being wrong in certain situations regarding the presence or absence of edit lists ('elst' atoms) & composition timestamps ('ctts' atoms). bugfix MP4 reader: offsets in "ctts" are now always treated as signed integers, even with version 0 atoms. bugfix Matroska reader: fixed handling BlockGroups and SimpleBlocks with negative timestamps. bugfix MP3 packetizer: the MP3 packetizer will no longer drop timestamps from source containers if they go backwards. This keeps A/V in sync for files where the source was in sync even though their timestamps aren't monotonic increasing. bugfix AVC/h.264 parser: mkvmerge will now drop timestamps from the source container if no frame is emitted for that timestamp. bugfix HEVC/h.265 parser: mkvmerge will now drop timestamps from the source container if no frame is emitted for that timestamp. * mkvinfo: the timestamps of SimpleBlocks with negative timestamps are now shown correctly. * mkvextract: SSA/ASS: fixed extraction when the "Format" line in the "[Events]" section contains less fields than the default for SSA/ASS would indicate. * Mon Feb 20 2017 rpm@fthiessen.de - Update to new release 9.9.0 * mkvmerge: AC-3 handling: some source files provide timestamps for audio tracks only once every n audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number n - 1 (the second audio timestamp read from the source file was used one output frame too early). bugfix MP4 reader: mkvmerge was only reading a small part of MP4 DASH files where the first "moov" "mdat" atoms occur before the first "moof" atom. bugfix MP4 reader: edit list ("edts" atoms) that are part of the "moof" atoms used in MP4 DASH files weren't parsed. Instead the edit lists from the main track headers inside the "moov" atom were used. bugfix MP4 reader: when an MP4 DASH file contained both normal chunk offset table in their regular "moov" atoms, a sample-to-chunk table ("stsc" atom) whose last entry had a "samples per chunk" count greater than 1 and DASH "trun" atoms, then mkvmerge was calculating wrong positions the frame content. bugfix MP4 reader: mkvmerge couldn't deal with the key frame index table having duplicate entries. The result was that only key frames up to and including the first duplicate entry were marked as key frames in the output file. All other frames weren't, even though some of them were referenced from the key frame table after the first duplicate entry. bufix MP4 reader: when an MP4 file contained more than one copy of the "moov" atom (the track headers etc.), mkvmerge was parsing them all adding tracks multiple times. bugfix MP4 reader: fixed an integer overflow during the timestamp calculation leading to files with wrong timestamps. Such files could not be played back properly by most players. bugfix MPEG TS reader: if the PMT lists a DVBSUB track, mkvmerge will now recognize it without having to find a packet for it within the probed range. bugfix splitting by parts (both the "timestamps" and the "frames" variants): fixed the calculation of track statistics tags. When calculating the duration the skipped portions weren't taken into account leading to a too-high duration. As a consequence the BPS tag (bits per second) was wrong, too. bugfix reading files with DVB/HDMV TextSV subtitle tracks with invalid CodecPrivate caused mkvmerge to abort with an error from boost::format about the format string not having enough arguments. bugfix: fixed misdetection of certain AC-3 files as MP3 files which led to an error message that "the demultiplexer could not be initialized". bugfix: fixed huge memory consumption when appending big Matroska files with sparse tracks (e.g. forced subtitle tracks). The Matroska reader will now queue at most 128 MB of data. bugfix MP4 reader: the timestamps of all multiplexed tracks will now be 0-based properly. bugfix MP4 reader: the DTS-to-PTS offsets given by the "ctts" atoms are now applied for all tracks containing a "ctts" atom, not just h.264 & h.265 tracks. * Some new features and enhancements - Now required for man pages: libxslt-tools, docbook-xsl-stylesheets and po4a * Fri Jan 27 2017 rpm@fthiessen.de - Update to new release 9.8.0 * mkvmerge: MP4 reader: when an MP4 file contained fewer entries for timestamps than frames (which they never should), mkvmerge would use 0 as the timestamp for all the other frames. This resulted in effects such as the last frame of an output file having a timestamp of 0 and in split files having a much longer duration than they should have. Fixes #1847. bug fix: the MPEG transport stream reader was using an outdated format for the "CodecPrivate" element for HDMV TextST subtitles. This has been updated to the current format which only contains the "dialog style element". Existing Matroska files using this outdated scheme can be fixed by running them through mkvmerge. bug fix: files smaller than 4 bytes were wrongly identified as MPEG transport streams. bug fix: if a codec delay is set for a track in the input file, it is kept. Fixes #1849. bug fix: fixed that the error message "not enough space on disk" was shown twice on some operating systems. teletext subtitle bug fix: fixed the handling of DVB teletext subtitles signaled with data unit ID 0x02 and that contain pages from multiple magazines. bug fix: when using --track-order without specifying all tracks, the track numbers could end up in a way the user did not expect. Now mkvmerge will always assign track numbers for those tracks that are listed in --track-order first. The other tracks are assigned numbers afterwards. Fixes the second part of #1832. bug fix: when reading Matroska files the movie title was always taken from the first Matroska source file, even if that file didn't have a title set. Fixes one part of #1832. MP4: fixed detection of MP3 audio when the object type ID in the ESDS signals MP2 and the track headers have invalid values for number of channels or sampling frequency. Fixes #1844. The command line option "--check-for-updates" has been removed. * GUI: the cache cleanup process that's run automatically when the GUI starts no longer blocks file identification until it is finished. Additionally the process will only be run once per release of MKVToolNix. Fixes #1860. certain failures during file identification that can be traced to broken installations won't be stored in the cache anymore. Without this fix the GUI would still use the cached failed identification result even though the underlying might have already been fixed. multiplexer: changing default values in the preferences (e.g. the default track language to set) did not affect files whose identification results had already been cached. multiplex tool bug fix: under certain circumstances the GUI was creating invalid JSON files when starting to multiplex resulting in an error message ("JSON option files must contain a JSON array consisting solely of JSON strings"). re-worked the startup code not to use lock files when trying to open a socket for communicating with an already-running instance. This aims to prevent situations with stale lock files not being cleaned up and the GUI not starting anymore as a result. This might fix or prevent issues like #1805. * A lot of new features and enhancements, please refer to NEWS.md - Rebased disable-update-check.patch - spec file cleanup - Adjusted BuildRequires * Since 9.7.1 QT >= 5.3 is required * Since 9.7.1 a c++ compiler with some c++14 features is required e.g. gcc >= 4.9 or clang >= 3.4 * Wed Nov 30 2016 rpm@fthiessen.de - Update to new release 9.6.0 * mkvmerge: bug fix: mkvmerge was entering endless loops under certain conditions when appending files. MPLS parser bug fix: fixed reading the "in" & "out" timestamps for "play items". This bug resulted in mkvmerge not reading the correct range from the referenced M2TS file under certain rare circumstances. * MKVToolNix GUI: job output tool bug fix: the button for acknowledging warnings & errors wasn't properly disabled when the user used outside methods of acknowledging them * mkvextract: VobSub bug fix: mkvextract will add a "langidx" line to the .idx file upon extraction. * mkvmerge & mkvextract: added support for HDMV TextST subtitles. * Thu Oct 27 2016 rpm@fthiessen.de - Update to new release 9.5.0 * mkvmerge: bug fix: The Ogg/OGM reader did not recognize Opus files with comment headers anymore. WAV reader bug fix: the track properties (channels, samplerate) for DTS and AC-3 in WAV will now be derived from the decoded bitstream headers instead of the WAV file header as the latter is often incorrect. WAV reader bug fix: fixed detection and merging of DTS in WAV that uses the 14-bytes-in-16-bytes packing method. MPEG transport stream reader bug fix: fixed mis-detection of certain h.264 files as MPEG transport streams. MPEG transport stream reader bug fix: fixed the handling of Blu-ray PCM audio with an odd number of channels by removing their alignment bytes. h.264 elementary stream handling bug fix: if mkvmerge ever encounters changing SPS or PPS NALUs (ones where their ID has been encountered before with different settings) in the h.264 then it will prepend all following key frames with all currently active SPS and PPS NALUs. This enables playback from arbitrary key frames even if they require other SPS or PPS settings than the ones stored in the AVCC in CodecPrivate. VobSub handling bug fix: mkvmerge and mkvextract will now update the duration stored in the SPU bitsream with the duration from the container level if it differs at least 1ms. * mkvprpedit, MKVToolNix GUI: Added support for "field order" video track header element. - Use GPG signature for verification. * Fri Sep 16 2016 rpm@fthiessen.de - Update to new release 9.4.2: * mkvmerge: bug fix: using very large --sync values with certain container formats was causing mkvmerge to abort muxing. bug fix: fixed an invalid memory access (use after free) during global destruction phase. bug fix: HEVC parser: fixed three invalid memory accesses. bug fix: MP4 reader: fixed an invalid memory access bug fix: AAC reader: fixed mkvmerge throwing an uncaught exception due to the sample rate being 0. bug fix: MP4 reader: an error message will be printed instead of an uncaught exception when an invalid atom chunk size is encountered during resync. bug fix: AVC & HEVC readers: the readers will now refuse to handle files where the detected pixel width or height is equal to or less than 0. * Thu Sep 01 2016 rpm@fthiessen.de - Update to new upstream release 9.4.0: * MKVToolNix GUI: merge tool bug fix: the automatic adjustments to the output file name based on the track types selected for muxing and the mechanism for keeping output file names unique had been broken since release v9.3.0. chapter editor bug fix: overly long chapter names don't cause the GUI's window to become overly wide anymore. * mkvmerge: bug fix: mkvmerge does no longer emit a warning if no comment header packet is found when reading tracks from Ogg/OGM files. bug fix: VP8 in Ogg: fixed dropping the first frame and the timestamp calculation. bug fix: when appending files mkvmerge wasn't starting clusters on video key frame anymore for the first and all following appended files. DTS bug fix: if present mkvmerge will use an XLL extension's sample rate information as the sample rate to put into the track headers. * mkvpropedit: bug fix: mkvpropedit will no longer say that it's writing the changes if only attachment changes are specified and none of the specified attachments can be found. * Some enhancements, please refer to the changelog within the package. * Fri Jul 15 2016 rpm@fthiessen.de - Update to new upstream release 9.3.1: * libebml >= 1.3.4 and libmatroska >= 1.4.5 are now required * A lot of bugfixes and new features, new mkv elements are supported, for a list of all changes, please refer to the changelog provided by the package. * Tue May 31 2016 rpm@fthiessen.de - Update to new upstream release 9.2.0: * mkvmerge: bug fix: the "interval" chapter generation mode was always creating one chapter too many. bug fix: if a certain number of chapters had been generated with - -generate-chapters then mkvmerge wasn't replacing the void placerholder with the actual chapters. bug fix: fixed detection of (E-)AC-3 in MPEG TS files with unusual stream types (e.g. 0x87) but with (E-)AC-3 PMT descriptors. * mkvmerge, mkvextract: bug fix: fixed handling of Big Endian PCM with a bit depth other than 16, 32 or 64 bits/sample. Other formats were using the Little Endian codec ID, but their content was actually not byte-swapped to match it. Now those other bit depths are byte-swapped to Little Endian, too. * MKVToolNix GUI: merge tool bug fix: the track column "default track in output" wasn't taking into account if the track had its "default track" flag set to "no" in the source file. This would result in the column showing "yes" in certain situations even though mkvmerge would assign "no". * Some other improvements, some enhancements and other bugfixes, please refer to the changelog file provides with the package. * Mon Apr 25 2016 rpm@fthiessen.de - Update to new upstream release 9.1.0: * mkvmerge: bug fix: AVC/h.264: fixed handling of interlaced frames with bottom field first. bug fix: mkvmerge will no longer abort reading a Matroska file with a structural error right before the first cluster. bug fix: the "text_subtitles" property of the JSON/verbose identification modes was always set to true for all subtitle tracks, even for those that aren't text subtitles (VobSub, PG). bug fix: the language code signaled in the MPEG TS PMT is taken into account when selecting the character encoding to use during decoding of the teletext subtitles, not just the "national character set" stored in the teletext page headers. * MKVToolNix GUI: bug fix: Fixed huge memory consumption in the JSON library by updating said JSON library. bug fix: In merge-tool: when adding playlists the GUI won't ask the user whether or not to scan if there's only a single playlist in that directory. * Mon Mar 28 2016 rpm@fthiessen.de - Update to new upstream release 9.0.1: * mkvmerge: bug fix: regression in v9.0.0: the text subtitle packetizer was wrongfully assuming an encoding of UTF-8 if none was given instead of assuming the system's encoding. Fixes #1639. bug fix: if too many chapters had been generated with - -generate-chapters then mkvmerge created a bogus entry in the meta seek element and did not actually write the chapters to the file. bug fix: the DTS packetizer was setting the number of channels wrong sometimes when reducing to the DTS core. It was using the number of channels including the extensions instead of the channels of the core only. * Mon Mar 28 2016 jengelh@inai.de - Update to new upstream release 9.0.0 * mkvmerge: bug fix: fixed two more issues in the conversion of teletext subtitles to SRT subtitles. * mkvmerge: MP4/QuickTime reader: audio tracks with the FourCC "lpcm" are muxed as A_PCM/INT/LIT instead of A_QUICKTIME. * mkvmerge: bug fix: MP4/QuickTime reader: audio tracks can contain two instances of certain header fields in the STSD atom; mkvmerge now uses the v2 structure over v0, if present. * mkvextract: new feature: implemented the extraction of Big Endian PCM (codec ID A_PCM/INT/BIG) to WAV files. The content will be byte-swapped into Little Endian PCM in the process. * mkvmerge: enhancement: Big Endian PCM tracks will now be byte-swapped into Little Endian PCM, and the codec ID A_PCM/INT/LIT will be used, as many players do not support BE PCM inside MKVs. * Mon Feb 22 2016 jengelh@inai.de - Update to new upstream release 8.9.0 * gui: the default font size adjustment has been. Deactivated for the time being as it causes problems on high DPI Displays. * gui: ampersands in file names were shown as keyboard shortcuts in tab titles in various tools * gui: add ability (menu entry) for removing chapters from an existing Matroska file. * Polish translation provided * Sun Jan 10 2016 rpm@fthiessen.de - Update to upstream release 8.8.0: * MKVToolNix GUI: bug fix: when using one of the "select all tracks (of type…)" actions the "properties" column didn’t show the selection. bug fix: the paths used in the variables and the executable are converted to the platforms native path separators. * mkvmerge: bug fix: fixed a mis-detection of an MPEG-2 video elementary stream as a TrueHD file which then caused a segmentation fault. bug fix: Matroska attachments with the same name, size and MIME type were not output during file identification. bug fix: fixed TrueHD detection both as raw streams as well as inside other contains if the stream does not start with a TrueHD sync frame. * Some GUI enhancements and new features, see full changelog: https://bunkus.org/videotools/mkvtoolnix/doc/ChangeLog - some spec file cleanup * Thu Jan 07 2016 rpm@fthiessen.de - Update to upstream release 8.7.0: * all: reversion of a change: several ISO 639-2 codes of languages that are very old and not spoken anymore have been re-added due to feedback from users who did have a use for such codes. reversion of a change: all of the tools will write a byte-order mark (BOM) to text files encoded any of the UTF-* schemes again. * mkvmerge: bug fix: fixed the key frame detection for VP9 video tracks. bug fix: chapters were output as both "chapters" and "track_tags" in JSON identification mode. bug fix: AAC with low sampling frequencies was sometimes mis-detected with the wrong profile preventing appending it to other AAC tracks. bug fix: the progress calculation was sometimes outputting negative numbers when appending Matroska files whose timestamps don’t start at 0. bug fix: fixed the decisions whether or not to write the last frame of a track as a BlockGroup or a SimpleBlock and whether or not to write a block duration for that frame. bug fix: the Matroska reader now uses TrueHD-specific code when reading Matroska files. This can fix things like wrong frame type flags. * MKVToolNix GUI: bug fix: relative file names given on the command line were interpreted as being relative to the user’s home directory. bug fix: the "split mode" drop-down box got reset to "do not split" each time the preferences dialog was closed with the "OK" button * And a lot more enhancements and bugfixes, see full changelog: https://bunkus.org/videotools/mkvtoolnix/doc/ChangeLog * Sat Dec 05 2015 rpm@fthiessen.de - Update to upstream release 8.6.1: * all: MKVToolNix now requires gcc 4.8.0 or later or clang 3.4 or later for compilation. change: none of the tools will write a byte-order mark (BOM) to text files encoded any of the UTF-* schemes anymore. * mkvmerge: bug fix: the VC-1 handlig code was duplicating the first sequence headers with each mux. enhancement: added JSON as an output format for file type identification. bug fix: fixed two issues causing mkvmerge to write invalid data when updating track headers. bug fix: the change to do a deeper file analysis if no seek head was found was causing huge increases in file type detection time as popular tools like x264 don’t write seek heads. The way elements at the end are searched has been changed to only scan the last 5 MB of the file instead of iterating over every level 1 element from the beginning of the file. * MKVToolNix GUI: bug fix: the options for linking to the next/previous segment UID were wrong. bug fix: the program changes its working directory to the user’s profile/home directory on startup allowing the removal of its installation folder even if a program started by the GUI (e.g. a web browser) is still running. bug fix: in certain situations the modified file would not contain a seek head before the first cluster anymore resulting in most players not finding elements such as attachments or the index located at the end of the file anymore. * Some other enhancements and bugfixes, see full changelog: https://bunkus.org/videotools/mkvtoolnix/doc/ChangeLog - Split package into commandline- (base) and gui-package, reduces overhead when installing on a headless system. - Replaced sed in prep with disable-update-check.patch to disable update check on startup (not needed with a package system). - Added mkvtoolnix-use-system-boost.patch from fedora to fix includes when building against boost from system. * Thu Nov 05 2015 rpm@fthiessen.de - Update to upstream release 8.5.2: * mkvmerge: bug fix: fixed an endless loop when updating track headers caused by the fix for "Re-rendering track headers. bug fix: mkvmerge no longer creates a "next segment UID" field in the last file when splitting and segment linking is active. bug fix: fixed the values of the "previous/next segment UID" elements when splitting by parts with segment linking enabled. * MKVToolNix GUI: bug fix: the file/track columns aren't resized to fit their content when expanding/collapsing tree node anymore. Such expansion also happened when moving entries with the "move up/down" buttons. * Thu Oct 22 2015 rpm@fthiessen.de - Update to upstream release 8.5.1 (security update): * build system: libEBML v1.3.3 and libMatroska v1.4.4 are now required due to important fixes for invalid memory accesses in those two releases. The copies included in the MKVToolNix source code have been updated to those releases as well. * MKVToolNix GUI: bug fix: the "save file" dialogs did not have the currently entered file name pre-selected anymore. bug fix: fixed a crash when loading corrupted job settings. bug fix (Linux): the function "open folder" was inserting a superfluous leading slash in the directory name. * mkvmerge: bug fix: updating the track headers wasn't working in some rare cases (corresponding error message "Re-rendering track headers: data_size != 0 not implemented yet"). - Disable default setting for checking for updates (nonsense on a package system) * Sun Oct 18 2015 rpm@fthiessen.de - Updated to version 8.5.0: * Modified .spec to also install translated manpages. * A lot of small bugfixes and enhancements. * MKVToolNix GUI: merge tool bug fix: the cropping parameters were not converted into parameters for mkvmerge at all. * mkvmerge: enhancement: the verbose identification for MP4 files will now derive basic audio parameters of MP3 and AC3 tracks from the bitstream instead of relying on the values in the track headers. bug fix: PCM tracks: if the number of samples per packet varies then no default duration will be written. * all: several ISO 639-2 codes of languages that are very old and not spoken anymore have been removed. new feature: added a Catalan translation of the man pages. * Tue Sep 22 2015 rpm@fthiessen.de - Updated to version 8.4.0: * MMG has been removed. * Dropped wxWidgets dependencies (new gui uses QT). * A lot of bugfixes and enhancements of the gui and mkvmerge (see https://bunkus.org/videotools/mkvtoolnix/doc/ChangeLog). * mkvmerge: bug fix: calculating of delay for audio garbage data got fixed. * all: bug fix: parsing of strings containing negative values or timecodes was broken on 32-but architectures. * mkvmerge: bug fix: number of channels and the sample rate reported for DTS in MPEG streams was 0. * Sun Aug 16 2015 jengelh@inai.de - Update to new upstream release 8.3.0 * many small GUI bug fixes and improvements * mkvmerge: bug fix: fixed handling of MPEG transport streams where all PATs and PMTs have CRC errors. * mkvmerge: bug fix: the MPEG-1/2 video code was causing an illegal memory access under certain conditions. * mkvmerge: bug fix: fixed recognition of (E)AC3 audio tracks using a FourCC of "ec-3" * mkvmerge: bug fix: fixed codec identification for MP2 audio read from MPEG PS/TS. * mkvmerge: bug fix: fixed key frame designation for video tracks in MP4 DASH files. * Wed Aug 05 2015 rpm@fthiessen.de - Update to version 8.2.0: * Fix mkvmerge codec identification for MP2 audio. A LOT more bugfixes especially in the GUI. See ChangeLog: https://bunkus.org/videotools/mkvtoolnix/doc/ChangeLog * Fri May 29 2015 dimstar@opensuse.org - Update to version 7.9.0: * Fix build with boost 1.58.0. * build system: configure will now check for Qt by default. * A couple of important bugs have been fixed, e.g. a very old bug in handling MPEG-1/2 video preventing the detection of such tracks; if --sync was used at the same time as --default-duration then --sync was ignored; mkvinfo’s exit codes were wrong (this may trip up frontends using mkvinfo!); handling of E-AC3 in MPEG transport stream in certain situations. * Sat Mar 28 2015 jengelh@inai.de - Update to new upstream release 7.8.0 * mkvmerge: Fixed recognition of E-AC3 audio tracks in MPEG TS streams if they use the type ID 0xa1 (and the same for DTS tracks stored with type ID 0xa2). * mkvmerge: new feature: mkvmerge will now recognize TrueHD tracks inside MPEG transport streams that contain an AC3 core as consisting of two tracks. * mkvmerge: new feature: mkvmerge will now recognize TrueHD+AC3 files as consisting of two tracks. * Tue Feb 10 2015 opensuse@sukimashita.com - Update to new upstream release 7.6.0 * all programs: bug fix: Since release 7.0.0 the wrong exit code was used when warnings were finished (0 instead of 1). * mkvmerge: bug fix: Appending chapters with the same chapter UID was dropping all sub-chapters from the one of the two merged chapters. Now the sub-chapters are merged recursively as well. * mkvmerge: bug fix: The wrong Codec ID was written when reading PCM tracks from Matroska files in Big Endian byte order. * all: new feature: added a Serbian (Latin) translation of the programs by Danko (see AUTHORS). * mkvmerge: bug fix: If splitting was active and AC3 tracks read from Matroska files were shorter than a split point then the following output file would contain an AC3 packet with the timecode of 00:00:00 somewhere in the middle. * mmg: bug fix: If a chapter track from a Matroska file is selected then the »language« drop-down box is disabled. * mmg: bug fix: When scanning for play lists the window presenting the results listed some properties in an unescaped way (e.g. »\s« instead of spaces). * mmg: bug fix: When adding MPLS files mmg was only offering to scan for more playlists if there were at least two additional MPLS files present. This has been fixed to one MPLS file (in addition to the one just added). * Sun Feb 01 2015 jengelh@inai.de - Update to new upstream release 7.5.0 * mkvmerge: Fixed reading MPEG transport streams in which all PATs and/or PMTs have CRC errors. * mkvmerge: Implemented support for MP4 DASH files. * mkvmerge: Implemented reading MPEG-H p2/HEVC video tracks from MP4 files. * mkvmerge: Implemented support for AAC in LOAS/LATM multiplex if read from MPEG transport streams or raw LOAS/LATM AAC files. * mkvmerge: Added support for recognizing H.265/HEVC video tracks in MPEG transport streams. * Sat Dec 13 2014 coolo@suse.com - update to upstream release 7.4.0 * Implements support for PCM in MPEG program (.vob – DVDs) and transport streams (.ts, .m2ts – Blu-rays, television broadcasts) as well as for teletext subtitles in MPEG tranport streams. Apart from that a lot of work has gone into the new GUI. * Bugfixes for muxing HEVC or teletext subtitles
/usr/bin/mkvextract /usr/bin/mkvinfo /usr/bin/mkvmerge /usr/bin/mkvpropedit /usr/share/doc/packages/mkvtoolnix /usr/share/doc/packages/mkvtoolnix/AUTHORS /usr/share/doc/packages/mkvtoolnix/NEWS.md /usr/share/doc/packages/mkvtoolnix/README.md /usr/share/doc/packages/mkvtoolnix/examples /usr/share/doc/packages/mkvtoolnix/examples/example-chapters-1.xml /usr/share/doc/packages/mkvtoolnix/examples/example-chapters-2.xml /usr/share/doc/packages/mkvtoolnix/examples/example-cue-sheet-1.cue /usr/share/doc/packages/mkvtoolnix/examples/example-segmentinfo-1.xml /usr/share/doc/packages/mkvtoolnix/examples/example-tags-2.xml /usr/share/doc/packages/mkvtoolnix/examples/example-timestamps-v1.txt /usr/share/doc/packages/mkvtoolnix/examples/example-timestamps-v2.txt /usr/share/doc/packages/mkvtoolnix/examples/matroskachapters.dtd /usr/share/doc/packages/mkvtoolnix/examples/matroskasegmentinfo.dtd /usr/share/doc/packages/mkvtoolnix/examples/matroskatags.dtd /usr/share/doc/packages/mkvtoolnix/examples/stylesheets /usr/share/doc/packages/mkvtoolnix/examples/stylesheets/chapters-to-cuesheet.xsl /usr/share/doc/packages/mkvtoolnix/examples/stylesheets/chapters-to-shnsplit.xsl /usr/share/licenses/mkvtoolnix /usr/share/licenses/mkvtoolnix/COPYING /usr/share/locale/bg/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/ca/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/cs/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/de/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/es/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/eu/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/fr/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/it/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/ja/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/ko/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/lt/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/nl/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/pl/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/pt/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/pt_BR/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/ro/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/ru/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/sv/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/tr/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/uk/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/zh_CN/LC_MESSAGES/mkvtoolnix.mo /usr/share/locale/zh_TW/LC_MESSAGES/mkvtoolnix.mo /usr/share/man/bg /usr/share/man/bg/man1 /usr/share/man/bg/man1/mkvextract.1.gz /usr/share/man/bg/man1/mkvinfo.1.gz /usr/share/man/bg/man1/mkvmerge.1.gz /usr/share/man/bg/man1/mkvpropedit.1.gz /usr/share/man/ca/man1/mkvextract.1.gz /usr/share/man/ca/man1/mkvinfo.1.gz /usr/share/man/ca/man1/mkvmerge.1.gz /usr/share/man/ca/man1/mkvpropedit.1.gz /usr/share/man/de/man1/mkvextract.1.gz /usr/share/man/de/man1/mkvinfo.1.gz /usr/share/man/de/man1/mkvmerge.1.gz /usr/share/man/de/man1/mkvpropedit.1.gz /usr/share/man/es/man1/mkvextract.1.gz /usr/share/man/es/man1/mkvinfo.1.gz /usr/share/man/es/man1/mkvmerge.1.gz /usr/share/man/es/man1/mkvpropedit.1.gz /usr/share/man/fr/man1/mkvextract.1.gz /usr/share/man/fr/man1/mkvinfo.1.gz /usr/share/man/fr/man1/mkvmerge.1.gz /usr/share/man/fr/man1/mkvpropedit.1.gz /usr/share/man/it/man1/mkvextract.1.gz /usr/share/man/it/man1/mkvinfo.1.gz /usr/share/man/it/man1/mkvmerge.1.gz /usr/share/man/it/man1/mkvpropedit.1.gz /usr/share/man/ja/man1/mkvextract.1.gz /usr/share/man/ja/man1/mkvinfo.1.gz /usr/share/man/ja/man1/mkvmerge.1.gz /usr/share/man/ja/man1/mkvpropedit.1.gz /usr/share/man/ko /usr/share/man/ko/man1 /usr/share/man/ko/man1/mkvextract.1.gz /usr/share/man/ko/man1/mkvinfo.1.gz /usr/share/man/ko/man1/mkvmerge.1.gz /usr/share/man/ko/man1/mkvpropedit.1.gz /usr/share/man/man1/mkvextract.1.gz /usr/share/man/man1/mkvinfo.1.gz /usr/share/man/man1/mkvmerge.1.gz /usr/share/man/man1/mkvpropedit.1.gz /usr/share/man/nl/man1/mkvextract.1.gz /usr/share/man/nl/man1/mkvinfo.1.gz /usr/share/man/nl/man1/mkvmerge.1.gz /usr/share/man/nl/man1/mkvpropedit.1.gz /usr/share/man/pl/man1/mkvextract.1.gz /usr/share/man/pl/man1/mkvinfo.1.gz /usr/share/man/pl/man1/mkvmerge.1.gz /usr/share/man/pl/man1/mkvpropedit.1.gz /usr/share/man/ru/man1/mkvextract.1.gz /usr/share/man/ru/man1/mkvinfo.1.gz /usr/share/man/ru/man1/mkvmerge.1.gz /usr/share/man/ru/man1/mkvpropedit.1.gz /usr/share/man/uk /usr/share/man/uk/man1 /usr/share/man/uk/man1/mkvextract.1.gz /usr/share/man/uk/man1/mkvinfo.1.gz /usr/share/man/uk/man1/mkvmerge.1.gz /usr/share/man/uk/man1/mkvpropedit.1.gz /usr/share/man/zh_CN/man1/mkvextract.1.gz /usr/share/man/zh_CN/man1/mkvinfo.1.gz /usr/share/man/zh_CN/man1/mkvmerge.1.gz /usr/share/man/zh_CN/man1/mkvpropedit.1.gz /usr/share/man/zh_TW/man1/mkvextract.1.gz /usr/share/man/zh_TW/man1/mkvinfo.1.gz /usr/share/man/zh_TW/man1/mkvmerge.1.gz /usr/share/man/zh_TW/man1/mkvpropedit.1.gz /usr/share/mkvtoolnix
Generated by rpm2html 1.8.1
Fabrice Bellet, Tue Jul 9 16:00:25 2024