summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvan <[email protected]>2008-01-24 20:37:03 +0000
committervan <[email protected]>2008-01-24 20:37:03 +0000
commit1eb709b91cdf365c9a2775a003505113778c8538 (patch)
tree3ad9f1734318a8c4116b887f231814a840283be6
parent5cb6da2bd49cb0ef605f085eb6a16ec0debda1b8 (diff)
Add an (optional) iso639_2b field to the language struct so that we will accept either ISO 639-2/T or /B codes in input content (particularly MPEG transport stream PMTs) but will always generate /T codes in mp4s to keep QuickTime happy.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1234 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/lang.c48
-rw-r--r--libhb/lang.h3
2 files changed, 28 insertions, 23 deletions
diff --git a/libhb/lang.c b/libhb/lang.c
index b14e7ed1a..d78b898bd 100644
--- a/libhb/lang.c
+++ b/libhb/lang.c
@@ -14,11 +14,11 @@ static const iso639_lang_t languages[] =
{ "Abkhazian", "", "ab", "abk" },
{ "Afrikaans", "", "af", "afr" },
{ "Akan", "", "ak", "aka" },
- { "Albanian", "", "sq", "sqi" },
+ { "Albanian", "", "sq", "sqi", "alb" },
{ "Amharic", "", "am", "amh" },
{ "Arabic", "", "ar", "ara" },
{ "Aragonese", "", "an", "arg" },
- { "Armenian", "", "hy", "hye" },
+ { "Armenian", "", "hy", "hye", "arm" },
{ "Assamese", "", "as", "asm" },
{ "Avaric", "", "av", "ava" },
{ "Avestan", "", "ae", "ave" },
@@ -26,7 +26,7 @@ static const iso639_lang_t languages[] =
{ "Azerbaijani", "", "az", "aze" },
{ "Bashkir", "", "ba", "bak" },
{ "Bambara", "", "bm", "bam" },
- { "Basque", "", "eu", "eus" },
+ { "Basque", "", "eu", "eus", "baq" },
{ "Belarusian", "", "be", "bel" },
{ "Bengali", "", "bn", "ben" },
{ "Bihari", "", "bh", "bih" },
@@ -34,20 +34,20 @@ static const iso639_lang_t languages[] =
{ "Bosnian", "", "bs", "bos" },
{ "Breton", "", "br", "bre" },
{ "Bulgarian", "", "bg", "bul" },
- { "Burmese", "", "my", "mya" },
+ { "Burmese", "", "my", "mya", "bur" },
{ "Catalan", "", "ca", "cat" },
{ "Chamorro", "", "ch", "cha" },
{ "Chechen", "", "ce", "che" },
- { "Chinese", "", "zh", "zho" },
+ { "Chinese", "", "zh", "zho", "chi" },
{ "Church Slavic", "", "cu", "chu" },
{ "Chuvash", "", "cv", "chv" },
{ "Cornish", "", "kw", "cor" },
{ "Corsican", "", "co", "cos" },
{ "Cree", "", "cr", "cre" },
- { "Czech", "", "cs", "ces" },
+ { "Czech", "", "cs", "ces", "cze" },
{ "Danish", "Dansk", "da", "dan" },
{ "Divehi", "", "dv", "div" },
- { "Dutch", "Nederlands", "nl", "nld" },
+ { "Dutch", "Nederlands", "nl", "nld", "dut" },
{ "Dzongkha", "", "dz", "dzo" },
{ "English", "English", "en", "eng" },
{ "Esperanto", "", "eo", "epo" },
@@ -56,16 +56,16 @@ static const iso639_lang_t languages[] =
{ "Faroese", "", "fo", "fao" },
{ "Fijian", "", "fj", "fij" },
{ "Finnish", "Suomi", "fi", "fin" },
- { "French", "Francais", "fr", "fra" },
+ { "French", "Francais", "fr", "fra", "fre" },
{ "Western Frisian", "", "fy", "fry" },
{ "Fulah", "", "ff", "ful" },
- { "Georgian", "", "ka", "kat" },
- { "German", "Deutsch", "de", "deu" },
+ { "Georgian", "", "ka", "kat", "geo" },
+ { "German", "Deutsch", "de", "deu", "ger" },
{ "Gaelic (Scots)", "", "gd", "gla" },
{ "Irish", "", "ga", "gle" },
{ "Galician", "", "gl", "glg" },
{ "Manx", "", "gv", "glv" },
- { "Greek, Modern", "", "el", "ell" },
+ { "Greek, Modern", "", "el", "ell", "gre" },
{ "Guarani", "", "gn", "grn" },
{ "Gujarati", "", "gu", "guj" },
{ "Haitian", "", "ht", "hat" },
@@ -76,7 +76,7 @@ static const iso639_lang_t languages[] =
{ "Hiri Motu", "", "ho", "hmo" },
{ "Hungarian", "Magyar", "hu", "hun" },
{ "Igbo", "", "ig", "ibo" },
- { "Icelandic", "Islenska", "is", "isl" },
+ { "Icelandic", "Islenska", "is", "isl", "ice" },
{ "Ido", "", "io", "ido" },
{ "Sichuan Yi", "", "ii", "iii" },
{ "Inuktitut", "", "iu", "iku" },
@@ -110,12 +110,12 @@ static const iso639_lang_t languages[] =
{ "Luxembourgish", "", "lb", "ltz" },
{ "Luba-Katanga", "", "lu", "lub" },
{ "Ganda", "", "lg", "lug" },
- { "Macedonian", "", "mk", "mkd" },
+ { "Macedonian", "", "mk", "mkd", "mac" },
{ "Marshallese", "", "mh", "mah" },
{ "Malayalam", "", "ml", "mal" },
- { "Maori", "", "mi", "mri" },
+ { "Maori", "", "mi", "mri", "mao" },
{ "Marathi", "", "mr", "mar" },
- { "Malay", "", "ms", "msa" },
+ { "Malay", "", "ms", "msa", "msa" },
{ "Malagasy", "", "mg", "mlg" },
{ "Maltese", "", "mt", "mlt" },
{ "Moldavian", "", "mo", "mol" },
@@ -136,22 +136,22 @@ static const iso639_lang_t languages[] =
{ "Oromo", "", "om", "orm" },
{ "Ossetian; Ossetic", "", "os", "oss" },
{ "Panjabi", "", "pa", "pan" },
- { "Persian", "", "fa", "fas" },
+ { "Persian", "", "fa", "fas", "per" },
{ "Pali", "", "pi", "pli" },
{ "Polish", "", "pl", "pol" },
{ "Portuguese", "Portugues", "pt", "por" },
{ "Pushto", "", "ps", "pus" },
{ "Quechua", "", "qu", "que" },
{ "Romansh", "", "rm", "roh" },
- { "Romanian", "", "ro", "ron" },
+ { "Romanian", "", "ro", "ron", "rum" },
{ "Rundi", "", "rn", "run" },
{ "Russian", "", "ru", "rus" },
{ "Sango", "", "sg", "sag" },
{ "Sanskrit", "", "sa", "san" },
- { "Serbian", "", "sr", "srp" },
- { "Croatian", "Hrvatski", "hr", "hrv" },
+ { "Serbian", "", "sr", "srp", "scc" },
+ { "Croatian", "Hrvatski", "hr", "hrv", "scr" },
{ "Sinhala", "", "si", "sin" },
- { "Slovak", "", "sk", "slk" },
+ { "Slovak", "", "sk", "slk", "slo" },
{ "Slovenian", "", "sl", "slv" },
{ "Northern Sami", "", "se", "sme" },
{ "Samoan", "", "sm", "smo" },
@@ -172,7 +172,7 @@ static const iso639_lang_t languages[] =
{ "Tajik", "", "tg", "tgk" },
{ "Tagalog", "", "tl", "tgl" },
{ "Thai", "", "th", "tha" },
- { "Tibetan", "", "bo", "bod" },
+ { "Tibetan", "", "bo", "bod", "tib" },
{ "Tigrinya", "", "ti", "tir" },
{ "Tonga (Tonga Islands)", "", "to", "ton" },
{ "Tswana", "", "tn", "tsn" },
@@ -187,7 +187,7 @@ static const iso639_lang_t languages[] =
{ "Venda", "", "ve", "ven" },
{ "Vietnamese", "", "vi", "vie" },
{ "Volapük", "", "vo", "vol" },
- { "Welsh", "", "cy", "cym" },
+ { "Welsh", "", "cy", "cym", "wel" },
{ "Walloon", "", "wa", "wln" },
{ "Wolof", "", "wo", "wol" },
{ "Xhosa", "", "xh", "xho" },
@@ -232,6 +232,10 @@ iso639_lang_t * lang_for_code2( const char *code )
{
return lang;
}
+ if( lang->iso639_2b && !strcmp( lang->iso639_2b, code_string ) )
+ {
+ return lang;
+ }
}
return (iso639_lang_t*) languages;
diff --git a/libhb/lang.h b/libhb/lang.h
index 4e48d2332..36bf2bf1e 100644
--- a/libhb/lang.h
+++ b/libhb/lang.h
@@ -12,7 +12,8 @@ typedef struct iso639_lang_t
char * eng_name; /* Description in English */
char * native_name; /* Description in native language */
char * iso639_1; /* ISO-639-1 (2 characters) code */
- char * iso639_2; /* ISO-639-2 (3 character) code */
+ char * iso639_2; /* ISO-639-2/t (3 character) code */
+ char * iso639_2b; /* ISO-639-2/b code (if different from above) */
} iso639_lang_t;