> On Jul 4, 2020, at 2:29 AM, Marton Balint <[email protected]> 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
>> [email protected]
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> [email protected] with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> [email protected]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> [email protected] with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".