> On Jul 4, 2020, at 2:29 AM, Marton Balint <c...@passwd.hu> wrote: > > > > On Sat, 27 Jun 2020, Zhao Zhili wrote: > >> This is a map from 'Macintosh Language Codes' to 'ISO639-2/T'. Some items >> in the map were ISO639-2/B, some were ISO639-1. > > FFMpeg is using ISO639-2/B for language metadata according to docs. So if you > change these tables, some functions relying on that these tables contain > ISO639-2/B entires will break.
From "QuickTime File Format Specification": > the QuickTime file format uses either language codes from the Macintosh > Script Manager or ISO language codes (as specified in ISO 639-2/T ) ISO/IEC 14496-12 only specify ISO 639-2/T as language codes. In my opinion, mov_mdhd_language_map only handle the difference between the two specification. mov_mdhd_language_map shouldn't map to ISO 639-2/B, otherwise ff_mov_iso639_to_lang 1. may return ISO 639-2/B if the format is quicktime 2. return ISO 639-2/T if the format is 14496-12 If we need transform between mov language codes and what FFmpeg uses, fix the implementation of ff_mov_iso639_to_lang and ff_mov_lang_to_iso639, or add wrapper on them. I think it's better to keep the duty of mov_mdhd_language_map simple and clear. > > You should check which functions are using these tables, and update them > accordingly. Or maybe you need to update the code which is calling those > functions. There is also some infrastructure in place for converting between > languages, see libavformat/avlanguage.h. > > Regards, > Marton > >> --- >> libavformat/isom.c | 50 +++++++++++++++++++++++----------------------- >> 1 file changed, 25 insertions(+), 25 deletions(-) >> >> diff --git a/libavformat/isom.c b/libavformat/isom.c >> index 209bbac5d1..e6b9506f67 100644 >> --- a/libavformat/isom.c >> +++ b/libavformat/isom.c >> @@ -397,10 +397,10 @@ const AVCodecTag ff_codec_movdata_tags[] = { >> static const char mov_mdhd_language_map[][4] = { >> "eng", /* 0 English */ >> "fra", /* 1 French */ >> - "ger", /* 2 German */ >> + "deu", /* 2 German */ >> "ita", /* 3 Italian */ >> - "dut", /* 4 Dutch */ >> - "sve", /* 5 Swedish */ >> + "nld", /* 4 Dutch */ >> + "swe", /* 5 Swedish */ >> "spa", /* 6 Spanish */ >> "dan", /* 7 Danish */ >> "por", /* 8 Portuguese */ >> @@ -410,11 +410,11 @@ static const char mov_mdhd_language_map[][4] = { >> "ara", /* 12 Arabic */ >> "fin", /* 13 Finnish */ >> "gre", /* 14 Greek */ >> - "ice", /* 15 Icelandic */ >> + "isl", /* 15 Icelandic */ >> "mlt", /* 16 Maltese */ >> "tur", /* 17 Turkish */ >> - "hr ", /* 18 Croatian */ >> - "chi", /* 19 Traditional Chinese */ >> + "hrv", /* 18 Croatian */ >> + "zho", /* 19 Traditional Chinese */ >> "urd", /* 20 Urdu */ >> "hin", /* 21 Hindi */ >> "tha", /* 22 Thai */ >> @@ -425,20 +425,20 @@ static const char mov_mdhd_language_map[][4] = { >> "est", /* 27 Estonian */ >> "lav", /* 28 Latvian */ >> "", /* 29 Sami */ >> - "fo ", /* 30 Faroese */ >> - "", /* 31 Farsi */ >> + "fao", /* 30 Faroese */ >> + "fas", /* 31 Farsi */ >> "rus", /* 32 Russian */ >> - "chi", /* 33 Simplified Chinese */ >> - "", /* 34 Flemish */ >> - "iri", /* 35 Irish */ >> - "alb", /* 36 Albanian */ >> + "zho", /* 33 Simplified Chinese */ >> + "nld", /* 34 Flemish */ >> + "gle", /* 35 Irish */ >> + "sqi", /* 36 Albanian */ >> "ron", /* 37 Romanian */ >> "ces", /* 38 Czech */ >> "slk", /* 39 Slovak */ >> "slv", /* 40 Slovenian */ >> "yid", /* 41 Yiddish */ >> - "sr ", /* 42 Serbian */ >> - "mac", /* 43 Macedonian */ >> + "srp", /* 42 Serbian */ >> + "mkd", /* 43 Macedonian */ >> "bul", /* 44 Bulgarian */ >> "ukr", /* 45 Ukrainian */ >> "bel", /* 46 Belarusian */ >> @@ -446,33 +446,33 @@ static const char mov_mdhd_language_map[][4] = { >> "kaz", /* 48 Kazakh */ >> "aze", /* 49 Azerbaijani */ >> "aze", /* 50 AzerbaijanAr */ >> - "arm", /* 51 Armenian */ >> - "geo", /* 52 Georgian */ >> + "hye", /* 51 Armenian */ >> + "kat", /* 52 Georgian */ >> "mol", /* 53 Moldavian */ >> "kir", /* 54 Kirghiz */ >> "tgk", /* 55 Tajiki */ >> "tuk", /* 56 Turkmen */ >> "mon", /* 57 Mongolian */ >> - "", /* 58 MongolianCyr */ >> + "mon", /* 58 MongolianCyr */ >> "pus", /* 59 Pashto */ >> "kur", /* 60 Kurdish */ >> "kas", /* 61 Kashmiri */ >> "snd", /* 62 Sindhi */ >> - "tib", /* 63 Tibetan */ >> + "bod", /* 63 Tibetan */ >> "nep", /* 64 Nepali */ >> "san", /* 65 Sanskrit */ >> "mar", /* 66 Marathi */ >> "ben", /* 67 Bengali */ >> "asm", /* 68 Assamese */ >> "guj", /* 69 Gujarati */ >> - "pa ", /* 70 Punjabi */ >> + "pan", /* 70 Punjabi */ >> "ori", /* 71 Oriya */ >> "mal", /* 72 Malayalam */ >> "kan", /* 73 Kannada */ >> "tam", /* 74 Tamil */ >> "tel", /* 75 Telugu */ >> - "", /* 76 Sinhala */ >> - "bur", /* 77 Burmese */ >> + "sin", /* 76 Sinhala */ >> + "mya", /* 77 Burmese */ >> "khm", /* 78 Khmer */ >> "lao", /* 79 Lao */ >> "vie", /* 80 Vietnamese */ >> @@ -485,9 +485,9 @@ static const char mov_mdhd_language_map[][4] = { >> "orm", /* 87 Oromo */ >> "som", /* 88 Somali */ >> "swa", /* 89 Swahili */ >> - "", /* 90 Kinyarwanda */ >> + "kin", /* 90 Kinyarwanda */ >> "run", /* 91 Rundi */ >> - "", /* 92 Nyanja */ >> + "nya", /* 92 Nyanja */ >> "mlg", /* 93 Malagasy */ >> "epo", /* 94 Esperanto */ >> "", /* 95 */ >> @@ -523,8 +523,8 @@ static const char mov_mdhd_language_map[][4] = { >> "", /* 125 */ >> "", /* 126 */ >> "", /* 127 */ >> - "wel", /* 128 Welsh */ >> - "baq", /* 129 Basque */ >> + "cym", /* 128 Welsh */ >> + "eus", /* 129 Basque */ >> "cat", /* 130 Catalan */ >> "lat", /* 131 Latin */ >> "que", /* 132 Quechua */ >> -- >> 2.25.1 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".