Internally MKVToolNix always stores UTF-8-encoded narrow
strings. However, on Windows boost::filesystem uses the OEM CP by
default for narrow strings.
Fixes#3473.
First of all, it wasn't stripping whitespaces from each line of the
entry, but only from the start of the first & the end of the last
line (in other words: from the start & end of the whole entry).
Second, modifying during extraction is the wrong thing to do
anyway. The only modification done is removing any existing line feed
characters in order to have consistent Unix-style line endings.
Part of the fix of #3470.
gcc's implementation of the C++17 file system library doesn't support
UNC paths of style `\\?\…` on Windows. There doesn't seem to be any
progress towards implementing support for it.
Fixes#3058. See also #2916.
Added file types (both via the "add" button and via drag & drop) can
be either regular source files (files that are listed on `mkvmerge`'s
command line without preceding options; e.g. Matroska, MP4, SRT…) &
non-source files (for which special options are needed, e.g. chapter
files with `--chapters /path/to/file.xml`).
Until this commit all non-source file types were handled first. They
were always set in the currently-selected tab. All source files were
handled later, including the handling of where to add them (current
tab, all to one new tab, one new tab per file…).
This commit reverses the order: source files are handled first,
non-source files afterwards. The result is more consistent if the
choice where to add them is "all in a single new tab". With the older
model all non-source files were always set in the tab that was open
before adding the files. With the commit all added files will end up
in the new tab, both source & non-source files.
Fixes#3469.
Can prevent mis-detection if the file name has the wrong
extension. For example, a WAV file with DTS inside but with an
extension of `.dts` might be detected as the wrong type of DTS.
Fixes#3462.
On my macOS installation `pkg-config --libs flac` doesn't include Ogg,
and the linker won't search for the library automatically. This means
that FLAC detection fails due to unresolved, Ogg-related symbols.
Fixes#3439.
The job output is stored in two places: the UI elements visible to the
user, and an internal string array. The latter is used when saving the
output as it reflects the order in which lines arrived in,
intermingling regular output lines & warnings/errors properly.
The "clear output" functionality only cleared the UI elements, but not
the internal string array. This meant that any "save output" action
run after a "clear output" action would write all lines received
during the current run of MKVToolNix GUI.
Now "clear output" also clears the internal string array.
Fixes#3438.
The OBU header is at least one byte long, and mkvmerge only really
supports headers with a size field present, making it at least two
bytes long. However, the size field is encoded with a variable-width
encoding (leb128), making it impossible to determine if there's enough
data to parse the header without parsing the header.
If there's not enough data, a "end of data" exception is thrown by the
bit reader. Unfortunately that exception hadn't been caught in the AV1
parser, causing it to restart the next parse in the middle of an OBU,
effectively halting all AV1 parsing at that point.
This fix will remember the last known-good parser position before
trying to parse the OBU header. If that fails with an "end of data"
exception, the position will be reset to the last known-good position,
and parsing will resume from there once more data has been added.
Fixes#3431.