Advertisement

CHANGELOG

What's New in 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. Part of the implementation of #2887.
  • mkvinfo: added support for the new track header elements'BlockAdditionMapping', 'BlockAddIDName', BlockAddIDType', 'BlockAddIDValue' and 'BlockAddIDExtraData'. Part of the implementation of #2887.
  • MKVToolNix GUI: multiplexer: the list of recent directories can now be edited in the preferences ? 'Multiplexer' ? 'Destination file name'. Implements #2861.
  • 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 whenoverwriting 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). Fixes #2863.
  • mkvmerge: SRT reader: empty lines inside entries were doubled. Fixes #2888.
  • mkvmerge: subtitles: when calculating the rounded duration of each entry the error from rounding the corresponding timestamp will be taken into account. Fixes #2890.
  • mkvextract: SSA/ASS extraction: mkvextract is no longer inserting empty lines before the 'Dialogue:' lines. Fixes #2876.
  • mkvextract: USF subtitles: start & end timestamps were too high by a factor of 1.000.000. Fixes #2875.
  • MKVToolNix: info tool: when saving to a text file the checkbox 'Save as default for saving output to text files' did nothing. Fixes #2869.
  • 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 foradding new entries to the various 'predefined values' lists were missing their texts.
  • Windows installer: the images are shown again. Fixes #2868.
  • 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.

What's New in 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'. Implements #2740.
  • 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. Also implements #2716.
  • MKVToolNix GUI: header editor: added an option to remove all attachments to the tree context menu. Implements #2835.
  • 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. Implements #2852.

Bug fixes:

  • Mkvmerge: fixed a segmentation fault when exiting prematurely due to write errors such as the destination having run out of space. Fixes #2843.
  • Mkvmerge: DTS: fixed wrong channel count for DTS tracks with XCh extensions. Fixes #2715.
  • Mkvmerge: MPEG TS reader: fixed detecting h.264/AVC and h.265/HEVC tracks that consist of only a single frame. Part of the fix of #2849.
  • Mkvmerge: MPEG TS reader: fixed handling of unbounded PES sizes for tracks that consist of only a single PES packet. Part of the fix of #2849.
  • 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. Fixes #2736 and partially fixes #2824.
  • 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. Part of the fix of #2824.
  • 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. Part of the fix of #2824.
  • Mkvmerge: WavPack: fixed support for files created by v5 of the program. Checksums, DSD audio data and non-standard sampling rates are handled correctly. Patch by David Bryant.
  • MKVToolNix GUI: multiplexer: fixed the cursor being positioned wrong after entering or pasting characters that aren't allowed in file names into the 'destination file' control. Fixes #2855.

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'.

