diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2024-04-16 05:27:46 +0200 |
---|---|---|
committer | Kacper Michajłow <kasper93@gmail.com> | 2024-04-16 19:51:22 +0200 |
commit | ab3b1744b9a6c7cc33e16538e175af2b00d3c2e3 (patch) | |
tree | 710501117b64503483381ba5d5dc5305e6e7524b /demux | |
parent | 2babe02f0f58711d19f3cd412fe84a41bf3946fd (diff) | |
download | mpv-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.c | 5 |
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 { |