With very large video frames (one test file has h.264 from Blu-rays
with ten seconds between key frames and an average frame size of ~350
KB) buffering due to external timestamps being applied could easily
lead to the packetizer holding more than 128 MB of data in memory
while waiting for the next key frame before it can apply the
timestamps. The reader must not refuse to deliver frames in such a
case, otherwise the next I frame will never appear, the packetizer
will never write out those buffered frames and the whole process ends
up in an endless loop.
Fixes#2550.
This mostly affects UNC paths (e.g. `\\server\Videos\…`) which would
be turned into forward slashes (`//server/Videos/…`) which mkvmerge
doesn't support.
Fixes#2533.
Before the GUI tried to make the destination file name valid after
each change. This worked badly with the user trying to change the
drive letter by adding the new one and removing the old one in two
steps.
Now the GUI will simply ignore an invalid destination file name for
the time being. The file name will still be verified when the job is
started or added to the queue.
Fixes#2527.
Removing all suffixes of the form "a space character followed by (
followed by a number followed by )" would also remove things such as
years (e.g. "Amélie (2001)" was truncated to "Amélie" before trying to
make the file name unique).
Now the GUI remembers which suffix it hat to add the last time it
tried to make the name unique, and only that suffix will be removed on
the next attempt.
Fixes#2521.
On Windows symbolic links are used when mounting a drive as a
sub-folder somewhere. Unfortunately Boost::Filesystem's `canonical`
function tries to read those symlinks and throws an exception that the
operation isn't supported.
Fixes#2522.