Whenever the word means all the possible elements in the "tracks,
chapters and tags" box, the word "item" is better as it includes
chapters & tags whereas "tracks" only means "audio/video/subtitle/
button tracks".
In AC-3 streams you can have an AC-3 core with dependent E-AC-3
frames. The E-AC-3 frames can both replace channels from the AC-3 core
and add additional channels to them.
Fixes#2283.
The packetizers should not call `set_video_display_width/height`
directly as that doesn't take parameter precedence into account:
command line parameters should override bitstream parameters.
libintl.h defines a preprocessor define for `snprintf` with the
content of `libintl_snprintf` if the C library isn't GNU's
glibc. Therefore `std::snprintf` actually becomes
`std::libintl_snprintf` which doesn't exist. This affects e.g. mingw
and macOS.
With g++ 8 there are way too many false positives in `EbmlElement.h`
which is included from nearly each and every file in MKVToolNix. This
floods the compilation logs with irrelevant warnings drowning out the
legitimate ones.
In #2306 a file was provided with an edit list consisting of two
identical entries that span the whole duration of the file as given by
the file headers. The difference to earlier provided files is that the
edits don't start at 0 but slightly later. Therefore a check for
"starting at 0" seems counterproductive.
Fixes#2306.
Empty ISO 639-1 codes led to `<ISO_639_1_CODES>` looking like
e.g. `de|en||nl`. That would also match an empty string. Therefore the
whole regex would match where it wasn't supposed to. An example:
File name: `This... is strange.[eng].srt`
With the default regex, the first `..` is what would be matched, the
capturing parenthesis would be empty, and therefore no language would
be detected.
Fixes#2298.
MP4Box doesn't like empty SPU packets and aborts with the message
"Corrupted data found in file…". As empty SPU packets serve no
purpose, just drop them during extraction.
Implements #2293.
On Windows the setting names aren't case sensitive, but on other
systems they are. This means that writing something as `abcTheseTypes`
and reading it back as `abcThesetypes` won't work.
Fixes#2297.