Update Default and forced flags and default yes no in the GUI

Moritz Bunkus 2021-08-01 08:34:17 +00:00
parent d646b5c4ae
commit 788a4f946a

@ -12,13 +12,13 @@ There are several flags in Matroska with confusing or unclear names ("default",
Leaving a flag (no matter which flag) on the "default" settings means the decision whether or not it should be set is up to mkvmerge. mkvmerge usually takes the information provided by the source container into account. For some flag types (especially the "default track" flag) there are other considerations as well.
Setting a flag to "no" will force mkvmerge not to set that flag, no matter what those other considerations would have done and no matter what the source container provided for that flag.
Setting a flag to "yes" or "no" will force mkvmerge set respectively not set that flag, no matter what those other considerations would have done and no matter what the source container provided for that flag.
For the "default track" flag: The special consideration is that mkvmerge will automatically set this flag to "yes" for exactly one track of each track type (audio, video, subtitles). You can only prevent this by explicitly setting the "default track" flag to "no" manually for all tracks of a kind (e.g. for all subtitle tracks).
## Meaning of the flags
The "default track" flag tells the player that this track should be played unless the user overrides that decision somehow. You usually mark the original audio track with "default track" and leave it off for the rest of them, e.g. for the director's commentary or some translations you don't want [(e.g. _The Lord of the Rings_, mark "English" as "default track" but not "German" and "Director's comments (English)].
The "default track" flag tells the player that this track is eligible (or suited) to be played by default, taking other user preferences such as the track language into account. For example, if you have a file with three audio tracks (track 2: Korean, director's comments; track 3: Japanese, main audio, track 4: Korean, main audio), you would set the "default track" flag to "no" for the track containing the Korean director's comments and to "yes" for the two audio tracks containing the main audio. The player would then use the user's preferences for the initial track selection. In the example above, if the user prefers Korean over Japanese, the player would select track 4 to be played initially.
As a lot of users don't want subtitles shown by default, they tell mkvmerge not to set the "default track" flag for any subtitle track.
Note: before v59, there was special handling for the "default track" flag: only one track of each type could have it set. However, this was changed in v59 to match the current Matroska specification. The old specification was something no existing player ever really implemented.
Now on to the "forced display" flag, in short "forced". If this is set to "on", this track must be played/shown no matter what the user selected for his preferences or what the player would normally chose to show/play. This is used seldom, e.g. only for a subtitle track that only contains the English translation whenever Legolas is talking Elbish.
@ -26,21 +26,7 @@ Now on to the "forced display" flag, in short "forced". If this is set to "on",
## Details on how mkvmerge decides the flags' values
Here's how mkvmerge's algorithm works for determining the status of the *default track* flag:
1. Is "no" set on the command line? Set flag to "no".
2. Is "yes" set on the command line? If so and if no previous track of this kind has been set to "yes" from the command line, set flag to "yes". Otherwise continue in the evaluation process.
3. Does source container provide "no"? Set flag to "no".
4. Does source container provide "yes"? If so and if no previous track of this kind has been set to "yes" either from the command line or from its source container, set flag to "yes". Otherwise continue in the evaluation process.
5. Has the flag NOT been set to "yes" for any other track of this kind encountered so far? Set flag to "yes".
6. Set flag to "no".
The algorithm for the *forced* flag is a bit simpler and looks roughly like this:
Here's how mkvmerge decides the state of each flag in the destination file:
1. Is the flag set on the command line (no matter its value)? Set flag to the same value.
@ -48,4 +34,6 @@ The algorithm for the *forced* flag is a bit simpler and looks roughly like this
3. Set flag to "no".
The GUI behaves slightly different as there are preferences that affect how flags are set when files are added to it.
Categories: [merging](FAQ#category-merging)