summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2024-04-16 05:27:46 +0200
committerKacper Michajłow <kasper93@gmail.com>2024-04-16 19:51:22 +0200
commitab3b1744b9a6c7cc33e16538e175af2b00d3c2e3 (patch)
tree710501117b64503483381ba5d5dc5305e6e7524b /demux
parent2babe02f0f58711d19f3cd412fe84a41bf3946fd (diff)
downloadmpv-ab3b1744b9a6c7cc33e16538e175af2b00d3c2e3.tar.bz2
mpv-ab3b1744b9a6c7cc33e16538e175af2b00d3c2e3.tar.xz
demux_mkv: add BCP 47 language tags support
Section 12 of Matroska Media Container Format Specifications says: If a BCP 47 Language Element and an ISO 639-2 Language Element are used within the same Parent Element, then the ISO 639-2 Language Element MUST be ignored and precedence given to the BCP 47 Language Element. Fixes: #8144
Diffstat (limited to 'demux')
-rw-r--r--demux/demux_mkv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index be606975bb..004efebfc0 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -820,7 +820,10 @@ static void parse_trackentry(struct demuxer *demuxer,
MP_DBG(demuxer, "| + CodecPrivate, length %u\n", track->private_size);
}
- if (entry->language) {
+ if (entry->language_bcp47) {
+ track->language = talloc_strdup(track, entry->language_bcp47);
+ MP_DBG(demuxer, "| + LanguageBCP47: %s\n", track->language);
+ } else if (entry->language) {
track->language = talloc_strdup(track, entry->language);
MP_DBG(demuxer, "| + Language: %s\n", track->language);
} else {