The code path for handling appending was only triggered if there was
exactly one entry between the parenthesis (e.g. `… + '(' VTS_02_1.VOB
')'`), but not with two and more.
Additional parts are usually only used for content from DVDs, and
appending content from DVDs is not an often-used function, it
seems. Therefore this bug didn't affect the vast majority of users.
For example: you add a file, disable the second audio track. Then you
append another file (again having two audio tracks). The second audio
track from the appended file will end up appended to the second audio
track from the first file by default — and as that is disabled, the
appended second audio track should be disabled too.
This is even clearer when considering that the GUI doesn't allow the
user to enable an appended track that's appended to a disabled track.
Unlike e.g. the track language, which only applies to the single
destination track, the subtitle character set is a property of the
source file/source container format. Therefore the user must be able
to set it for each source file/track, too. mkvmerge already follows
that model.
Fixes#2214.
On Windows libmagic uses the ANSI file functions for opening
files. Therefore passing file names with non-ASCII/non-ANSI characters
won't work a lot of the time. Therefore letting libmagic's look for
and use its default location algorithm is safer. As a result
`magic.mgc` must be stored in `share/misc` instead of `data`.
Fixes#2212.
If the first level 1 element after the resync is something
else (e.g. chapters, tags, cues etc.), then no element is returned,
and the result would be a segfault.
Fixes#2211.
Before this change the incomplete packet would be filled with data
from other PES packets from after the error location. This would lead
to invalid frame data.
So now both the currently incomplete PES packet as well as all
following TS packets that don't have the
`payload_unit_start_indicator` flag set will be dropped.
mkvmerge assumes an error is present either if the
`transport_error_indicator` flag is set in the transport stream packet
header, or if the `continuity_counter` header field's value doesn't
match the expected value based on the previous transport stream packet
for the same track.
Fixes#2181.