What's New in 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 ':' 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. Part of the implementation of #2808. <li>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. <li>MKVToolNix GUI: multiplexer: added support for mkvmerge's new support for reading chapters from DVDs if both have been built with the 'libdvdread' library. Part of the implementation of #2808. <li>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'). <li>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. <li>MKVToolNix GUI: chapter editor: the chapter editor can now read chapters from DVDs if MKVToolNix has been build with the 'libdvdread' library. Part of the implementation of #2808. <li>MKVToolNix GUI: header editor: added an option in the preferences for displaying all date & time values in UTC instead of the local time zone. Implements #2814. </ul> <p><b>Bug fixes:</b></p> <ul> <li>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. </ul> <p><b>Build system changes:</b></p> <ul> <li>The ['libdvdread'](https://www.videolan.org/developers/libdvdnav.html) library will be used if found via 'pkg-config'. If it is found, support for reading chapters from DVDs will be enabled in 'mkvmerge' and the MKVToolNix GUI. Part of the implementation of #2808. <li>Boost's Date/Time, Lexical Cast, Range, Range Adaptors, Tri-Bool, Variant libraries are not used anymore. <li>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. <li>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. <li>The bundled version of fmtlib has been updated to release 6.2.1. </ul> <p><b>What's New in version 46.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>mkvmerge: when splitting, the placeholder '&'37;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. <li>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. <li>mkvmerge: for audio-only files mkvmerge will now write a cue entry every 500ms instead of every 2s. <li>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. </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: Matroska reader: when regenerating UIDs for chapters mkvmerge will now fix referencing tag chapter UID targets to have the same values. Fixes #2804. <li>mkvmerge: MP4 reader: fixed a crash that could potentially happen while trying to identify H.265/HEVC tracks. <li>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. <li>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. <li>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. <li>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. <li>MKVToolNix GUI: fixed a crash that happened when closing the preferences after having closed at least one multiplexer tab. Fixes #2785. <li>MKVToolNix GUI: macOS: changed the default of the 'elide tab header labels' feature introduced in v45 from 'no' to 'yes' to mirror how versions before v45 behaved on macOS. </ul> <p><b>What's New in version 45.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. <li>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. <li>MKVToolNix GUI: added an option in the preferences to disable all tooltips. <li>MKVToolNix GUI: Windows: debug output sent via Qt's to Windows' debugging facility will use a more verbose message format including the application name, making it easier to filter for in SysInternal's 'Debug View' utility. <li>MKVToolNix GUI: multiplexer: if the file identification fails due to a JSON parser error, the output generated by 'mkvmerge' will be output via Qt's debugging facility (viewable with SysInternal's 'Debug View' utility on Windows; on other systems it's output on 'STDERR') allowing insight into what's gone wrong. <li>MKVToolNix GUI: multiplexer: if an error occurs during file identification, the name of the processed file will be mentioned in the error message. <li>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. <li>MKVToolNix GUI: job queue: added an option in the preferences for removing completed jobs when exiting the program depending on their status. Implements #2769. </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: H.265/HEVC packetizer: fixed changing the NALU size length, it was using the wrong offset into the 'hevcC' structure. <li>mkvmerge: MP4 reader: fixed calculating the duration of video tracks that only contain a single frame. Fixes #2747. <li>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. <li>mkvpropedit: Windows: mkvpropedit wasn't caching when reading the file to modify, slowing down operations such as adding track statistics tags considerably. Fixes #2761. <li>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. <li>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. <li>MKVToolNix GUI: multiplexer: when using the 'show command line' menu option on Windows the path to the 'mkvmerge' executable was shown with forward slashes instead of backslashes. This is a purely cosmetic fix as Windows supports both forward and backward slashes. <li>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 (ifany). Fixes #2765. <li>MKVToolNix GUI: multiplexer, info tool: fixed the 'warn before overwriting' check wrt. jobs creating the same file. Fixes #2758. </ul> <p><b>What's New in version 44.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>MKVToolNix GUI: header editor: the attachments can now be reordered via drag & drop. Implements #2753. </ul> <p><b>Bug fixes:</b></p> <ul> <li>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. <li>MKVToolNix GUI: multiplexer: the "ask before overwriting" functionality did not look for the correct file names when splitting was active. Fixes #2741. </ul> <p><b>What's New in version 43.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. <li>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. </ul> <p><b>Bug fixes:</b></p> <ul> <li>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. <li>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. <li>mkvmerge: MPEG TS reader: fixed detection of MPEG-1/2 video tracks consisting of very few frames. Fixes #2732. <li>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. <li>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. </ul> <p><b>What's New in version 42.0.0:</b></p> <p><b>New features and improvements:</b></p> <p><b>mkvmerge: added an option for creating byte-identical files:</b></p> <ul> <li>'--deterministic <seed>'. Part of the implementation of #2698. <li>mkvmerge: Matroska reader: mkvmerge will remove the 'icpf' atom headers if they're present in frames read from Matroska files. Implements #2692. <li>mkvmerge: MP4 reader: ALAC tracks: the number of channels, sampling <li>frequency and bit depth are now taken from the bitstream in order to fix <li>bogus values on the container level. Implements #2714. <li>mkvpropedit: when changing track UIDs the referring elements in existing chapters & tags will be updated automatically, too. Part of the <li>implementation of #2700. <li>mkvinfo: when the option '-p'/'--hex-positions' is used, element positions will be output regardless of the verbosity level. Part of the implementation <li>of #2713. <li>mkvinfo: added the option '-P'/'--positions' for showing the position of <li>each element in decimal regardless of the verbosity level used. Part of the implementation of #2713. <li>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. <li>mkvinfo: added the option '-a'/'--all' for outputting all sub-elements (even <li>cues & seek head entries) and not stopping at the first cluster regardless <li>of the verbosity level used. Part of the implementation of #2713. <li>MKVToolNix GUI: multiplexer: added an option in the preferences for <li>disabling adding cover images from Blu-ray discs. Implements #2693. <li>MKVToolNix GUI: multiplexer: added mkvmerge's new '--deterministic' option <li>in the "additional command-line options" dialog. Part of the implementation <li>of #2698. <li>MKVToolNix GUI: header editor:: when changing track UIDs the referring <li>elements in existing chapters & tags will be updated automatically, too. Part of the implementation of #2700. </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: HEVC ES parser: fixed a bug in the slice parser calculating the <li>size of a field which in turn could have led to the slice's type being read wrong. Patch by Torsten Hauska. Fixes #2710. <li>mkvmerge: Matroska reader: fixed a segmentation fault when trying to read a <li>file that uses header removal compression but no removed bytes are present in the track headers. Fixes #2687. <li>mkvmerge: MPEG elementary stream parser: fixed an invalid memory access and use of uninitialized memory that could happen under certain <li>circumstances. Fixes #2690. <li>mkvmerge: RealMedia reader: fixed a division by zero when all audio <li>timestamps were zero. Fixes #2689. <li>mkvmerge: RealMedia reader: fixed an invalid memory access in the video frame assembly code triggered by invalid data in the file. Fixes #2691. </ul> <p><b>Build system changes:</b></p> <ul> <li>'std::optional' (C++17 feature) is now used instead of 'boost::optional'. <li>'std::regex' is now used instead of 'boost::regex'. </ul> <p><b>What's New in version 41.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>mkvmerge: Matroska reader: Vorbis tracks: stream comments (aka Vorbis <li>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. <li>mkvmerge: MP4 reader: added support for reading Opus audio from MP4 files. Part of the implementation of #2673. <li>mkvmerge: MP4 reader: added support for reading VP9 video from MP4 files. Part of the implementation of #2673. <li>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. <li>mkvmerge: WAV reader: added support for reading RF64 files. <li>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. <li>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. <li>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. <li>MKVToolNix GUI: update check: the dialog showing the latest news & version information states explicitly where the links take the user (the MKVToolNix <li>NEWS.md` file and YouTube respectively). </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: Matroska reader: mkvmerge did not copy the codec's private data when reading WavPack from Matroska files. Fixes #2685. <li>mkvmerge: MPLS handling: re-added caching when using MPLS playlists as input files. Fixes #2666. <li>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. <li>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. <li>MKVToolNix GUI: multiplexer: the progress dialog shown when scanning a Blu-ray wasn't closed properly in certain situations. Fixes #2678. <li>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. </ul> <p><b>What's New in version 39.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. <li>mkvmerge: MP4 reader: if present, cover art images (the 'meta.udta.ilist.covr' atom) will be converted into attachments. <li>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. <li>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. <li>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. <li>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. <li>MKVToolNix GUI: Windows: added a dark mode that's enabled when Windows 10's dark mode is turned on. <li>translations: added a Bulgarian translation of the programs & the man pages by ?????? ??????? (see 'AUTHORS'). </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: attachments without a file name won't be ignored anymore. Part of the fix of #2642. <li>MKVToolNix GUI: header editor: attachments with an empty name element will be shown as '<unnamed>' as originally intended. Part of the fix of #2642. <li>Linux AppImage: the AppImage will no longer change directories before running the desired executable allow the use of relative file names. Fixes #2632. </ul> <p><b>Build system changes:</b></p> <ul> <li>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. <li>Boost 1.60.0 or newer is now required. </ul> <p><b>What's New in version 38.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. <li>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. </ul> <p><b>Bug fixes:</b></p> <ul> <li>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. <li>mkvmerge: when splitting by chapters the user can now split by chapters coming from one of the appended files, too. Fixes #2625. <li>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. <li>MKVToolNix GUI: Hebrew was added to the list of often-used languages so that it can be selected by default again. Fixes #2610. <li>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. </ul> <p><b>Build system changes:</b></p> <ul> <li>Boost's Operators header library is now required. </ul> <p><b>What's New in version 37.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. </ul> <p><b>Bug fixes:</b></p> <ul> <li>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'). <li>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. </ul> <p><b>What's New in version 35.0.0:</b></p> <p><b>New features and enhancements:</b></p> <ul> <li>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. <li>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. </ul> <p><b>Bug fixes:</b></p> <ul> <li>mkvmerge: the 'codec name' track property wasn't copied from Matroska files. Fixes #2566. <li>MKVToolNix GUI: multiplexer: Windows: clearing the destination file name will reset the tab name to '<No destination file>' again. Fixes #2571. <li>MKVToolNix GUI: multiplexer: the file types were not re-translated if the UI language was changed. Fixes #2572. </ul> <p><b>What's New in version 34.0.0:</b></p> <ul> <li>mkvmerge all subtitle frames are now treated as key frames in order to fix <li>wrong data in source files. Fixes #2541. <li>mkvmerge: AV1: fixed frame timestamp calculation when reading bitstreams that lack timing information from IVF files. Fixes #2553. <li>mkvmerge: Matroska reader: fixed an infinite loop that could happen with large video frames and applied timestamp files due to too much data being buffered at the wrong time. Fixes #2550. </ul> </div> </div> </div> </div> <div class="col-sm-3 left-nav-remove-list clearfix pulli-right produc-right-sec"> <!-- Ad 300x600 --> <div class="center-gray-ad-txt">Advertisement <!-- 300x600 --> <!-- 300x600 --> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 300x600 Responsive - ROS --> <ins class="adsbygoogle sbepr_adslot_3" style="display:inline-block" data-ad-client="ca-pub-1779601891087525" data-ad-slot="3979554964"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <!-- 300x600 --><!-- 300x600 --> </div> <!-- End Ad --> <div class="gap"></div> <!-- Navmenu --> <div class="row"> <div class="col-sm-12 sidebar"> <div class="list-group"> <span href="#" class="list-group-item-cat "> <span class="list-group-item-heading-text"><i class="fa fa-sitemap" aria-hidden="true"></i> CATEGORIES</span></span> </span><a href="https://www.freewarefiles.com/news/" class="list-group-item "> <i class="fa fa-file-text"></i> <span class="leftnavnew-text">How-To's / Top 5's</span> </a> <a href="https://www.freewarefiles.com/category_17_244.html" class="list-group-item "> <i class="fa fa-bug"></i> <span class="leftnavnew-text">Antivirus</span> </a> <a href="https://www.freewarefiles.com/category/Audio-Video/" class="list-group-item"> <i class="fa fa-file-video-o"></i> <span class="leftnavnew-text">Audio/Video</span> </a> <a href="https://www.freewarefiles.com/category/Business-Organize/" class="list-group-item"> <i class="fa fa-address-book"></i> <span class="leftnavnew-text">Business / Organize</span> </a> <a href="https://www.freewarefiles.com/category/Desktop-Enhancements-Utilities/" class="list-group-item"> <i class="fa fa-desktop"></i> <span class="leftnavnew-text">Desktop Enhancements</span> </a> <a href="https://www.freewarefiles.com/category/Developer-Tools/" class="list-group-item"> <i class="fa fa-code"></i> <span class="leftnavnew-text">Developer Tools</span> </a> <a href="https://www.freewarefiles.com/category/Drivers/" class="list-group-item"> <i class="fa fa-folder"></i> <span class="leftnavnew-text">Drivers</span> </a> <a href="https://www.freewarefiles.com/Essential-Free-Software.html" class="list-group-item"> <i class="fa fa-lightbulb-o"></i> <span class="leftnavnew-text">Essential Software</span> </a> <a href="https://www.freewarefiles.com/category/Free-Games/" class="list-group-item"> <i class="fa fa-gamepad"></i> <span class="leftnavnew-text">Games</span> </a> <a href="https://www.freewarefiles.com/category/Graphics/" class="list-group-item"> <i class="fa fa-image"></i> <span class="leftnavnew-text">Graphics / Design</span> </a> <a href="https://www.freewarefiles.com/category/Home-Education/" class="list-group-item"> <i class="fa fa-book"></i> <span class="leftnavnew-text">Home / Education</span> </a> <a href="https://www.freewarefiles.com/category/Internet/" class="list-group-item"> <i class="fa fa-signal"></i> <span class="leftnavnew-text">Internet</span> </a> <a href="https://www.freewarefiles.com/category_6_228.html" class="list-group-item"> <i class="fa fa-mobile"></i> <span class="leftnavnew-text">Mobile / Smartphone Tools</span> </a> <a href="https://www.freewarefiles.com/category/Network-Tools/" class="list-group-item"> <i class="fa fa-laptop"></i> <span class="leftnavnew-text">Network</span> </a> <a href="https://www.freewarefiles.com/category/Programming/" class="list-group-item"> <i class="fa fa-file-code-o"></i> <span class="leftnavnew-text">Programming</span> </a> <a href="https://www.freewarefiles.com/category/Screensavers/" class="list-group-item"> <i class="fa fa-file-photo-o"></i> <span class="leftnavnew-text">Screensavers</span> </a> <a href="https://www.freewarefiles.com/category/Security-Privacy/" class="list-group-item"> <i class="fa fa-warning"></i> <span class="leftnavnew-text">Security / Privacy</span> </a> <a href="https://www.freewarefiles.com/category/Utilities/" class="list-group-item"> <i class="fa fa-list-alt"></i> <span class="leftnavnew-text">Utilities</span> </a> </div> </div> </div> <!-- Navmenu --> <div class="gap"></div> </div> </div> </article> <!--body section end--> <!--footer --> <footer> <div class="container"> <div class="row"> <div class="col-sm-5 col-xs-6"> <div class="row"> <div class="col-sm-5 clearfix"> <h6>POPULAR</h6> <ul class="footer-nav"> <li><a href="https://www.freewarefiles.com/New-Files/">New Files</a></li> <li><a href="https://www.freewarefiles.com/Top-100-Free-Downloads/">Top 100</a></li> <li><a href="https://www.freewarefiles.com/news/">HowTo's</a></li> <li><a href="https://www.freewarefiles.com/Essential-Free-Software.html">Best Essential Software</a></li> </ul> </div> <div class="col-sm-2"> <img src="https://cdn.freewarefiles.com/img/fot-line.jpg" alt="" border="0" class="fot-line"> </div> <div class="col-sm-5 clearfix"> <h6>SOFTWARE</h6> <ul class="footer-nav"> <li><a href="https://www.freewarefiles.com/Editors-Picks.html">Editor's Picks</a></li> <li><a href="https://www.freewarefiles.com/User-Login-Watchlist.html" rel="nofollow">My Watchlist</a></li> <li><a href="https://www.freewarefiles.com/news/category/top-5-software/">Top 5</a></li> <li><a href="https://www.freewarefiles.com/User-Login.html" rel="nofollow">Submit Software</a></li> </ul> </div> </div> </div> <div class="col-sm-7 col-xs-6"> <div class="row"> <div class="col-sm-1"> <img src="https://cdn.freewarefiles.com/img/fot-line.jpg" alt="" border="0" class="fot-line"> </div> <div class="col-sm-5 clearfix"> <h6>FREEWARE FILES</h6> <ul class="footer-nav"> <li><a href="https://www.freewarefiles.com/Eula.html">EULA / Terms and Conditions</a></li> <li><a href="https://www.freewarefiles.com/Privacy-Policy.html">Privacy Policy</a></li> <li><a href="https://www.freewarefiles.com/Uninstall-Software.html">Uninstall</a></li> <li><a href="https://www.freewarefiles.com/Contact-Us.html" rel="nofollow">Contact Us</a></li> </ul> </div> <div class="col-sm-1"> <img src="https://cdn.freewarefiles.com/img/fot-line.jpg" alt="" border="0" class="fot-line"> </div> <div class="col-sm-5 clearfix"> <h6>FOLLOW US ON</h6> <ul class="social"> <li><a href="https://www.facebook.com/freewarefilescom"><img src="https://cdn.freewarefiles.com/img/fot-f.jpg" alt="Follow us on Facebook" border="0"> </a></li> <li><a href="https://plus.google.com/115693238983729879678" rel="publisher"><img src="https://cdn.freewarefiles.com/img/fot-g.jpg" alt="Follow us on Google+" border="0"> </a></li> <li><a href="https://www.twitter.com"><img src="https://cdn.freewarefiles.com/img/fot-t.jpg" alt="Follow us on Twitter" border="0"> </a></li> <li><a href="https://www.linkedin.com"><img src="https://cdn.freewarefiles.com/img/fot-in.jpg" alt="Follow us on LinkedIn" border="0"> </a></li> </ul> <p class="social-txt"> Over 18,000 programs to <br>download and use for free </p> </div> </div> </div> </div> </div> </footer> <!--footer --> <!--copyright --> <aside> <div class="container"> <p class="copyright">© 1998 - <script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script> FreewareFiles.com. All Rights Reserved.</p> <a href="#" class="back-to-top">Back to Top</a> </div> </aside> <!--copyright --> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <!--copyright --> </div><!--wrapper ends--> <!--js--> <script src="js/jquery.min.js"></script> <script type="text/javascript"> var didScroll; var lastScrollTop = 0; var delta = 5; var navbarHeight = $('header').outerHeight(); $(window).scroll(function(event){ didScroll = false; }); setInterval(function() { if (didScroll) { hasScrolled(); didScroll = true; } }, 250); function hasScrolled() { var st = $(this).scrollTop(); // Make sure they scroll more than delta if(Math.abs(lastScrollTop - st) <= delta) return; // If they scrolled down and are past the navbar, add class .nav-up. // This is necessary so you never see what is "behind" the navbar. if(st == 0) { $('header').removeClass('nav-up').removeClass('shadow').addClass('nav-down'); } else if (st > lastScrollTop && st > navbarHeight){ // Scroll Down $('header').removeClass('nav-down').addClass('nav-up'); } else { // Scroll Up if(st + $(window).height() < $(document).height()) { $('header').removeClass('nav-up').addClass('nav-down').addClass('shadow'); } } lastScrollTop = st; } </script> <script type="text/javascript"> jQuery(document).ready(function() { var offset = 220; var duration = 500; jQuery(window).scroll(function() { if (jQuery(this).scrollTop() > offset) { jQuery('.back-to-top').fadeIn(duration); } else { jQuery('.back-to-top').fadeOut(duration); } }); jQuery('.back-to-top').click(function(event) { event.preventDefault(); jQuery('html, body').animate({scrollTop: 0}, duration); return false; }) }); </script> <script src="js/bootstrap.min.js"></script> <script type="text/javascript" src="js/vendor.js"></script> <script type="text/javascript" src="js/app.js"></script> <!--js--> <!--script type="text/javascript" src="js/vendor.js"></script> <script type="text/javascript" src="js/app.js"></script--> <script type="text/javascript"> $(document).ready(function(){ $('html').click(function(e){ var targetdiv = $(e.target).attr('id'); if(targetdiv=="dropdown-search-btn" || targetdiv=="search-dropdown-auth" || targetdiv=="search-dropdown-words" || targetdiv=="search-dropdown-select"){ searchDdMenuShow(true); }else{ if(e.target.nodeName!='OPTION') searchDdMenuShow(false); } }); $('#dropdown-search-btn').click(function(){ searchDdMenuShow(true); }); $('.dropdown-menu').click(function(){ searchDdMenuShow(true); }); }); function searchDdMenuShow(dropdownMenuShow){ if(dropdownMenuShow){ $('.dropdown-menu').css('display','block'); }else{ $('.dropdown-menu').css('display','none'); } } </script> <!--js--> <!--Search js add on 08092017 Start--> <script type="text/javascript"> $(function () { // Remove Search if user Resets Form or hits Escape! $('body, .navbar-collapse form[role="search"] button[type="reset"]').on('click keyup', function(event) { console.log(event.currentTarget); if (event.which == 27 && $('.navbar-collapse form[role="search"]').hasClass('active') || $(event.currentTarget).attr('type') == 'reset') { closeSearch(); } }); function closeSearch() { $('.navbar-collapse form[role="search"] button[type="button"]').show(); var $form = $('.navbar-collapse form[role="search"].active'); $form.find('input').val(''); $form.removeClass('active'); } // Show Search if form is not active // event.preventDefault() is important, this prevents the form from submitting /* $(document).on('click', '.navbar-collapse form[role="search"]:not(.active) button[type="button"]', function(event) { $(this).hide(); //event.preventDefault(); var $form = $(this).closest('form'), $input = $form.find('input'); $form.addClass('active'); $input.focus(); });*/ $(window).load( function() { $('.navbar-collapse form[role="search"]:not(.active) button[type="button"],.navbar-collapse form[role="search"]:not(.active) button[type="reset"]').hide(); //event.preventDefault(); $('.navbar-collapse form[role="search"]').addClass('active'); $('.navbar-collapse form[role="search"]').find('input').focus(); $('.navbar-collapse form[role="search"]').find('div.rdo-btns .int-radio').css('display','none'); }); // ONLY FOR DEMO // Please use $('form').submit(function(event)) to track from submission // if your form is ajax remember to call `closeSearch()` to close the search container $(document).on('click', '.navbar-collapse form[role="search"].active button[type="button"]', function(event) { //event.preventDefault(); var $form = $(this).closest('form'), $input = $form.find('input'); $('#showSearchTerm').text($input.val()); closeSearch() }); }); </script> <!--Search js add on 08092017 End--> </body> </html>