Additionally:
• refactor the code for activating hacks
• add description for hacks which haven't had one before
• move description from the GUI's source to the common library
The option "--engage append_and_split_flac" will restore pre-v45
behavior and enable appending and splitting of FLAC tracks.
The resulting tracks will be broken: the official FLAC tools will not be able
to decode them and seeking will not work as expected.
This is important, because if the signal is not re-raised properly,
the shell may continue execution of other commands if mkvmerge in a
shell script or for loop is interrupted with Ctrl+C, and the user
may have to press Ctrl+C multiple times to terminate the script.
For more details, see: https://www.cons.org/cracauer/sigint.html
Several names in the language list have complex names such as "Greek,
Modern (1453-)". Realistically speaking such complex language names
will never be part of a file name. The GUI will therefore only look
for simplified versions of the name by cutting off everything after a
comma or an opening parenthesis.
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 `:<title number>` to the file/directory name in the
`--chapters …` argument, e.g.
```
mkvmerge -o out.mkv in.mkv --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:3
```
This support requires building with the `libdvdread` library.
Part of the implementation of #2808.
MakeMKV includes such a tag in the track statistics tags that conveys
two pieces of information:
1. that the source was a Blu-ray disc (the first two digits being `00`)
2. what the track's ID on the MPEG TS level was (the last four digits,
in hexdecimal)
mkvmerge will add that tag when reading an MPLS.
When reading a Matroska file mkvmerge will keep the `SOURCE_ID` tag if
it exists.
Implements #2774.