diff options
-rw-r--r-- | contrib/faac/module.defs | 4 | ||||
-rw-r--r-- | contrib/fdk-aac/module.defs | 3 | ||||
-rw-r--r-- | contrib/libmfx/module.defs | 4 | ||||
-rw-r--r-- | contrib/libmkv/module.defs | 4 | ||||
-rw-r--r-- | contrib/mp4v2/A03-clang.patch | 1472 | ||||
-rw-r--r-- | contrib/mp4v2/module.defs | 4 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 34 | ||||
-rw-r--r-- | macosx/module.defs | 24 | ||||
-rw-r--r-- | macosx/module.rules | 8 | ||||
-rw-r--r-- | macosx/xcconfig/base/os.osx108.xcconfig | 2 | ||||
-rw-r--r-- | macosx/xcconfig/native.xcconfig | 1 | ||||
-rw-r--r-- | macosx/xcconfig/osx108.i386.xcconfig | 3 | ||||
-rw-r--r-- | macosx/xcconfig/osx108.x86_64.xcconfig | 3 | ||||
-rw-r--r-- | macosx/xcconfig/supplemental.xcconfig | 4 | ||||
-rw-r--r-- | make/include/function.defs | 5 | ||||
-rwxr-xr-x | make/xcodemake | 22 | ||||
-rw-r--r-- | test/module.defs | 17 |
17 files changed, 1572 insertions, 42 deletions
diff --git a/contrib/faac/module.defs b/contrib/faac/module.defs index b7d91e1f7..d1ae1be13 100644 --- a/contrib/faac/module.defs +++ b/contrib/faac/module.defs @@ -7,3 +7,7 @@ FAAC.EXTRACT.tarbase = faac-1.28 # If faac not already bootstrapped then add the following #FAAC.CONFIGURE.bootstrap = ./bootstrap; FAAC.CONFIGURE.extra = --without-mp4v2 + +## optional static libs need to be marked +FAAC.OSL.libs = faac +FAAC.OSL.files = $(foreach i,$(FAAC.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a)) diff --git a/contrib/fdk-aac/module.defs b/contrib/fdk-aac/module.defs index 628e0c52b..454858a3b 100644 --- a/contrib/fdk-aac/module.defs +++ b/contrib/fdk-aac/module.defs @@ -3,3 +3,6 @@ $(eval $(call import.CONTRIB.defs,FDKAAC)) FDKAAC.FETCH.url = http://download.handbrake.fr/handbrake/contrib/fdk-aac-v0.1.1-6-gbae4553.tar.bz2 +## optional static libs need to be marked +FDKAAC.OSL.libs = fdk-aac +FDKAAC.OSL.files = $(foreach i,$(FDKAAC.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a)) diff --git a/contrib/libmfx/module.defs b/contrib/libmfx/module.defs index 4377123b9..5f8ab9b7b 100644 --- a/contrib/libmfx/module.defs +++ b/contrib/libmfx/module.defs @@ -4,3 +4,7 @@ $(eval $(call import.CONTRIB.defs,LIBMFX)) LIBMFX.FETCH.url = http://download.handbrake.fr/contrib/libmfx_intel_msdk_2013r2.tar.bz2 LIBMFX.CONFIGURE.bootstrap = rm -fr aclocal.m4 autom4te.cache; autoreconf -fiv; + +## optional static libs need to be marked +LIBMFX.OSL.libs = mfx +LIBMFX.OSL.files = $(foreach i,$(LIBMFX.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a)) diff --git a/contrib/libmkv/module.defs b/contrib/libmkv/module.defs index 9aa4ba1da..083895e19 100644 --- a/contrib/libmkv/module.defs +++ b/contrib/libmkv/module.defs @@ -8,3 +8,7 @@ LIBMKV.CONFIGURE.bootstrap = rm -fr aclocal.m4 autom4te.cache; mkdir m4; autorec ifeq (mingw,$(BUILD.system)) LIBMKV.GCC.D += random=rand srandom=srand endif + +## optional static libs need to be marked +LIBMKV.OSL.libs = mkv +LIBMKV.OSL.files = $(foreach i,$(LIBMKV.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a)) diff --git a/contrib/mp4v2/A03-clang.patch b/contrib/mp4v2/A03-clang.patch new file mode 100644 index 000000000..73fec39df --- /dev/null +++ b/contrib/mp4v2/A03-clang.patch @@ -0,0 +1,1472 @@ +diff --git mp4v2-trunk-r355/src/bmff/typebmff.cpp mp4v2-trunk-r355/src/bmff/typebmff.cpp +index c34f831..f917069 100644 +--- mp4v2-trunk-r355/src/bmff/typebmff.cpp ++++ mp4v2-trunk-r355/src/bmff/typebmff.cpp +@@ -23,518 +23,507 @@ + + #include "impl.h" + +-// VStudio idiocy prevents defining template instanced static data +-// in a namespace. Workaround it by defining in global scope. +-// Other platforms will continue to put things in the proper namespace. +-#if defined( _MSC_VER ) +-using namespace mp4v2::impl::bmff; +-#else +-namespace mp4v2 { namespace impl { namespace bmff { +-#endif ++namespace mp4v2 { namespace impl { + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumLanguageCode::Entry EnumLanguageCode::data[] = { +- { mp4v2::impl::bmff::ILC_AAR, "aar", "Afar" }, +- { mp4v2::impl::bmff::ILC_ABK, "abk", "Abkhazian" }, +- { mp4v2::impl::bmff::ILC_ACE, "ace", "Achinese" }, +- { mp4v2::impl::bmff::ILC_ACH, "ach", "Acoli" }, +- { mp4v2::impl::bmff::ILC_ADA, "ada", "Adangme" }, +- { mp4v2::impl::bmff::ILC_ADY, "ady", "Adyghe; Adygei" }, +- { mp4v2::impl::bmff::ILC_AFA, "afa", "Afro-Asiatic (Other)" }, +- { mp4v2::impl::bmff::ILC_AFH, "afh", "Afrihili" }, +- { mp4v2::impl::bmff::ILC_AFR, "afr", "Afrikaans" }, +- { mp4v2::impl::bmff::ILC_AIN, "ain", "Ainu" }, +- { mp4v2::impl::bmff::ILC_AKA, "aka", "Akan" }, +- { mp4v2::impl::bmff::ILC_AKK, "akk", "Akkadian" }, +- { mp4v2::impl::bmff::ILC_SQI, "sqi", "Albanian" }, +- { mp4v2::impl::bmff::ILC_ALE, "ale", "Aleut" }, +- { mp4v2::impl::bmff::ILC_ALG, "alg", "Algonquian languages" }, +- { mp4v2::impl::bmff::ILC_ALT, "alt", "Southern Altai" }, +- { mp4v2::impl::bmff::ILC_AMH, "amh", "Amharic" }, +- { mp4v2::impl::bmff::ILC_ANG, "ang", "English, Old (ca.450-1100)" }, +- { mp4v2::impl::bmff::ILC_ANP, "anp", "Angika" }, +- { mp4v2::impl::bmff::ILC_APA, "apa", "Apache languages" }, +- { mp4v2::impl::bmff::ILC_ARA, "ara", "Arabic" }, +- { mp4v2::impl::bmff::ILC_ARC, "arc", "Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" }, +- { mp4v2::impl::bmff::ILC_ARG, "arg", "Aragonese" }, +- { mp4v2::impl::bmff::ILC_HYE, "hye", "Armenian" }, +- { mp4v2::impl::bmff::ILC_ARN, "arn", "Mapudungun; Mapuche" }, +- { mp4v2::impl::bmff::ILC_ARP, "arp", "Arapaho" }, +- { mp4v2::impl::bmff::ILC_ART, "art", "Artificial (Other)" }, +- { mp4v2::impl::bmff::ILC_ARW, "arw", "Arawak" }, +- { mp4v2::impl::bmff::ILC_ASM, "asm", "Assamese" }, +- { mp4v2::impl::bmff::ILC_AST, "ast", "Asturian; Bable; Leonese; Asturleonese" }, +- { mp4v2::impl::bmff::ILC_ATH, "ath", "Athapascan languages" }, +- { mp4v2::impl::bmff::ILC_AUS, "aus", "Australian languages" }, +- { mp4v2::impl::bmff::ILC_AVA, "ava", "Avaric" }, +- { mp4v2::impl::bmff::ILC_AVE, "ave", "Avestan" }, +- { mp4v2::impl::bmff::ILC_AWA, "awa", "Awadhi" }, +- { mp4v2::impl::bmff::ILC_AYM, "aym", "Aymara" }, +- { mp4v2::impl::bmff::ILC_AZE, "aze", "Azerbaijani" }, +- { mp4v2::impl::bmff::ILC_BAD, "bad", "Banda languages" }, +- { mp4v2::impl::bmff::ILC_BAI, "bai", "Bamileke languages" }, +- { mp4v2::impl::bmff::ILC_BAK, "bak", "Bashkir" }, +- { mp4v2::impl::bmff::ILC_BAL, "bal", "Baluchi" }, +- { mp4v2::impl::bmff::ILC_BAM, "bam", "Bambara" }, +- { mp4v2::impl::bmff::ILC_BAN, "ban", "Balinese" }, +- { mp4v2::impl::bmff::ILC_EUS, "eus", "Basque" }, +- { mp4v2::impl::bmff::ILC_BAS, "bas", "Basa" }, +- { mp4v2::impl::bmff::ILC_BAT, "bat", "Baltic (Other)" }, +- { mp4v2::impl::bmff::ILC_BEJ, "bej", "Beja; Bedawiyet" }, +- { mp4v2::impl::bmff::ILC_BEL, "bel", "Belarusian" }, +- { mp4v2::impl::bmff::ILC_BEM, "bem", "Bemba" }, +- { mp4v2::impl::bmff::ILC_BEN, "ben", "Bengali" }, +- { mp4v2::impl::bmff::ILC_BER, "ber", "Berber (Other)" }, +- { mp4v2::impl::bmff::ILC_BHO, "bho", "Bhojpuri" }, +- { mp4v2::impl::bmff::ILC_BIH, "bih", "Bihari" }, +- { mp4v2::impl::bmff::ILC_BIK, "bik", "Bikol" }, +- { mp4v2::impl::bmff::ILC_BIN, "bin", "Bini; Edo" }, +- { mp4v2::impl::bmff::ILC_BIS, "bis", "Bislama" }, +- { mp4v2::impl::bmff::ILC_BLA, "bla", "Siksika" }, +- { mp4v2::impl::bmff::ILC_BNT, "bnt", "Bantu (Other)" }, +- { mp4v2::impl::bmff::ILC_BOS, "bos", "Bosnian" }, +- { mp4v2::impl::bmff::ILC_BRA, "bra", "Braj" }, +- { mp4v2::impl::bmff::ILC_BRE, "bre", "Breton" }, +- { mp4v2::impl::bmff::ILC_BTK, "btk", "Batak languages" }, +- { mp4v2::impl::bmff::ILC_BUA, "bua", "Buriat" }, +- { mp4v2::impl::bmff::ILC_BUG, "bug", "Buginese" }, +- { mp4v2::impl::bmff::ILC_BUL, "bul", "Bulgarian" }, +- { mp4v2::impl::bmff::ILC_MYA, "mya", "Burmese" }, +- { mp4v2::impl::bmff::ILC_BYN, "byn", "Blin; Bilin" }, +- { mp4v2::impl::bmff::ILC_CAD, "cad", "Caddo" }, +- { mp4v2::impl::bmff::ILC_CAI, "cai", "Central American Indian (Other)" }, +- { mp4v2::impl::bmff::ILC_CAR, "car", "Galibi Carib" }, +- { mp4v2::impl::bmff::ILC_CAT, "cat", "Catalan; Valencian" }, +- { mp4v2::impl::bmff::ILC_CAU, "cau", "Caucasian (Other)" }, +- { mp4v2::impl::bmff::ILC_CEB, "ceb", "Cebuano" }, +- { mp4v2::impl::bmff::ILC_CEL, "cel", "Celtic (Other)" }, +- { mp4v2::impl::bmff::ILC_CHA, "cha", "Chamorro" }, +- { mp4v2::impl::bmff::ILC_CHB, "chb", "Chibcha" }, +- { mp4v2::impl::bmff::ILC_CHE, "che", "Chechen" }, +- { mp4v2::impl::bmff::ILC_CHG, "chg", "Chagatai" }, +- { mp4v2::impl::bmff::ILC_ZHO, "zho", "Chinese" }, +- { mp4v2::impl::bmff::ILC_CHK, "chk", "Chuukese" }, +- { mp4v2::impl::bmff::ILC_CHM, "chm", "Mari" }, +- { mp4v2::impl::bmff::ILC_CHN, "chn", "Chinook jargon" }, +- { mp4v2::impl::bmff::ILC_CHO, "cho", "Choctaw" }, +- { mp4v2::impl::bmff::ILC_CHP, "chp", "Chipewyan; Dene Suline" }, +- { mp4v2::impl::bmff::ILC_CHR, "chr", "Cherokee" }, +- { mp4v2::impl::bmff::ILC_CHU, "chu", "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" }, +- { mp4v2::impl::bmff::ILC_CHV, "chv", "Chuvash" }, +- { mp4v2::impl::bmff::ILC_CHY, "chy", "Cheyenne" }, +- { mp4v2::impl::bmff::ILC_CMC, "cmc", "Chamic languages" }, +- { mp4v2::impl::bmff::ILC_COP, "cop", "Coptic" }, +- { mp4v2::impl::bmff::ILC_COR, "cor", "Cornish" }, +- { mp4v2::impl::bmff::ILC_COS, "cos", "Corsican" }, +- { mp4v2::impl::bmff::ILC_CPE, "cpe", "Creoles and pidgins, English based (Other)" }, +- { mp4v2::impl::bmff::ILC_CPF, "cpf", "Creoles and pidgins, French-based (Other)" }, +- { mp4v2::impl::bmff::ILC_CPP, "cpp", "Creoles and pidgins, Portuguese-based (Other)" }, +- { mp4v2::impl::bmff::ILC_CRE, "cre", "Cree" }, +- { mp4v2::impl::bmff::ILC_CRH, "crh", "Crimean Tatar; Crimean Turkish" }, +- { mp4v2::impl::bmff::ILC_CRP, "crp", "Creoles and pidgins (Other)" }, +- { mp4v2::impl::bmff::ILC_CSB, "csb", "Kashubian" }, +- { mp4v2::impl::bmff::ILC_CUS, "cus", "Cushitic (Other)" }, +- { mp4v2::impl::bmff::ILC_CES, "ces", "Czech" }, +- { mp4v2::impl::bmff::ILC_DAK, "dak", "Dakota" }, +- { mp4v2::impl::bmff::ILC_DAN, "dan", "Danish" }, +- { mp4v2::impl::bmff::ILC_DAR, "dar", "Dargwa" }, +- { mp4v2::impl::bmff::ILC_DAY, "day", "Land Dayak languages" }, +- { mp4v2::impl::bmff::ILC_DEL, "del", "Delaware" }, +- { mp4v2::impl::bmff::ILC_DEN, "den", "Slave (Athapascan)" }, +- { mp4v2::impl::bmff::ILC_DGR, "dgr", "Dogrib" }, +- { mp4v2::impl::bmff::ILC_DIN, "din", "Dinka" }, +- { mp4v2::impl::bmff::ILC_DIV, "div", "Divehi; Dhivehi; Maldivian" }, +- { mp4v2::impl::bmff::ILC_DOI, "doi", "Dogri" }, +- { mp4v2::impl::bmff::ILC_DRA, "dra", "Dravidian (Other)" }, +- { mp4v2::impl::bmff::ILC_DSB, "dsb", "Lower Sorbian" }, +- { mp4v2::impl::bmff::ILC_DUA, "dua", "Duala" }, +- { mp4v2::impl::bmff::ILC_DUM, "dum", "Dutch, Middle (ca.1050-1350)" }, +- { mp4v2::impl::bmff::ILC_NLD, "nld", "Dutch; Flemish" }, +- { mp4v2::impl::bmff::ILC_DYU, "dyu", "Dyula" }, +- { mp4v2::impl::bmff::ILC_DZO, "dzo", "Dzongkha" }, +- { mp4v2::impl::bmff::ILC_EFI, "efi", "Efik" }, +- { mp4v2::impl::bmff::ILC_EGY, "egy", "Egyptian (Ancient)" }, +- { mp4v2::impl::bmff::ILC_EKA, "eka", "Ekajuk" }, +- { mp4v2::impl::bmff::ILC_ELX, "elx", "Elamite" }, +- { mp4v2::impl::bmff::ILC_ENG, "eng", "English" }, +- { mp4v2::impl::bmff::ILC_ENM, "enm", "English, Middle (1100-1500)" }, +- { mp4v2::impl::bmff::ILC_EPO, "epo", "Esperanto" }, +- { mp4v2::impl::bmff::ILC_EST, "est", "Estonian" }, +- { mp4v2::impl::bmff::ILC_EWE, "ewe", "Ewe" }, +- { mp4v2::impl::bmff::ILC_EWO, "ewo", "Ewondo" }, +- { mp4v2::impl::bmff::ILC_FAN, "fan", "Fang" }, +- { mp4v2::impl::bmff::ILC_FAO, "fao", "Faroese" }, +- { mp4v2::impl::bmff::ILC_FAT, "fat", "Fanti" }, +- { mp4v2::impl::bmff::ILC_FIJ, "fij", "Fijian" }, +- { mp4v2::impl::bmff::ILC_FIL, "fil", "Filipino; Pilipino" }, +- { mp4v2::impl::bmff::ILC_FIN, "fin", "Finnish" }, +- { mp4v2::impl::bmff::ILC_FIU, "fiu", "Finno-Ugrian (Other)" }, +- { mp4v2::impl::bmff::ILC_FON, "fon", "Fon" }, +- { mp4v2::impl::bmff::ILC_FRA, "fra", "French" }, +- { mp4v2::impl::bmff::ILC_FRM, "frm", "French, Middle (ca.1400-1600)" }, +- { mp4v2::impl::bmff::ILC_FRO, "fro", "French, Old (842-ca.1400)" }, +- { mp4v2::impl::bmff::ILC_FRR, "frr", "Northern Frisian" }, +- { mp4v2::impl::bmff::ILC_FRS, "frs", "Eastern Frisian" }, +- { mp4v2::impl::bmff::ILC_FRY, "fry", "Western Frisian" }, +- { mp4v2::impl::bmff::ILC_FUL, "ful", "Fulah" }, +- { mp4v2::impl::bmff::ILC_FUR, "fur", "Friulian" }, +- { mp4v2::impl::bmff::ILC_GAA, "gaa", "Ga" }, +- { mp4v2::impl::bmff::ILC_GAY, "gay", "Gayo" }, +- { mp4v2::impl::bmff::ILC_GBA, "gba", "Gbaya" }, +- { mp4v2::impl::bmff::ILC_GEM, "gem", "Germanic (Other)" }, +- { mp4v2::impl::bmff::ILC_KAT, "kat", "Georgian" }, +- { mp4v2::impl::bmff::ILC_DEU, "deu", "German" }, +- { mp4v2::impl::bmff::ILC_GEZ, "gez", "Geez" }, +- { mp4v2::impl::bmff::ILC_GIL, "gil", "Gilbertese" }, +- { mp4v2::impl::bmff::ILC_GLA, "gla", "Gaelic; Scottish Gaelic" }, +- { mp4v2::impl::bmff::ILC_GLE, "gle", "Irish" }, +- { mp4v2::impl::bmff::ILC_GLG, "glg", "Galician" }, +- { mp4v2::impl::bmff::ILC_GLV, "glv", "Manx" }, +- { mp4v2::impl::bmff::ILC_GMH, "gmh", "German, Middle High (ca.1050-1500)" }, +- { mp4v2::impl::bmff::ILC_GOH, "goh", "German, Old High (ca.750-1050)" }, +- { mp4v2::impl::bmff::ILC_GON, "gon", "Gondi" }, +- { mp4v2::impl::bmff::ILC_GOR, "gor", "Gorontalo" }, +- { mp4v2::impl::bmff::ILC_GOT, "got", "Gothic" }, +- { mp4v2::impl::bmff::ILC_GRB, "grb", "Grebo" }, +- { mp4v2::impl::bmff::ILC_GRC, "grc", "Greek, Ancient (to 1453)" }, +- { mp4v2::impl::bmff::ILC_ELL, "ell", "Greek, Modern (1453-)" }, +- { mp4v2::impl::bmff::ILC_GRN, "grn", "Guarani" }, +- { mp4v2::impl::bmff::ILC_GSW, "gsw", "Swiss German; Alemannic; Alsatian" }, +- { mp4v2::impl::bmff::ILC_GUJ, "guj", "Gujarati" }, +- { mp4v2::impl::bmff::ILC_GWI, "gwi", "Gwich'in" }, +- { mp4v2::impl::bmff::ILC_HAI, "hai", "Haida" }, +- { mp4v2::impl::bmff::ILC_HAT, "hat", "Haitian; Haitian Creole" }, +- { mp4v2::impl::bmff::ILC_HAU, "hau", "Hausa" }, +- { mp4v2::impl::bmff::ILC_HAW, "haw", "Hawaiian" }, +- { mp4v2::impl::bmff::ILC_HEB, "heb", "Hebrew" }, +- { mp4v2::impl::bmff::ILC_HER, "her", "Herero" }, +- { mp4v2::impl::bmff::ILC_HIL, "hil", "Hiligaynon" }, +- { mp4v2::impl::bmff::ILC_HIM, "him", "Himachali" }, +- { mp4v2::impl::bmff::ILC_HIN, "hin", "Hindi" }, +- { mp4v2::impl::bmff::ILC_HIT, "hit", "Hittite" }, +- { mp4v2::impl::bmff::ILC_HMN, "hmn", "Hmong" }, +- { mp4v2::impl::bmff::ILC_HMO, "hmo", "Hiri Motu" }, +- { mp4v2::impl::bmff::ILC_HRV, "hrv", "Croatian" }, +- { mp4v2::impl::bmff::ILC_HSB, "hsb", "Upper Sorbian" }, +- { mp4v2::impl::bmff::ILC_HUN, "hun", "Hungarian" }, +- { mp4v2::impl::bmff::ILC_HUP, "hup", "Hupa" }, +- { mp4v2::impl::bmff::ILC_IBA, "iba", "Iban" }, +- { mp4v2::impl::bmff::ILC_IBO, "ibo", "Igbo" }, +- { mp4v2::impl::bmff::ILC_ISL, "isl", "Icelandic" }, +- { mp4v2::impl::bmff::ILC_IDO, "ido", "Ido" }, +- { mp4v2::impl::bmff::ILC_III, "iii", "Sichuan Yi; Nuosu" }, +- { mp4v2::impl::bmff::ILC_IJO, "ijo", "Ijo languages" }, +- { mp4v2::impl::bmff::ILC_IKU, "iku", "Inuktitut" }, +- { mp4v2::impl::bmff::ILC_ILE, "ile", "Interlingue; Occidental" }, +- { mp4v2::impl::bmff::ILC_ILO, "ilo", "Iloko" }, +- { mp4v2::impl::bmff::ILC_INA, "ina", "Interlingua (International Auxiliary Language Association)" }, +- { mp4v2::impl::bmff::ILC_INC, "inc", "Indic (Other)" }, +- { mp4v2::impl::bmff::ILC_IND, "ind", "Indonesian" }, +- { mp4v2::impl::bmff::ILC_INE, "ine", "Indo-European (Other)" }, +- { mp4v2::impl::bmff::ILC_INH, "inh", "Ingush" }, +- { mp4v2::impl::bmff::ILC_IPK, "ipk", "Inupiaq" }, +- { mp4v2::impl::bmff::ILC_IRA, "ira", "Iranian (Other)" }, +- { mp4v2::impl::bmff::ILC_IRO, "iro", "Iroquoian languages" }, +- { mp4v2::impl::bmff::ILC_ITA, "ita", "Italian" }, +- { mp4v2::impl::bmff::ILC_JAV, "jav", "Javanese" }, +- { mp4v2::impl::bmff::ILC_JBO, "jbo", "Lojban" }, +- { mp4v2::impl::bmff::ILC_JPN, "jpn", "Japanese" }, +- { mp4v2::impl::bmff::ILC_JPR, "jpr", "Judeo-Persian" }, +- { mp4v2::impl::bmff::ILC_JRB, "jrb", "Judeo-Arabic" }, +- { mp4v2::impl::bmff::ILC_KAA, "kaa", "Kara-Kalpak" }, +- { mp4v2::impl::bmff::ILC_KAB, "kab", "Kabyle" }, +- { mp4v2::impl::bmff::ILC_KAC, "kac", "Kachin; Jingpho" }, +- { mp4v2::impl::bmff::ILC_KAL, "kal", "Kalaallisut; Greenlandic" }, +- { mp4v2::impl::bmff::ILC_KAM, "kam", "Kamba" }, +- { mp4v2::impl::bmff::ILC_KAN, "kan", "Kannada" }, +- { mp4v2::impl::bmff::ILC_KAR, "kar", "Karen languages" }, +- { mp4v2::impl::bmff::ILC_KAS, "kas", "Kashmiri" }, +- { mp4v2::impl::bmff::ILC_KAU, "kau", "Kanuri" }, +- { mp4v2::impl::bmff::ILC_KAW, "kaw", "Kawi" }, +- { mp4v2::impl::bmff::ILC_KAZ, "kaz", "Kazakh" }, +- { mp4v2::impl::bmff::ILC_KBD, "kbd", "Kabardian" }, +- { mp4v2::impl::bmff::ILC_KHA, "kha", "Khasi" }, +- { mp4v2::impl::bmff::ILC_KHI, "khi", "Khoisan (Other)" }, +- { mp4v2::impl::bmff::ILC_KHM, "khm", "Central Khmer" }, +- { mp4v2::impl::bmff::ILC_KHO, "kho", "Khotanese; Sakan" }, +- { mp4v2::impl::bmff::ILC_KIK, "kik", "Kikuyu; Gikuyu" }, +- { mp4v2::impl::bmff::ILC_KIN, "kin", "Kinyarwanda" }, +- { mp4v2::impl::bmff::ILC_KIR, "kir", "Kirghiz; Kyrgyz" }, +- { mp4v2::impl::bmff::ILC_KMB, "kmb", "Kimbundu" }, +- { mp4v2::impl::bmff::ILC_KOK, "kok", "Konkani" }, +- { mp4v2::impl::bmff::ILC_KOM, "kom", "Komi" }, +- { mp4v2::impl::bmff::ILC_KON, "kon", "Kongo" }, +- { mp4v2::impl::bmff::ILC_KOR, "kor", "Korean" }, +- { mp4v2::impl::bmff::ILC_KOS, "kos", "Kosraean" }, +- { mp4v2::impl::bmff::ILC_KPE, "kpe", "Kpelle" }, +- { mp4v2::impl::bmff::ILC_KRC, "krc", "Karachay-Balkar" }, +- { mp4v2::impl::bmff::ILC_KRL, "krl", "Karelian" }, +- { mp4v2::impl::bmff::ILC_KRO, "kro", "Kru languages" }, +- { mp4v2::impl::bmff::ILC_KRU, "kru", "Kurukh" }, +- { mp4v2::impl::bmff::ILC_KUA, "kua", "Kuanyama; Kwanyama" }, +- { mp4v2::impl::bmff::ILC_KUM, "kum", "Kumyk" }, +- { mp4v2::impl::bmff::ILC_KUR, "kur", "Kurdish" }, +- { mp4v2::impl::bmff::ILC_KUT, "kut", "Kutenai" }, +- { mp4v2::impl::bmff::ILC_LAD, "lad", "Ladino" }, +- { mp4v2::impl::bmff::ILC_LAH, "lah", "Lahnda" }, +- { mp4v2::impl::bmff::ILC_LAM, "lam", "Lamba" }, +- { mp4v2::impl::bmff::ILC_LAO, "lao", "Lao" }, +- { mp4v2::impl::bmff::ILC_LAT, "lat", "Latin" }, +- { mp4v2::impl::bmff::ILC_LAV, "lav", "Latvian" }, +- { mp4v2::impl::bmff::ILC_LEZ, "lez", "Lezghian" }, +- { mp4v2::impl::bmff::ILC_LIM, "lim", "Limburgan; Limburger; Limburgish" }, +- { mp4v2::impl::bmff::ILC_LIN, "lin", "Lingala" }, +- { mp4v2::impl::bmff::ILC_LIT, "lit", "Lithuanian" }, +- { mp4v2::impl::bmff::ILC_LOL, "lol", "Mongo" }, +- { mp4v2::impl::bmff::ILC_LOZ, "loz", "Lozi" }, +- { mp4v2::impl::bmff::ILC_LTZ, "ltz", "Luxembourgish; Letzeburgesch" }, +- { mp4v2::impl::bmff::ILC_LUA, "lua", "Luba-Lulua" }, +- { mp4v2::impl::bmff::ILC_LUB, "lub", "Luba-Katanga" }, +- { mp4v2::impl::bmff::ILC_LUG, "lug", "Ganda" }, +- { mp4v2::impl::bmff::ILC_LUI, "lui", "Luiseno" }, +- { mp4v2::impl::bmff::ILC_LUN, "lun", "Lunda" }, +- { mp4v2::impl::bmff::ILC_LUO, "luo", "Luo (Kenya and Tanzania)" }, +- { mp4v2::impl::bmff::ILC_LUS, "lus", "Lushai" }, +- { mp4v2::impl::bmff::ILC_MKD, "mkd", "Macedonian" }, +- { mp4v2::impl::bmff::ILC_MAD, "mad", "Madurese" }, +- { mp4v2::impl::bmff::ILC_MAG, "mag", "Magahi" }, +- { mp4v2::impl::bmff::ILC_MAH, "mah", "Marshallese" }, +- { mp4v2::impl::bmff::ILC_MAI, "mai", "Maithili" }, +- { mp4v2::impl::bmff::ILC_MAK, "mak", "Makasar" }, +- { mp4v2::impl::bmff::ILC_MAL, "mal", "Malayalam" }, +- { mp4v2::impl::bmff::ILC_MAN, "man", "Mandingo" }, +- { mp4v2::impl::bmff::ILC_MRI, "mri", "Maori" }, +- { mp4v2::impl::bmff::ILC_MAP, "map", "Austronesian (Other)" }, +- { mp4v2::impl::bmff::ILC_MAR, "mar", "Marathi" }, +- { mp4v2::impl::bmff::ILC_MAS, "mas", "Masai" }, +- { mp4v2::impl::bmff::ILC_MSA, "msa", "Malay" }, +- { mp4v2::impl::bmff::ILC_MDF, "mdf", "Moksha" }, +- { mp4v2::impl::bmff::ILC_MDR, "mdr", "Mandar" }, +- { mp4v2::impl::bmff::ILC_MEN, "men", "Mende" }, +- { mp4v2::impl::bmff::ILC_MGA, "mga", "Irish, Middle (900-1200)" }, +- { mp4v2::impl::bmff::ILC_MIC, "mic", "Mi'kmaq; Micmac" }, +- { mp4v2::impl::bmff::ILC_MIN, "min", "Minangkabau" }, +- { mp4v2::impl::bmff::ILC_MIS, "mis", "Uncoded languages" }, +- { mp4v2::impl::bmff::ILC_MKH, "mkh", "Mon-Khmer (Other)" }, +- { mp4v2::impl::bmff::ILC_MLG, "mlg", "Malagasy" }, +- { mp4v2::impl::bmff::ILC_MLT, "mlt", "Maltese" }, +- { mp4v2::impl::bmff::ILC_MNC, "mnc", "Manchu" }, +- { mp4v2::impl::bmff::ILC_MNI, "mni", "Manipuri" }, +- { mp4v2::impl::bmff::ILC_MNO, "mno", "Manobo languages" }, +- { mp4v2::impl::bmff::ILC_MOH, "moh", "Mohawk" }, +- { mp4v2::impl::bmff::ILC_MON, "mon", "Mongolian" }, +- { mp4v2::impl::bmff::ILC_MOS, "mos", "Mossi" }, +- { mp4v2::impl::bmff::ILC_MUL, "mul", "Multiple languages" }, +- { mp4v2::impl::bmff::ILC_MUN, "mun", "Munda languages" }, +- { mp4v2::impl::bmff::ILC_MUS, "mus", "Creek" }, +- { mp4v2::impl::bmff::ILC_MWL, "mwl", "Mirandese" }, +- { mp4v2::impl::bmff::ILC_MWR, "mwr", "Marwari" }, +- { mp4v2::impl::bmff::ILC_MYN, "myn", "Mayan languages" }, +- { mp4v2::impl::bmff::ILC_MYV, "myv", "Erzya" }, +- { mp4v2::impl::bmff::ILC_NAH, "nah", "Nahuatl languages" }, +- { mp4v2::impl::bmff::ILC_NAI, "nai", "North American Indian" }, +- { mp4v2::impl::bmff::ILC_NAP, "nap", "Neapolitan" }, +- { mp4v2::impl::bmff::ILC_NAU, "nau", "Nauru" }, +- { mp4v2::impl::bmff::ILC_NAV, "nav", "Navajo; Navaho" }, +- { mp4v2::impl::bmff::ILC_NBL, "nbl", "Ndebele, South; South Ndebele" }, +- { mp4v2::impl::bmff::ILC_NDE, "nde", "Ndebele, North; North Ndebele" }, +- { mp4v2::impl::bmff::ILC_NDO, "ndo", "Ndonga" }, +- { mp4v2::impl::bmff::ILC_NDS, "nds", "Low German; Low Saxon; German, Low; Saxon, Low" }, +- { mp4v2::impl::bmff::ILC_NEP, "nep", "Nepali" }, +- { mp4v2::impl::bmff::ILC_NEW, "new", "Nepal Bhasa; Newari" }, +- { mp4v2::impl::bmff::ILC_NIA, "nia", "Nias" }, +- { mp4v2::impl::bmff::ILC_NIC, "nic", "Niger-Kordofanian (Other)" }, +- { mp4v2::impl::bmff::ILC_NIU, "niu", "Niuean" }, +- { mp4v2::impl::bmff::ILC_NNO, "nno", "Norwegian Nynorsk; Nynorsk, Norwegian" }, +- { mp4v2::impl::bmff::ILC_NOB, "nob", "Bokmål, Norwegian; Norwegian Bokmål" }, +- { mp4v2::impl::bmff::ILC_NOG, "nog", "Nogai" }, +- { mp4v2::impl::bmff::ILC_NON, "non", "Norse, Old" }, +- { mp4v2::impl::bmff::ILC_NOR, "nor", "Norwegian" }, +- { mp4v2::impl::bmff::ILC_NQO, "nqo", "N'Ko" }, +- { mp4v2::impl::bmff::ILC_NSO, "nso", "Pedi; Sepedi; Northern Sotho" }, +- { mp4v2::impl::bmff::ILC_NUB, "nub", "Nubian languages" }, +- { mp4v2::impl::bmff::ILC_NWC, "nwc", "Classical Newari; Old Newari; Classical Nepal Bhasa" }, +- { mp4v2::impl::bmff::ILC_NYA, "nya", "Chichewa; Chewa; Nyanja" }, +- { mp4v2::impl::bmff::ILC_NYM, "nym", "Nyamwezi" }, +- { mp4v2::impl::bmff::ILC_NYN, "nyn", "Nyankole" }, +- { mp4v2::impl::bmff::ILC_NYO, "nyo", "Nyoro" }, +- { mp4v2::impl::bmff::ILC_NZI, "nzi", "Nzima" }, +- { mp4v2::impl::bmff::ILC_OCI, "oci", "Occitan (post 1500); Provençal" }, +- { mp4v2::impl::bmff::ILC_OJI, "oji", "Ojibwa" }, +- { mp4v2::impl::bmff::ILC_ORI, "ori", "Oriya" }, +- { mp4v2::impl::bmff::ILC_ORM, "orm", "Oromo" }, +- { mp4v2::impl::bmff::ILC_OSA, "osa", "Osage" }, +- { mp4v2::impl::bmff::ILC_OSS, "oss", "Ossetian; Ossetic" }, +- { mp4v2::impl::bmff::ILC_OTA, "ota", "Turkish, Ottoman (1500-1928)" }, +- { mp4v2::impl::bmff::ILC_OTO, "oto", "Otomian languages" }, +- { mp4v2::impl::bmff::ILC_PAA, "paa", "Papuan (Other)" }, +- { mp4v2::impl::bmff::ILC_PAG, "pag", "Pangasinan" }, +- { mp4v2::impl::bmff::ILC_PAL, "pal", "Pahlavi" }, +- { mp4v2::impl::bmff::ILC_PAM, "pam", "Pampanga; Kapampangan" }, +- { mp4v2::impl::bmff::ILC_PAN, "pan", "Panjabi; Punjabi" }, +- { mp4v2::impl::bmff::ILC_PAP, "pap", "Papiamento" }, +- { mp4v2::impl::bmff::ILC_PAU, "pau", "Palauan" }, +- { mp4v2::impl::bmff::ILC_PEO, "peo", "Persian, Old (ca.600-400 B.C.)" }, +- { mp4v2::impl::bmff::ILC_FAS, "fas", "Persian" }, +- { mp4v2::impl::bmff::ILC_PHI, "phi", "Philippine (Other)" }, +- { mp4v2::impl::bmff::ILC_PHN, "phn", "Phoenician" }, +- { mp4v2::impl::bmff::ILC_PLI, "pli", "Pali" }, +- { mp4v2::impl::bmff::ILC_POL, "pol", "Polish" }, +- { mp4v2::impl::bmff::ILC_PON, "pon", "Pohnpeian" }, +- { mp4v2::impl::bmff::ILC_POR, "por", "Portuguese" }, +- { mp4v2::impl::bmff::ILC_PRA, "pra", "Prakrit languages" }, +- { mp4v2::impl::bmff::ILC_PRO, "pro", "Provençal, Old (to 1500)" }, +- { mp4v2::impl::bmff::ILC_PUS, "pus", "Pushto; Pashto" }, +- { mp4v2::impl::bmff::ILC_QUE, "que", "Quechua" }, +- { mp4v2::impl::bmff::ILC_RAJ, "raj", "Rajasthani" }, +- { mp4v2::impl::bmff::ILC_RAP, "rap", "Rapanui" }, +- { mp4v2::impl::bmff::ILC_RAR, "rar", "Rarotongan; Cook Islands Maori" }, +- { mp4v2::impl::bmff::ILC_ROA, "roa", "Romance (Other)" }, +- { mp4v2::impl::bmff::ILC_ROH, "roh", "Romansh" }, +- { mp4v2::impl::bmff::ILC_ROM, "rom", "Romany" }, +- { mp4v2::impl::bmff::ILC_RON, "ron", "Romanian; Moldavian; Moldovan" }, +- { mp4v2::impl::bmff::ILC_RUN, "run", "Rundi" }, +- { mp4v2::impl::bmff::ILC_RUP, "rup", "Aromanian; Arumanian; Macedo-Romanian" }, +- { mp4v2::impl::bmff::ILC_RUS, "rus", "Russian" }, +- { mp4v2::impl::bmff::ILC_SAD, "sad", "Sandawe" }, +- { mp4v2::impl::bmff::ILC_SAG, "sag", "Sango" }, +- { mp4v2::impl::bmff::ILC_SAH, "sah", "Yakut" }, +- { mp4v2::impl::bmff::ILC_SAI, "sai", "South American Indian (Other)" }, +- { mp4v2::impl::bmff::ILC_SAL, "sal", "Salishan languages" }, +- { mp4v2::impl::bmff::ILC_SAM, "sam", "Samaritan Aramaic" }, +- { mp4v2::impl::bmff::ILC_SAN, "san", "Sanskrit" }, +- { mp4v2::impl::bmff::ILC_SAS, "sas", "Sasak" }, +- { mp4v2::impl::bmff::ILC_SAT, "sat", "Santali" }, +- { mp4v2::impl::bmff::ILC_SCN, "scn", "Sicilian" }, +- { mp4v2::impl::bmff::ILC_SCO, "sco", "Scots" }, +- { mp4v2::impl::bmff::ILC_SEL, "sel", "Selkup" }, +- { mp4v2::impl::bmff::ILC_SEM, "sem", "Semitic (Other)" }, +- { mp4v2::impl::bmff::ILC_SGA, "sga", "Irish, Old (to 900)" }, +- { mp4v2::impl::bmff::ILC_SGN, "sgn", "Sign Languages" }, +- { mp4v2::impl::bmff::ILC_SHN, "shn", "Shan" }, +- { mp4v2::impl::bmff::ILC_SID, "sid", "Sidamo" }, +- { mp4v2::impl::bmff::ILC_SIN, "sin", "Sinhala; Sinhalese" }, +- { mp4v2::impl::bmff::ILC_SIO, "sio", "Siouan languages" }, +- { mp4v2::impl::bmff::ILC_SIT, "sit", "Sino-Tibetan (Other)" }, +- { mp4v2::impl::bmff::ILC_SLA, "sla", "Slavic (Other)" }, +- { mp4v2::impl::bmff::ILC_SLK, "slk", "Slovak" }, +- { mp4v2::impl::bmff::ILC_SLV, "slv", "Slovenian" }, +- { mp4v2::impl::bmff::ILC_SMA, "sma", "Southern Sami" }, +- { mp4v2::impl::bmff::ILC_SME, "sme", "Northern Sami" }, +- { mp4v2::impl::bmff::ILC_SMI, "smi", "Sami languages (Other)" }, +- { mp4v2::impl::bmff::ILC_SMJ, "smj", "Lule Sami" }, +- { mp4v2::impl::bmff::ILC_SMN, "smn", "Inari Sami" }, +- { mp4v2::impl::bmff::ILC_SMO, "smo", "Samoan" }, +- { mp4v2::impl::bmff::ILC_SMS, "sms", "Skolt Sami" }, +- { mp4v2::impl::bmff::ILC_SNA, "sna", "Shona" }, +- { mp4v2::impl::bmff::ILC_SND, "snd", "Sindhi" }, +- { mp4v2::impl::bmff::ILC_SNK, "snk", "Soninke" }, +- { mp4v2::impl::bmff::ILC_SOG, "sog", "Sogdian" }, +- { mp4v2::impl::bmff::ILC_SOM, "som", "Somali" }, +- { mp4v2::impl::bmff::ILC_SON, "son", "Songhai languages" }, +- { mp4v2::impl::bmff::ILC_SOT, "sot", "Sotho, Southern" }, +- { mp4v2::impl::bmff::ILC_SPA, "spa", "Spanish; Castilian" }, +- { mp4v2::impl::bmff::ILC_SRD, "srd", "Sardinian" }, +- { mp4v2::impl::bmff::ILC_SRN, "srn", "Sranan Tongo" }, +- { mp4v2::impl::bmff::ILC_SRP, "srp", "Serbian" }, +- { mp4v2::impl::bmff::ILC_SRR, "srr", "Serer" }, +- { mp4v2::impl::bmff::ILC_SSA, "ssa", "Nilo-Saharan (Other)" }, +- { mp4v2::impl::bmff::ILC_SSW, "ssw", "Swati" }, +- { mp4v2::impl::bmff::ILC_SUK, "suk", "Sukuma" }, +- { mp4v2::impl::bmff::ILC_SUN, "sun", "Sundanese" }, +- { mp4v2::impl::bmff::ILC_SUS, "sus", "Susu" }, +- { mp4v2::impl::bmff::ILC_SUX, "sux", "Sumerian" }, +- { mp4v2::impl::bmff::ILC_SWA, "swa", "Swahili" }, +- { mp4v2::impl::bmff::ILC_SWE, "swe", "Swedish" }, +- { mp4v2::impl::bmff::ILC_SYC, "syc", "Classical Syriac" }, +- { mp4v2::impl::bmff::ILC_SYR, "syr", "Syriac" }, +- { mp4v2::impl::bmff::ILC_TAH, "tah", "Tahitian" }, +- { mp4v2::impl::bmff::ILC_TAI, "tai", "Tai (Other)" }, +- { mp4v2::impl::bmff::ILC_TAM, "tam", "Tamil" }, +- { mp4v2::impl::bmff::ILC_TAT, "tat", "Tatar" }, +- { mp4v2::impl::bmff::ILC_TEL, "tel", "Telugu" }, +- { mp4v2::impl::bmff::ILC_TEM, "tem", "Timne" }, +- { mp4v2::impl::bmff::ILC_TER, "ter", "Tereno" }, +- { mp4v2::impl::bmff::ILC_TET, "tet", "Tetum" }, +- { mp4v2::impl::bmff::ILC_TGK, "tgk", "Tajik" }, +- { mp4v2::impl::bmff::ILC_TGL, "tgl", "Tagalog" }, +- { mp4v2::impl::bmff::ILC_THA, "tha", "Thai" }, +- { mp4v2::impl::bmff::ILC_BOD, "bod", "Tibetan" }, +- { mp4v2::impl::bmff::ILC_TIG, "tig", "Tigre" }, +- { mp4v2::impl::bmff::ILC_TIR, "tir", "Tigrinya" }, +- { mp4v2::impl::bmff::ILC_TIV, "tiv", "Tiv" }, +- { mp4v2::impl::bmff::ILC_TKL, "tkl", "Tokelau" }, +- { mp4v2::impl::bmff::ILC_TLH, "tlh", "Klingon; tlhIngan-Hol" }, +- { mp4v2::impl::bmff::ILC_TLI, "tli", "Tlingit" }, +- { mp4v2::impl::bmff::ILC_TMH, "tmh", "Tamashek" }, +- { mp4v2::impl::bmff::ILC_TOG, "tog", "Tonga (Nyasa)" }, +- { mp4v2::impl::bmff::ILC_TON, "ton", "Tonga (Tonga Islands)" }, +- { mp4v2::impl::bmff::ILC_TPI, "tpi", "Tok Pisin" }, +- { mp4v2::impl::bmff::ILC_TSI, "tsi", "Tsimshian" }, +- { mp4v2::impl::bmff::ILC_TSN, "tsn", "Tswana" }, +- { mp4v2::impl::bmff::ILC_TSO, "tso", "Tsonga" }, +- { mp4v2::impl::bmff::ILC_TUK, "tuk", "Turkmen" }, +- { mp4v2::impl::bmff::ILC_TUM, "tum", "Tumbuka" }, +- { mp4v2::impl::bmff::ILC_TUP, "tup", "Tupi languages" }, +- { mp4v2::impl::bmff::ILC_TUR, "tur", "Turkish" }, +- { mp4v2::impl::bmff::ILC_TUT, "tut", "Altaic (Other)" }, +- { mp4v2::impl::bmff::ILC_TVL, "tvl", "Tuvalu" }, +- { mp4v2::impl::bmff::ILC_TWI, "twi", "Twi" }, +- { mp4v2::impl::bmff::ILC_TYV, "tyv", "Tuvinian" }, +- { mp4v2::impl::bmff::ILC_UDM, "udm", "Udmurt" }, +- { mp4v2::impl::bmff::ILC_UGA, "uga", "Ugaritic" }, +- { mp4v2::impl::bmff::ILC_UIG, "uig", "Uighur; Uyghur" }, +- { mp4v2::impl::bmff::ILC_UKR, "ukr", "Ukrainian" }, +- { mp4v2::impl::bmff::ILC_UMB, "umb", "Umbundu" }, +- { mp4v2::impl::bmff::ILC_UND, "und", "Undetermined" }, +- { mp4v2::impl::bmff::ILC_URD, "urd", "Urdu" }, +- { mp4v2::impl::bmff::ILC_UZB, "uzb", "Uzbek" }, +- { mp4v2::impl::bmff::ILC_VAI, "vai", "Vai" }, +- { mp4v2::impl::bmff::ILC_VEN, "ven", "Venda" }, +- { mp4v2::impl::bmff::ILC_VIE, "vie", "Vietnamese" }, +- { mp4v2::impl::bmff::ILC_VOL, "vol", "Volapük" }, +- { mp4v2::impl::bmff::ILC_VOT, "vot", "Votic" }, +- { mp4v2::impl::bmff::ILC_WAK, "wak", "Wakashan languages" }, +- { mp4v2::impl::bmff::ILC_WAL, "wal", "Walamo" }, +- { mp4v2::impl::bmff::ILC_WAR, "war", "Waray" }, +- { mp4v2::impl::bmff::ILC_WAS, "was", "Washo" }, +- { mp4v2::impl::bmff::ILC_CYM, "cym", "Welsh" }, +- { mp4v2::impl::bmff::ILC_WEN, "wen", "Sorbian languages" }, +- { mp4v2::impl::bmff::ILC_WLN, "wln", "Walloon" }, +- { mp4v2::impl::bmff::ILC_WOL, "wol", "Wolof" }, +- { mp4v2::impl::bmff::ILC_XAL, "xal", "Kalmyk; Oirat" }, +- { mp4v2::impl::bmff::ILC_XHO, "xho", "Xhosa" }, +- { mp4v2::impl::bmff::ILC_YAO, "yao", "Yao" }, +- { mp4v2::impl::bmff::ILC_YAP, "yap", "Yapese" }, +- { mp4v2::impl::bmff::ILC_YID, "yid", "Yiddish" }, +- { mp4v2::impl::bmff::ILC_YOR, "yor", "Yoruba" }, +- { mp4v2::impl::bmff::ILC_YPK, "ypk", "Yupik languages" }, +- { mp4v2::impl::bmff::ILC_ZAP, "zap", "Zapotec" }, +- { mp4v2::impl::bmff::ILC_ZBL, "zbl", "Blissymbols; Blissymbolics; Bliss" }, +- { mp4v2::impl::bmff::ILC_ZEN, "zen", "Zenaga" }, +- { mp4v2::impl::bmff::ILC_ZHA, "zha", "Zhuang; Chuang" }, +- { mp4v2::impl::bmff::ILC_ZND, "znd", "Zande languages" }, +- { mp4v2::impl::bmff::ILC_ZUL, "zul", "Zulu" }, +- { mp4v2::impl::bmff::ILC_ZUN, "zun", "Zuni" }, +- { mp4v2::impl::bmff::ILC_ZXX, "zxx", "No linguistic content; Not applicable" }, +- { mp4v2::impl::bmff::ILC_ZZA, "zza", "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" }, ++const bmff::EnumLanguageCode::Entry bmff::EnumLanguageCode::data[] = { ++ { bmff::ILC_AAR, "aar", "Afar" }, ++ { bmff::ILC_ABK, "abk", "Abkhazian" }, ++ { bmff::ILC_ACE, "ace", "Achinese" }, ++ { bmff::ILC_ACH, "ach", "Acoli" }, ++ { bmff::ILC_ADA, "ada", "Adangme" }, ++ { bmff::ILC_ADY, "ady", "Adyghe; Adygei" }, ++ { bmff::ILC_AFA, "afa", "Afro-Asiatic (Other)" }, ++ { bmff::ILC_AFH, "afh", "Afrihili" }, ++ { bmff::ILC_AFR, "afr", "Afrikaans" }, ++ { bmff::ILC_AIN, "ain", "Ainu" }, ++ { bmff::ILC_AKA, "aka", "Akan" }, ++ { bmff::ILC_AKK, "akk", "Akkadian" }, ++ { bmff::ILC_SQI, "sqi", "Albanian" }, ++ { bmff::ILC_ALE, "ale", "Aleut" }, ++ { bmff::ILC_ALG, "alg", "Algonquian languages" }, ++ { bmff::ILC_ALT, "alt", "Southern Altai" }, ++ { bmff::ILC_AMH, "amh", "Amharic" }, ++ { bmff::ILC_ANG, "ang", "English, Old (ca.450-1100)" }, ++ { bmff::ILC_ANP, "anp", "Angika" }, ++ { bmff::ILC_APA, "apa", "Apache languages" }, ++ { bmff::ILC_ARA, "ara", "Arabic" }, ++ { bmff::ILC_ARC, "arc", "Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" }, ++ { bmff::ILC_ARG, "arg", "Aragonese" }, ++ { bmff::ILC_HYE, "hye", "Armenian" }, ++ { bmff::ILC_ARN, "arn", "Mapudungun; Mapuche" }, ++ { bmff::ILC_ARP, "arp", "Arapaho" }, ++ { bmff::ILC_ART, "art", "Artificial (Other)" }, ++ { bmff::ILC_ARW, "arw", "Arawak" }, ++ { bmff::ILC_ASM, "asm", "Assamese" }, ++ { bmff::ILC_AST, "ast", "Asturian; Bable; Leonese; Asturleonese" }, ++ { bmff::ILC_ATH, "ath", "Athapascan languages" }, ++ { bmff::ILC_AUS, "aus", "Australian languages" }, ++ { bmff::ILC_AVA, "ava", "Avaric" }, ++ { bmff::ILC_AVE, "ave", "Avestan" }, ++ { bmff::ILC_AWA, "awa", "Awadhi" }, ++ { bmff::ILC_AYM, "aym", "Aymara" }, ++ { bmff::ILC_AZE, "aze", "Azerbaijani" }, ++ { bmff::ILC_BAD, "bad", "Banda languages" }, ++ { bmff::ILC_BAI, "bai", "Bamileke languages" }, ++ { bmff::ILC_BAK, "bak", "Bashkir" }, ++ { bmff::ILC_BAL, "bal", "Baluchi" }, ++ { bmff::ILC_BAM, "bam", "Bambara" }, ++ { bmff::ILC_BAN, "ban", "Balinese" }, ++ { bmff::ILC_EUS, "eus", "Basque" }, ++ { bmff::ILC_BAS, "bas", "Basa" }, ++ { bmff::ILC_BAT, "bat", "Baltic (Other)" }, ++ { bmff::ILC_BEJ, "bej", "Beja; Bedawiyet" }, ++ { bmff::ILC_BEL, "bel", "Belarusian" }, ++ { bmff::ILC_BEM, "bem", "Bemba" }, ++ { bmff::ILC_BEN, "ben", "Bengali" }, ++ { bmff::ILC_BER, "ber", "Berber (Other)" }, ++ { bmff::ILC_BHO, "bho", "Bhojpuri" }, ++ { bmff::ILC_BIH, "bih", "Bihari" }, ++ { bmff::ILC_BIK, "bik", "Bikol" }, ++ { bmff::ILC_BIN, "bin", "Bini; Edo" }, ++ { bmff::ILC_BIS, "bis", "Bislama" }, ++ { bmff::ILC_BLA, "bla", "Siksika" }, ++ { bmff::ILC_BNT, "bnt", "Bantu (Other)" }, ++ { bmff::ILC_BOS, "bos", "Bosnian" }, ++ { bmff::ILC_BRA, "bra", "Braj" }, ++ { bmff::ILC_BRE, "bre", "Breton" }, ++ { bmff::ILC_BTK, "btk", "Batak languages" }, ++ { bmff::ILC_BUA, "bua", "Buriat" }, ++ { bmff::ILC_BUG, "bug", "Buginese" }, ++ { bmff::ILC_BUL, "bul", "Bulgarian" }, ++ { bmff::ILC_MYA, "mya", "Burmese" }, ++ { bmff::ILC_BYN, "byn", "Blin; Bilin" }, ++ { bmff::ILC_CAD, "cad", "Caddo" }, ++ { bmff::ILC_CAI, "cai", "Central American Indian (Other)" }, ++ { bmff::ILC_CAR, "car", "Galibi Carib" }, ++ { bmff::ILC_CAT, "cat", "Catalan; Valencian" }, ++ { bmff::ILC_CAU, "cau", "Caucasian (Other)" }, ++ { bmff::ILC_CEB, "ceb", "Cebuano" }, ++ { bmff::ILC_CEL, "cel", "Celtic (Other)" }, ++ { bmff::ILC_CHA, "cha", "Chamorro" }, ++ { bmff::ILC_CHB, "chb", "Chibcha" }, ++ { bmff::ILC_CHE, "che", "Chechen" }, ++ { bmff::ILC_CHG, "chg", "Chagatai" }, ++ { bmff::ILC_ZHO, "zho", "Chinese" }, ++ { bmff::ILC_CHK, "chk", "Chuukese" }, ++ { bmff::ILC_CHM, "chm", "Mari" }, ++ { bmff::ILC_CHN, "chn", "Chinook jargon" }, ++ { bmff::ILC_CHO, "cho", "Choctaw" }, ++ { bmff::ILC_CHP, "chp", "Chipewyan; Dene Suline" }, ++ { bmff::ILC_CHR, "chr", "Cherokee" }, ++ { bmff::ILC_CHU, "chu", "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" }, ++ { bmff::ILC_CHV, "chv", "Chuvash" }, ++ { bmff::ILC_CHY, "chy", "Cheyenne" }, ++ { bmff::ILC_CMC, "cmc", "Chamic languages" }, ++ { bmff::ILC_COP, "cop", "Coptic" }, ++ { bmff::ILC_COR, "cor", "Cornish" }, ++ { bmff::ILC_COS, "cos", "Corsican" }, ++ { bmff::ILC_CPE, "cpe", "Creoles and pidgins, English based (Other)" }, ++ { bmff::ILC_CPF, "cpf", "Creoles and pidgins, French-based (Other)" }, ++ { bmff::ILC_CPP, "cpp", "Creoles and pidgins, Portuguese-based (Other)" }, ++ { bmff::ILC_CRE, "cre", "Cree" }, ++ { bmff::ILC_CRH, "crh", "Crimean Tatar; Crimean Turkish" }, ++ { bmff::ILC_CRP, "crp", "Creoles and pidgins (Other)" }, ++ { bmff::ILC_CSB, "csb", "Kashubian" }, ++ { bmff::ILC_CUS, "cus", "Cushitic (Other)" }, ++ { bmff::ILC_CES, "ces", "Czech" }, ++ { bmff::ILC_DAK, "dak", "Dakota" }, ++ { bmff::ILC_DAN, "dan", "Danish" }, ++ { bmff::ILC_DAR, "dar", "Dargwa" }, ++ { bmff::ILC_DAY, "day", "Land Dayak languages" }, ++ { bmff::ILC_DEL, "del", "Delaware" }, ++ { bmff::ILC_DEN, "den", "Slave (Athapascan)" }, ++ { bmff::ILC_DGR, "dgr", "Dogrib" }, ++ { bmff::ILC_DIN, "din", "Dinka" }, ++ { bmff::ILC_DIV, "div", "Divehi; Dhivehi; Maldivian" }, ++ { bmff::ILC_DOI, "doi", "Dogri" }, ++ { bmff::ILC_DRA, "dra", "Dravidian (Other)" }, ++ { bmff::ILC_DSB, "dsb", "Lower Sorbian" }, ++ { bmff::ILC_DUA, "dua", "Duala" }, ++ { bmff::ILC_DUM, "dum", "Dutch, Middle (ca.1050-1350)" }, ++ { bmff::ILC_NLD, "nld", "Dutch; Flemish" }, ++ { bmff::ILC_DYU, "dyu", "Dyula" }, ++ { bmff::ILC_DZO, "dzo", "Dzongkha" }, ++ { bmff::ILC_EFI, "efi", "Efik" }, ++ { bmff::ILC_EGY, "egy", "Egyptian (Ancient)" }, ++ { bmff::ILC_EKA, "eka", "Ekajuk" }, ++ { bmff::ILC_ELX, "elx", "Elamite" }, ++ { bmff::ILC_ENG, "eng", "English" }, ++ { bmff::ILC_ENM, "enm", "English, Middle (1100-1500)" }, ++ { bmff::ILC_EPO, "epo", "Esperanto" }, ++ { bmff::ILC_EST, "est", "Estonian" }, ++ { bmff::ILC_EWE, "ewe", "Ewe" }, ++ { bmff::ILC_EWO, "ewo", "Ewondo" }, ++ { bmff::ILC_FAN, "fan", "Fang" }, ++ { bmff::ILC_FAO, "fao", "Faroese" }, ++ { bmff::ILC_FAT, "fat", "Fanti" }, ++ { bmff::ILC_FIJ, "fij", "Fijian" }, ++ { bmff::ILC_FIL, "fil", "Filipino; Pilipino" }, ++ { bmff::ILC_FIN, "fin", "Finnish" }, ++ { bmff::ILC_FIU, "fiu", "Finno-Ugrian (Other)" }, ++ { bmff::ILC_FON, "fon", "Fon" }, ++ { bmff::ILC_FRA, "fra", "French" }, ++ { bmff::ILC_FRM, "frm", "French, Middle (ca.1400-1600)" }, ++ { bmff::ILC_FRO, "fro", "French, Old (842-ca.1400)" }, ++ { bmff::ILC_FRR, "frr", "Northern Frisian" }, ++ { bmff::ILC_FRS, "frs", "Eastern Frisian" }, ++ { bmff::ILC_FRY, "fry", "Western Frisian" }, ++ { bmff::ILC_FUL, "ful", "Fulah" }, ++ { bmff::ILC_FUR, "fur", "Friulian" }, ++ { bmff::ILC_GAA, "gaa", "Ga" }, ++ { bmff::ILC_GAY, "gay", "Gayo" }, ++ { bmff::ILC_GBA, "gba", "Gbaya" }, ++ { bmff::ILC_GEM, "gem", "Germanic (Other)" }, ++ { bmff::ILC_KAT, "kat", "Georgian" }, ++ { bmff::ILC_DEU, "deu", "German" }, ++ { bmff::ILC_GEZ, "gez", "Geez" }, ++ { bmff::ILC_GIL, "gil", "Gilbertese" }, ++ { bmff::ILC_GLA, "gla", "Gaelic; Scottish Gaelic" }, ++ { bmff::ILC_GLE, "gle", "Irish" }, ++ { bmff::ILC_GLG, "glg", "Galician" }, ++ { bmff::ILC_GLV, "glv", "Manx" }, ++ { bmff::ILC_GMH, "gmh", "German, Middle High (ca.1050-1500)" }, ++ { bmff::ILC_GOH, "goh", "German, Old High (ca.750-1050)" }, ++ { bmff::ILC_GON, "gon", "Gondi" }, ++ { bmff::ILC_GOR, "gor", "Gorontalo" }, ++ { bmff::ILC_GOT, "got", "Gothic" }, ++ { bmff::ILC_GRB, "grb", "Grebo" }, ++ { bmff::ILC_GRC, "grc", "Greek, Ancient (to 1453)" }, ++ { bmff::ILC_ELL, "ell", "Greek, Modern (1453-)" }, ++ { bmff::ILC_GRN, "grn", "Guarani" }, ++ { bmff::ILC_GSW, "gsw", "Swiss German; Alemannic; Alsatian" }, ++ { bmff::ILC_GUJ, "guj", "Gujarati" }, ++ { bmff::ILC_GWI, "gwi", "Gwich'in" }, ++ { bmff::ILC_HAI, "hai", "Haida" }, ++ { bmff::ILC_HAT, "hat", "Haitian; Haitian Creole" }, ++ { bmff::ILC_HAU, "hau", "Hausa" }, ++ { bmff::ILC_HAW, "haw", "Hawaiian" }, ++ { bmff::ILC_HEB, "heb", "Hebrew" }, ++ { bmff::ILC_HER, "her", "Herero" }, ++ { bmff::ILC_HIL, "hil", "Hiligaynon" }, ++ { bmff::ILC_HIM, "him", "Himachali" }, ++ { bmff::ILC_HIN, "hin", "Hindi" }, ++ { bmff::ILC_HIT, "hit", "Hittite" }, ++ { bmff::ILC_HMN, "hmn", "Hmong" }, ++ { bmff::ILC_HMO, "hmo", "Hiri Motu" }, ++ { bmff::ILC_HRV, "hrv", "Croatian" }, ++ { bmff::ILC_HSB, "hsb", "Upper Sorbian" }, ++ { bmff::ILC_HUN, "hun", "Hungarian" }, ++ { bmff::ILC_HUP, "hup", "Hupa" }, ++ { bmff::ILC_IBA, "iba", "Iban" }, ++ { bmff::ILC_IBO, "ibo", "Igbo" }, ++ { bmff::ILC_ISL, "isl", "Icelandic" }, ++ { bmff::ILC_IDO, "ido", "Ido" }, ++ { bmff::ILC_III, "iii", "Sichuan Yi; Nuosu" }, ++ { bmff::ILC_IJO, "ijo", "Ijo languages" }, ++ { bmff::ILC_IKU, "iku", "Inuktitut" }, ++ { bmff::ILC_ILE, "ile", "Interlingue; Occidental" }, ++ { bmff::ILC_ILO, "ilo", "Iloko" }, ++ { bmff::ILC_INA, "ina", "Interlingua (International Auxiliary Language Association)" }, ++ { bmff::ILC_INC, "inc", "Indic (Other)" }, ++ { bmff::ILC_IND, "ind", "Indonesian" }, ++ { bmff::ILC_INE, "ine", "Indo-European (Other)" }, ++ { bmff::ILC_INH, "inh", "Ingush" }, ++ { bmff::ILC_IPK, "ipk", "Inupiaq" }, ++ { bmff::ILC_IRA, "ira", "Iranian (Other)" }, ++ { bmff::ILC_IRO, "iro", "Iroquoian languages" }, ++ { bmff::ILC_ITA, "ita", "Italian" }, ++ { bmff::ILC_JAV, "jav", "Javanese" }, ++ { bmff::ILC_JBO, "jbo", "Lojban" }, ++ { bmff::ILC_JPN, "jpn", "Japanese" }, ++ { bmff::ILC_JPR, "jpr", "Judeo-Persian" }, ++ { bmff::ILC_JRB, "jrb", "Judeo-Arabic" }, ++ { bmff::ILC_KAA, "kaa", "Kara-Kalpak" }, ++ { bmff::ILC_KAB, "kab", "Kabyle" }, ++ { bmff::ILC_KAC, "kac", "Kachin; Jingpho" }, ++ { bmff::ILC_KAL, "kal", "Kalaallisut; Greenlandic" }, ++ { bmff::ILC_KAM, "kam", "Kamba" }, ++ { bmff::ILC_KAN, "kan", "Kannada" }, ++ { bmff::ILC_KAR, "kar", "Karen languages" }, ++ { bmff::ILC_KAS, "kas", "Kashmiri" }, ++ { bmff::ILC_KAU, "kau", "Kanuri" }, ++ { bmff::ILC_KAW, "kaw", "Kawi" }, ++ { bmff::ILC_KAZ, "kaz", "Kazakh" }, ++ { bmff::ILC_KBD, "kbd", "Kabardian" }, ++ { bmff::ILC_KHA, "kha", "Khasi" }, ++ { bmff::ILC_KHI, "khi", "Khoisan (Other)" }, ++ { bmff::ILC_KHM, "khm", "Central Khmer" }, ++ { bmff::ILC_KHO, "kho", "Khotanese; Sakan" }, ++ { bmff::ILC_KIK, "kik", "Kikuyu; Gikuyu" }, ++ { bmff::ILC_KIN, "kin", "Kinyarwanda" }, ++ { bmff::ILC_KIR, "kir", "Kirghiz; Kyrgyz" }, ++ { bmff::ILC_KMB, "kmb", "Kimbundu" }, ++ { bmff::ILC_KOK, "kok", "Konkani" }, ++ { bmff::ILC_KOM, "kom", "Komi" }, ++ { bmff::ILC_KON, "kon", "Kongo" }, ++ { bmff::ILC_KOR, "kor", "Korean" }, ++ { bmff::ILC_KOS, "kos", "Kosraean" }, ++ { bmff::ILC_KPE, "kpe", "Kpelle" }, ++ { bmff::ILC_KRC, "krc", "Karachay-Balkar" }, ++ { bmff::ILC_KRL, "krl", "Karelian" }, ++ { bmff::ILC_KRO, "kro", "Kru languages" }, ++ { bmff::ILC_KRU, "kru", "Kurukh" }, ++ { bmff::ILC_KUA, "kua", "Kuanyama; Kwanyama" }, ++ { bmff::ILC_KUM, "kum", "Kumyk" }, ++ { bmff::ILC_KUR, "kur", "Kurdish" }, ++ { bmff::ILC_KUT, "kut", "Kutenai" }, ++ { bmff::ILC_LAD, "lad", "Ladino" }, ++ { bmff::ILC_LAH, "lah", "Lahnda" }, ++ { bmff::ILC_LAM, "lam", "Lamba" }, ++ { bmff::ILC_LAO, "lao", "Lao" }, ++ { bmff::ILC_LAT, "lat", "Latin" }, ++ { bmff::ILC_LAV, "lav", "Latvian" }, ++ { bmff::ILC_LEZ, "lez", "Lezghian" }, ++ { bmff::ILC_LIM, "lim", "Limburgan; Limburger; Limburgish" }, ++ { bmff::ILC_LIN, "lin", "Lingala" }, ++ { bmff::ILC_LIT, "lit", "Lithuanian" }, ++ { bmff::ILC_LOL, "lol", "Mongo" }, ++ { bmff::ILC_LOZ, "loz", "Lozi" }, ++ { bmff::ILC_LTZ, "ltz", "Luxembourgish; Letzeburgesch" }, ++ { bmff::ILC_LUA, "lua", "Luba-Lulua" }, ++ { bmff::ILC_LUB, "lub", "Luba-Katanga" }, ++ { bmff::ILC_LUG, "lug", "Ganda" }, ++ { bmff::ILC_LUI, "lui", "Luiseno" }, ++ { bmff::ILC_LUN, "lun", "Lunda" }, ++ { bmff::ILC_LUO, "luo", "Luo (Kenya and Tanzania)" }, ++ { bmff::ILC_LUS, "lus", "Lushai" }, ++ { bmff::ILC_MKD, "mkd", "Macedonian" }, ++ { bmff::ILC_MAD, "mad", "Madurese" }, ++ { bmff::ILC_MAG, "mag", "Magahi" }, ++ { bmff::ILC_MAH, "mah", "Marshallese" }, ++ { bmff::ILC_MAI, "mai", "Maithili" }, ++ { bmff::ILC_MAK, "mak", "Makasar" }, ++ { bmff::ILC_MAL, "mal", "Malayalam" }, ++ { bmff::ILC_MAN, "man", "Mandingo" }, ++ { bmff::ILC_MRI, "mri", "Maori" }, ++ { bmff::ILC_MAP, "map", "Austronesian (Other)" }, ++ { bmff::ILC_MAR, "mar", "Marathi" }, ++ { bmff::ILC_MAS, "mas", "Masai" }, ++ { bmff::ILC_MSA, "msa", "Malay" }, ++ { bmff::ILC_MDF, "mdf", "Moksha" }, ++ { bmff::ILC_MDR, "mdr", "Mandar" }, ++ { bmff::ILC_MEN, "men", "Mende" }, ++ { bmff::ILC_MGA, "mga", "Irish, Middle (900-1200)" }, ++ { bmff::ILC_MIC, "mic", "Mi'kmaq; Micmac" }, ++ { bmff::ILC_MIN, "min", "Minangkabau" }, ++ { bmff::ILC_MIS, "mis", "Uncoded languages" }, ++ { bmff::ILC_MKH, "mkh", "Mon-Khmer (Other)" }, ++ { bmff::ILC_MLG, "mlg", "Malagasy" }, ++ { bmff::ILC_MLT, "mlt", "Maltese" }, ++ { bmff::ILC_MNC, "mnc", "Manchu" }, ++ { bmff::ILC_MNI, "mni", "Manipuri" }, ++ { bmff::ILC_MNO, "mno", "Manobo languages" }, ++ { bmff::ILC_MOH, "moh", "Mohawk" }, ++ { bmff::ILC_MON, "mon", "Mongolian" }, ++ { bmff::ILC_MOS, "mos", "Mossi" }, ++ { bmff::ILC_MUL, "mul", "Multiple languages" }, ++ { bmff::ILC_MUN, "mun", "Munda languages" }, ++ { bmff::ILC_MUS, "mus", "Creek" }, ++ { bmff::ILC_MWL, "mwl", "Mirandese" }, ++ { bmff::ILC_MWR, "mwr", "Marwari" }, ++ { bmff::ILC_MYN, "myn", "Mayan languages" }, ++ { bmff::ILC_MYV, "myv", "Erzya" }, ++ { bmff::ILC_NAH, "nah", "Nahuatl languages" }, ++ { bmff::ILC_NAI, "nai", "North American Indian" }, ++ { bmff::ILC_NAP, "nap", "Neapolitan" }, ++ { bmff::ILC_NAU, "nau", "Nauru" }, ++ { bmff::ILC_NAV, "nav", "Navajo; Navaho" }, ++ { bmff::ILC_NBL, "nbl", "Ndebele, South; South Ndebele" }, ++ { bmff::ILC_NDE, "nde", "Ndebele, North; North Ndebele" }, ++ { bmff::ILC_NDO, "ndo", "Ndonga" }, ++ { bmff::ILC_NDS, "nds", "Low German; Low Saxon; German, Low; Saxon, Low" }, ++ { bmff::ILC_NEP, "nep", "Nepali" }, ++ { bmff::ILC_NEW, "new", "Nepal Bhasa; Newari" }, ++ { bmff::ILC_NIA, "nia", "Nias" }, ++ { bmff::ILC_NIC, "nic", "Niger-Kordofanian (Other)" }, ++ { bmff::ILC_NIU, "niu", "Niuean" }, ++ { bmff::ILC_NNO, "nno", "Norwegian Nynorsk; Nynorsk, Norwegian" }, ++ { bmff::ILC_NOB, "nob", "Bokmål, Norwegian; Norwegian Bokmål" }, ++ { bmff::ILC_NOG, "nog", "Nogai" }, ++ { bmff::ILC_NON, "non", "Norse, Old" }, ++ { bmff::ILC_NOR, "nor", "Norwegian" }, ++ { bmff::ILC_NQO, "nqo", "N'Ko" }, ++ { bmff::ILC_NSO, "nso", "Pedi; Sepedi; Northern Sotho" }, ++ { bmff::ILC_NUB, "nub", "Nubian languages" }, ++ { bmff::ILC_NWC, "nwc", "Classical Newari; Old Newari; Classical Nepal Bhasa" }, ++ { bmff::ILC_NYA, "nya", "Chichewa; Chewa; Nyanja" }, ++ { bmff::ILC_NYM, "nym", "Nyamwezi" }, ++ { bmff::ILC_NYN, "nyn", "Nyankole" }, ++ { bmff::ILC_NYO, "nyo", "Nyoro" }, ++ { bmff::ILC_NZI, "nzi", "Nzima" }, ++ { bmff::ILC_OCI, "oci", "Occitan (post 1500); Provençal" }, ++ { bmff::ILC_OJI, "oji", "Ojibwa" }, ++ { bmff::ILC_ORI, "ori", "Oriya" }, ++ { bmff::ILC_ORM, "orm", "Oromo" }, ++ { bmff::ILC_OSA, "osa", "Osage" }, ++ { bmff::ILC_OSS, "oss", "Ossetian; Ossetic" }, ++ { bmff::ILC_OTA, "ota", "Turkish, Ottoman (1500-1928)" }, ++ { bmff::ILC_OTO, "oto", "Otomian languages" }, ++ { bmff::ILC_PAA, "paa", "Papuan (Other)" }, ++ { bmff::ILC_PAG, "pag", "Pangasinan" }, ++ { bmff::ILC_PAL, "pal", "Pahlavi" }, ++ { bmff::ILC_PAM, "pam", "Pampanga; Kapampangan" }, ++ { bmff::ILC_PAN, "pan", "Panjabi; Punjabi" }, ++ { bmff::ILC_PAP, "pap", "Papiamento" }, ++ { bmff::ILC_PAU, "pau", "Palauan" }, ++ { bmff::ILC_PEO, "peo", "Persian, Old (ca.600-400 B.C.)" }, ++ { bmff::ILC_FAS, "fas", "Persian" }, ++ { bmff::ILC_PHI, "phi", "Philippine (Other)" }, ++ { bmff::ILC_PHN, "phn", "Phoenician" }, ++ { bmff::ILC_PLI, "pli", "Pali" }, ++ { bmff::ILC_POL, "pol", "Polish" }, ++ { bmff::ILC_PON, "pon", "Pohnpeian" }, ++ { bmff::ILC_POR, "por", "Portuguese" }, ++ { bmff::ILC_PRA, "pra", "Prakrit languages" }, ++ { bmff::ILC_PRO, "pro", "Provençal, Old (to 1500)" }, ++ { bmff::ILC_PUS, "pus", "Pushto; Pashto" }, ++ { bmff::ILC_QUE, "que", "Quechua" }, ++ { bmff::ILC_RAJ, "raj", "Rajasthani" }, ++ { bmff::ILC_RAP, "rap", "Rapanui" }, ++ { bmff::ILC_RAR, "rar", "Rarotongan; Cook Islands Maori" }, ++ { bmff::ILC_ROA, "roa", "Romance (Other)" }, ++ { bmff::ILC_ROH, "roh", "Romansh" }, ++ { bmff::ILC_ROM, "rom", "Romany" }, ++ { bmff::ILC_RON, "ron", "Romanian; Moldavian; Moldovan" }, ++ { bmff::ILC_RUN, "run", "Rundi" }, ++ { bmff::ILC_RUP, "rup", "Aromanian; Arumanian; Macedo-Romanian" }, ++ { bmff::ILC_RUS, "rus", "Russian" }, ++ { bmff::ILC_SAD, "sad", "Sandawe" }, ++ { bmff::ILC_SAG, "sag", "Sango" }, ++ { bmff::ILC_SAH, "sah", "Yakut" }, ++ { bmff::ILC_SAI, "sai", "South American Indian (Other)" }, ++ { bmff::ILC_SAL, "sal", "Salishan languages" }, ++ { bmff::ILC_SAM, "sam", "Samaritan Aramaic" }, ++ { bmff::ILC_SAN, "san", "Sanskrit" }, ++ { bmff::ILC_SAS, "sas", "Sasak" }, ++ { bmff::ILC_SAT, "sat", "Santali" }, ++ { bmff::ILC_SCN, "scn", "Sicilian" }, ++ { bmff::ILC_SCO, "sco", "Scots" }, ++ { bmff::ILC_SEL, "sel", "Selkup" }, ++ { bmff::ILC_SEM, "sem", "Semitic (Other)" }, ++ { bmff::ILC_SGA, "sga", "Irish, Old (to 900)" }, ++ { bmff::ILC_SGN, "sgn", "Sign Languages" }, ++ { bmff::ILC_SHN, "shn", "Shan" }, ++ { bmff::ILC_SID, "sid", "Sidamo" }, ++ { bmff::ILC_SIN, "sin", "Sinhala; Sinhalese" }, ++ { bmff::ILC_SIO, "sio", "Siouan languages" }, ++ { bmff::ILC_SIT, "sit", "Sino-Tibetan (Other)" }, ++ { bmff::ILC_SLA, "sla", "Slavic (Other)" }, ++ { bmff::ILC_SLK, "slk", "Slovak" }, ++ { bmff::ILC_SLV, "slv", "Slovenian" }, ++ { bmff::ILC_SMA, "sma", "Southern Sami" }, ++ { bmff::ILC_SME, "sme", "Northern Sami" }, ++ { bmff::ILC_SMI, "smi", "Sami languages (Other)" }, ++ { bmff::ILC_SMJ, "smj", "Lule Sami" }, ++ { bmff::ILC_SMN, "smn", "Inari Sami" }, ++ { bmff::ILC_SMO, "smo", "Samoan" }, ++ { bmff::ILC_SMS, "sms", "Skolt Sami" }, ++ { bmff::ILC_SNA, "sna", "Shona" }, ++ { bmff::ILC_SND, "snd", "Sindhi" }, ++ { bmff::ILC_SNK, "snk", "Soninke" }, ++ { bmff::ILC_SOG, "sog", "Sogdian" }, ++ { bmff::ILC_SOM, "som", "Somali" }, ++ { bmff::ILC_SON, "son", "Songhai languages" }, ++ { bmff::ILC_SOT, "sot", "Sotho, Southern" }, ++ { bmff::ILC_SPA, "spa", "Spanish; Castilian" }, ++ { bmff::ILC_SRD, "srd", "Sardinian" }, ++ { bmff::ILC_SRN, "srn", "Sranan Tongo" }, ++ { bmff::ILC_SRP, "srp", "Serbian" }, ++ { bmff::ILC_SRR, "srr", "Serer" }, ++ { bmff::ILC_SSA, "ssa", "Nilo-Saharan (Other)" }, ++ { bmff::ILC_SSW, "ssw", "Swati" }, ++ { bmff::ILC_SUK, "suk", "Sukuma" }, ++ { bmff::ILC_SUN, "sun", "Sundanese" }, ++ { bmff::ILC_SUS, "sus", "Susu" }, ++ { bmff::ILC_SUX, "sux", "Sumerian" }, ++ { bmff::ILC_SWA, "swa", "Swahili" }, ++ { bmff::ILC_SWE, "swe", "Swedish" }, ++ { bmff::ILC_SYC, "syc", "Classical Syriac" }, ++ { bmff::ILC_SYR, "syr", "Syriac" }, ++ { bmff::ILC_TAH, "tah", "Tahitian" }, ++ { bmff::ILC_TAI, "tai", "Tai (Other)" }, ++ { bmff::ILC_TAM, "tam", "Tamil" }, ++ { bmff::ILC_TAT, "tat", "Tatar" }, ++ { bmff::ILC_TEL, "tel", "Telugu" }, ++ { bmff::ILC_TEM, "tem", "Timne" }, ++ { bmff::ILC_TER, "ter", "Tereno" }, ++ { bmff::ILC_TET, "tet", "Tetum" }, ++ { bmff::ILC_TGK, "tgk", "Tajik" }, ++ { bmff::ILC_TGL, "tgl", "Tagalog" }, ++ { bmff::ILC_THA, "tha", "Thai" }, ++ { bmff::ILC_BOD, "bod", "Tibetan" }, ++ { bmff::ILC_TIG, "tig", "Tigre" }, ++ { bmff::ILC_TIR, "tir", "Tigrinya" }, ++ { bmff::ILC_TIV, "tiv", "Tiv" }, ++ { bmff::ILC_TKL, "tkl", "Tokelau" }, ++ { bmff::ILC_TLH, "tlh", "Klingon; tlhIngan-Hol" }, ++ { bmff::ILC_TLI, "tli", "Tlingit" }, ++ { bmff::ILC_TMH, "tmh", "Tamashek" }, ++ { bmff::ILC_TOG, "tog", "Tonga (Nyasa)" }, ++ { bmff::ILC_TON, "ton", "Tonga (Tonga Islands)" }, ++ { bmff::ILC_TPI, "tpi", "Tok Pisin" }, ++ { bmff::ILC_TSI, "tsi", "Tsimshian" }, ++ { bmff::ILC_TSN, "tsn", "Tswana" }, ++ { bmff::ILC_TSO, "tso", "Tsonga" }, ++ { bmff::ILC_TUK, "tuk", "Turkmen" }, ++ { bmff::ILC_TUM, "tum", "Tumbuka" }, ++ { bmff::ILC_TUP, "tup", "Tupi languages" }, ++ { bmff::ILC_TUR, "tur", "Turkish" }, ++ { bmff::ILC_TUT, "tut", "Altaic (Other)" }, ++ { bmff::ILC_TVL, "tvl", "Tuvalu" }, ++ { bmff::ILC_TWI, "twi", "Twi" }, ++ { bmff::ILC_TYV, "tyv", "Tuvinian" }, ++ { bmff::ILC_UDM, "udm", "Udmurt" }, ++ { bmff::ILC_UGA, "uga", "Ugaritic" }, ++ { bmff::ILC_UIG, "uig", "Uighur; Uyghur" }, ++ { bmff::ILC_UKR, "ukr", "Ukrainian" }, ++ { bmff::ILC_UMB, "umb", "Umbundu" }, ++ { bmff::ILC_UND, "und", "Undetermined" }, ++ { bmff::ILC_URD, "urd", "Urdu" }, ++ { bmff::ILC_UZB, "uzb", "Uzbek" }, ++ { bmff::ILC_VAI, "vai", "Vai" }, ++ { bmff::ILC_VEN, "ven", "Venda" }, ++ { bmff::ILC_VIE, "vie", "Vietnamese" }, ++ { bmff::ILC_VOL, "vol", "Volapük" }, ++ { bmff::ILC_VOT, "vot", "Votic" }, ++ { bmff::ILC_WAK, "wak", "Wakashan languages" }, ++ { bmff::ILC_WAL, "wal", "Walamo" }, ++ { bmff::ILC_WAR, "war", "Waray" }, ++ { bmff::ILC_WAS, "was", "Washo" }, ++ { bmff::ILC_CYM, "cym", "Welsh" }, ++ { bmff::ILC_WEN, "wen", "Sorbian languages" }, ++ { bmff::ILC_WLN, "wln", "Walloon" }, ++ { bmff::ILC_WOL, "wol", "Wolof" }, ++ { bmff::ILC_XAL, "xal", "Kalmyk; Oirat" }, ++ { bmff::ILC_XHO, "xho", "Xhosa" }, ++ { bmff::ILC_YAO, "yao", "Yao" }, ++ { bmff::ILC_YAP, "yap", "Yapese" }, ++ { bmff::ILC_YID, "yid", "Yiddish" }, ++ { bmff::ILC_YOR, "yor", "Yoruba" }, ++ { bmff::ILC_YPK, "ypk", "Yupik languages" }, ++ { bmff::ILC_ZAP, "zap", "Zapotec" }, ++ { bmff::ILC_ZBL, "zbl", "Blissymbols; Blissymbolics; Bliss" }, ++ { bmff::ILC_ZEN, "zen", "Zenaga" }, ++ { bmff::ILC_ZHA, "zha", "Zhuang; Chuang" }, ++ { bmff::ILC_ZND, "znd", "Zande languages" }, ++ { bmff::ILC_ZUL, "zul", "Zulu" }, ++ { bmff::ILC_ZUN, "zun", "Zuni" }, ++ { bmff::ILC_ZXX, "zxx", "No linguistic content; Not applicable" }, ++ { bmff::ILC_ZZA, "zza", "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" }, + +- { mp4v2::impl::bmff::ILC_UNDEFINED } // must be last ++ { bmff::ILC_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + +-#if defined( _MSC_VER ) +-namespace mp4v2 { namespace impl { namespace bmff { +-#endif ++namespace bmff { ++ // must come after static data init ++ const EnumLanguageCode enumLanguageCode; ++} + + /////////////////////////////////////////////////////////////////////////////// + +-// must come after static data init +-const EnumLanguageCode enumLanguageCode; +- +-/////////////////////////////////////////////////////////////////////////////// +- +-}}} // namespace mp4v2::impl::bmff ++}} // namespace mp4v2::impl +diff --git mp4v2-trunk-r355/src/itmf/type.cpp mp4v2-trunk-r355/src/itmf/type.cpp +index da76720..85391c5 100644 +--- mp4v2-trunk-r355/src/itmf/type.cpp ++++ mp4v2-trunk-r355/src/itmf/type.cpp +@@ -24,251 +24,242 @@ + + #include "impl.h" + +-// VStudio idiocy prevents defining template instanced static data +-// in a namespace. Workaround it by defining in global scope. +-// Other platforms will continue to put things in the proper namespace. +-#if defined( _MSC_VER ) +-using namespace mp4v2::impl::itmf; +-#else +-namespace mp4v2 { namespace impl { namespace itmf { +-#endif ++namespace mp4v2 { namespace impl { + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumBasicType::Entry EnumBasicType::data[] = { +- { mp4v2::impl::itmf::BT_IMPLICIT, "implicit", "implicit" }, +- { mp4v2::impl::itmf::BT_UTF8, "utf8", "UTF-8" }, +- { mp4v2::impl::itmf::BT_UTF16, "utf16", "UTF-16" }, +- { mp4v2::impl::itmf::BT_SJIS, "sjis", "S/JIS" }, +- { mp4v2::impl::itmf::BT_HTML, "html", "HTML" }, +- { mp4v2::impl::itmf::BT_XML, "xml", "XML" }, +- { mp4v2::impl::itmf::BT_UUID, "uuid", "UUID" }, +- { mp4v2::impl::itmf::BT_ISRC, "isrc", "ISRC" }, +- { mp4v2::impl::itmf::BT_MI3P, "mi3p", "MI3P" }, +- { mp4v2::impl::itmf::BT_GIF, "gif", "GIF" }, +- { mp4v2::impl::itmf::BT_JPEG, "jpeg", "JPEG" }, +- { mp4v2::impl::itmf::BT_PNG, "png", "PNG" }, +- { mp4v2::impl::itmf::BT_URL, "url", "URL" }, +- { mp4v2::impl::itmf::BT_DURATION, "duration", "duration" }, +- { mp4v2::impl::itmf::BT_DATETIME, "datetime", "date/time" }, +- { mp4v2::impl::itmf::BT_GENRES, "genres", "genres" }, +- { mp4v2::impl::itmf::BT_INTEGER, "integer", "integer" }, +- { mp4v2::impl::itmf::BT_RIAA_PA, "riaapa", "RIAA-PA" }, +- { mp4v2::impl::itmf::BT_UPC, "upc", "UPC" }, +- { mp4v2::impl::itmf::BT_BMP, "bmp", "BMP" }, +- +- { mp4v2::impl::itmf::BT_UNDEFINED } // must be last ++const itmf::EnumBasicType::Entry itmf::EnumBasicType::data[] = { ++ { itmf::BT_IMPLICIT, "implicit", "implicit" }, ++ { itmf::BT_UTF8, "utf8", "UTF-8" }, ++ { itmf::BT_UTF16, "utf16", "UTF-16" }, ++ { itmf::BT_SJIS, "sjis", "S/JIS" }, ++ { itmf::BT_HTML, "html", "HTML" }, ++ { itmf::BT_XML, "xml", "XML" }, ++ { itmf::BT_UUID, "uuid", "UUID" }, ++ { itmf::BT_ISRC, "isrc", "ISRC" }, ++ { itmf::BT_MI3P, "mi3p", "MI3P" }, ++ { itmf::BT_GIF, "gif", "GIF" }, ++ { itmf::BT_JPEG, "jpeg", "JPEG" }, ++ { itmf::BT_PNG, "png", "PNG" }, ++ { itmf::BT_URL, "url", "URL" }, ++ { itmf::BT_DURATION, "duration", "duration" }, ++ { itmf::BT_DATETIME, "datetime", "date/time" }, ++ { itmf::BT_GENRES, "genres", "genres" }, ++ { itmf::BT_INTEGER, "integer", "integer" }, ++ { itmf::BT_RIAA_PA, "riaapa", "RIAA-PA" }, ++ { itmf::BT_UPC, "upc", "UPC" }, ++ { itmf::BT_BMP, "bmp", "BMP" }, ++ ++ { itmf::BT_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumGenreType::Entry EnumGenreType::data[] = { +- { mp4v2::impl::itmf::GENRE_BLUES, "blues", "Blues" }, +- { mp4v2::impl::itmf::GENRE_CLASSIC_ROCK, "classicrock", "Classic Rock" }, +- { mp4v2::impl::itmf::GENRE_COUNTRY, "country", "Country" }, +- { mp4v2::impl::itmf::GENRE_DANCE, "dance", "Dance" }, +- { mp4v2::impl::itmf::GENRE_DISCO, "disco", "Disco" }, +- { mp4v2::impl::itmf::GENRE_FUNK, "funk", "Funk" }, +- { mp4v2::impl::itmf::GENRE_GRUNGE, "grunge", "Grunge" }, +- { mp4v2::impl::itmf::GENRE_HIP_HOP, "hiphop", "Hop-Hop" }, +- { mp4v2::impl::itmf::GENRE_JAZZ, "jazz", "Jazz" }, +- { mp4v2::impl::itmf::GENRE_METAL, "metal", "Metal" }, +- { mp4v2::impl::itmf::GENRE_NEW_AGE, "newage", "New Age" }, +- { mp4v2::impl::itmf::GENRE_OLDIES, "oldies", "Oldies" }, +- { mp4v2::impl::itmf::GENRE_OTHER, "other", "Other" }, +- { mp4v2::impl::itmf::GENRE_POP, "pop", "Pop" }, +- { mp4v2::impl::itmf::GENRE_R_AND_B, "rand_b", "R&B" }, +- { mp4v2::impl::itmf::GENRE_RAP, "rap", "Rap" }, +- { mp4v2::impl::itmf::GENRE_REGGAE, "reggae", "Reggae" }, +- { mp4v2::impl::itmf::GENRE_ROCK, "rock", "Rock" }, +- { mp4v2::impl::itmf::GENRE_TECHNO, "techno", "Techno" }, +- { mp4v2::impl::itmf::GENRE_INDUSTRIAL, "industrial", "Industrial" }, +- { mp4v2::impl::itmf::GENRE_ALTERNATIVE, "alternative", "Alternative" }, +- { mp4v2::impl::itmf::GENRE_SKA, "ska", "Ska" }, +- { mp4v2::impl::itmf::GENRE_DEATH_METAL, "deathmetal", "Death Metal" }, +- { mp4v2::impl::itmf::GENRE_PRANKS, "pranks", "Pranks" }, +- { mp4v2::impl::itmf::GENRE_SOUNDTRACK, "soundtrack", "Soundtrack" }, +- { mp4v2::impl::itmf::GENRE_EURO_TECHNO, "eurotechno", "Euro-Techno" }, +- { mp4v2::impl::itmf::GENRE_AMBIENT, "ambient", "Ambient" }, +- { mp4v2::impl::itmf::GENRE_TRIP_HOP, "triphop", "Trip-Hop" }, +- { mp4v2::impl::itmf::GENRE_VOCAL, "vocal", "Vocal" }, +- { mp4v2::impl::itmf::GENRE_JAZZ_FUNK, "jazzfunk", "Jazz+Funk" }, +- { mp4v2::impl::itmf::GENRE_FUSION, "fusion", "Fusion" }, +- { mp4v2::impl::itmf::GENRE_TRANCE, "trance", "Trance" }, +- { mp4v2::impl::itmf::GENRE_CLASSICAL, "classical", "Classical" }, +- { mp4v2::impl::itmf::GENRE_INSTRUMENTAL, "instrumental", "Instrumental" }, +- { mp4v2::impl::itmf::GENRE_ACID, "acid", "Acid" }, +- { mp4v2::impl::itmf::GENRE_HOUSE, "house", "House" }, +- { mp4v2::impl::itmf::GENRE_GAME, "game", "Game" }, +- { mp4v2::impl::itmf::GENRE_SOUND_CLIP, "soundclip", "Sound Clip" }, +- { mp4v2::impl::itmf::GENRE_GOSPEL, "gospel", "Gospel" }, +- { mp4v2::impl::itmf::GENRE_NOISE, "noise", "Noise" }, +- { mp4v2::impl::itmf::GENRE_ALTERNROCK, "alternrock", "AlternRock" }, +- { mp4v2::impl::itmf::GENRE_BASS, "bass", "Bass" }, +- { mp4v2::impl::itmf::GENRE_SOUL, "soul", "Soul" }, +- { mp4v2::impl::itmf::GENRE_PUNK, "punk", "Punk" }, +- { mp4v2::impl::itmf::GENRE_SPACE, "space", "Space" }, +- { mp4v2::impl::itmf::GENRE_MEDITATIVE, "meditative", "Meditative" }, +- { mp4v2::impl::itmf::GENRE_INSTRUMENTAL_POP, "instrumentalpop", "Instrumental Pop" }, +- { mp4v2::impl::itmf::GENRE_INSTRUMENTAL_ROCK, "instrumentalrock", "Instrumental Rock" }, +- { mp4v2::impl::itmf::GENRE_ETHNIC, "ethnic", "Ethnic" }, +- { mp4v2::impl::itmf::GENRE_GOTHIC, "gothic", "Gothic" }, +- { mp4v2::impl::itmf::GENRE_DARKWAVE, "darkwave", "Darkwave" }, +- { mp4v2::impl::itmf::GENRE_TECHNO_INDUSTRIAL, "technoindustrial", "Techno-Industrial" }, +- { mp4v2::impl::itmf::GENRE_ELECTRONIC, "electronic", "Electronic" }, +- { mp4v2::impl::itmf::GENRE_POP_FOLK, "popfolk", "Pop-Folk" }, +- { mp4v2::impl::itmf::GENRE_EURODANCE, "eurodance", "Eurodance" }, +- { mp4v2::impl::itmf::GENRE_DREAM, "dream", "Dream" }, +- { mp4v2::impl::itmf::GENRE_SOUTHERN_ROCK, "southernrock", "Southern Rock" }, +- { mp4v2::impl::itmf::GENRE_COMEDY, "comedy", "Comedy" }, +- { mp4v2::impl::itmf::GENRE_CULT, "cult", "Cult" }, +- { mp4v2::impl::itmf::GENRE_GANGSTA, "gangsta", "Gangsta" }, +- { mp4v2::impl::itmf::GENRE_TOP_40, "top40", "Top 40" }, +- { mp4v2::impl::itmf::GENRE_CHRISTIAN_RAP, "christianrap", "Christian Rap" }, +- { mp4v2::impl::itmf::GENRE_POP_FUNK, "popfunk", "Pop/Funk" }, +- { mp4v2::impl::itmf::GENRE_JUNGLE, "jungle", "Jungle" }, +- { mp4v2::impl::itmf::GENRE_NATIVE_AMERICAN, "nativeamerican", "Native American" }, +- { mp4v2::impl::itmf::GENRE_CABARET, "cabaret", "Cabaret" }, +- { mp4v2::impl::itmf::GENRE_NEW_WAVE, "newwave", "New Wave" }, +- { mp4v2::impl::itmf::GENRE_PSYCHEDELIC, "psychedelic", "Psychedelic" }, +- { mp4v2::impl::itmf::GENRE_RAVE, "rave", "Rave" }, +- { mp4v2::impl::itmf::GENRE_SHOWTUNES, "showtunes", "Showtunes" }, +- { mp4v2::impl::itmf::GENRE_TRAILER, "trailer", "Trailer" }, +- { mp4v2::impl::itmf::GENRE_LO_FI, "lofi", "Lo-Fi" }, +- { mp4v2::impl::itmf::GENRE_TRIBAL, "tribal", "Tribal" }, +- { mp4v2::impl::itmf::GENRE_ACID_PUNK, "acidpunk", "Acid Punk" }, +- { mp4v2::impl::itmf::GENRE_ACID_JAZZ, "acidjazz", "Acid Jazz" }, +- { mp4v2::impl::itmf::GENRE_POLKA, "polka", "Polka" }, +- { mp4v2::impl::itmf::GENRE_RETRO, "retro", "Retro" }, +- { mp4v2::impl::itmf::GENRE_MUSICAL, "musical", "Musical" }, +- { mp4v2::impl::itmf::GENRE_ROCK_AND_ROLL, "rockand_roll", "Rock & Roll" }, +- +- { mp4v2::impl::itmf::GENRE_HARD_ROCK, "hardrock", "Hard Rock" }, +- { mp4v2::impl::itmf::GENRE_FOLK, "folk", "Folk" }, +- { mp4v2::impl::itmf::GENRE_FOLK_ROCK, "folkrock", "Folk-Rock" }, +- { mp4v2::impl::itmf::GENRE_NATIONAL_FOLK, "nationalfolk", "National Folk" }, +- { mp4v2::impl::itmf::GENRE_SWING, "swing", "Swing" }, +- { mp4v2::impl::itmf::GENRE_FAST_FUSION, "fastfusion", "Fast Fusion" }, +- { mp4v2::impl::itmf::GENRE_BEBOB, "bebob", "Bebob" }, +- { mp4v2::impl::itmf::GENRE_LATIN, "latin", "Latin" }, +- { mp4v2::impl::itmf::GENRE_REVIVAL, "revival", "Revival" }, +- { mp4v2::impl::itmf::GENRE_CELTIC, "celtic", "Celtic" }, +- { mp4v2::impl::itmf::GENRE_BLUEGRASS, "bluegrass", "Bluegrass" }, +- { mp4v2::impl::itmf::GENRE_AVANTGARDE, "avantgarde", "Avantgarde" }, +- { mp4v2::impl::itmf::GENRE_GOTHIC_ROCK, "gothicrock", "Gothic Rock" }, +- { mp4v2::impl::itmf::GENRE_PROGRESSIVE_ROCK, "progressiverock", "Progresive Rock" }, +- { mp4v2::impl::itmf::GENRE_PSYCHEDELIC_ROCK, "psychedelicrock", "Psychedelic Rock" }, +- { mp4v2::impl::itmf::GENRE_SYMPHONIC_ROCK, "symphonicrock", "SYMPHONIC_ROCK" }, +- { mp4v2::impl::itmf::GENRE_SLOW_ROCK, "slowrock", "Slow Rock" }, +- { mp4v2::impl::itmf::GENRE_BIG_BAND, "bigband", "Big Band" }, +- { mp4v2::impl::itmf::GENRE_CHORUS, "chorus", "Chorus" }, +- { mp4v2::impl::itmf::GENRE_EASY_LISTENING, "easylistening", "Easy Listening" }, +- { mp4v2::impl::itmf::GENRE_ACOUSTIC, "acoustic", "Acoustic" }, +- { mp4v2::impl::itmf::GENRE_HUMOUR, "humour", "Humor" }, +- { mp4v2::impl::itmf::GENRE_SPEECH, "speech", "Speech" }, +- { mp4v2::impl::itmf::GENRE_CHANSON, "chanson", "Chason" }, +- { mp4v2::impl::itmf::GENRE_OPERA, "opera", "Opera" }, +- { mp4v2::impl::itmf::GENRE_CHAMBER_MUSIC, "chambermusic", "Chamber Music" }, +- { mp4v2::impl::itmf::GENRE_SONATA, "sonata", "Sonata" }, +- { mp4v2::impl::itmf::GENRE_SYMPHONY, "symphony", "Symphony" }, +- { mp4v2::impl::itmf::GENRE_BOOTY_BASS, "bootybass", "Booty Bass" }, +- { mp4v2::impl::itmf::GENRE_PRIMUS, "primus", "Primus" }, +- { mp4v2::impl::itmf::GENRE_PORN_GROOVE, "porngroove", "Porn Groove" }, +- { mp4v2::impl::itmf::GENRE_SATIRE, "satire", "Satire" }, +- { mp4v2::impl::itmf::GENRE_SLOW_JAM, "slowjam", "Slow Jam" }, +- { mp4v2::impl::itmf::GENRE_CLUB, "club", "Club" }, +- { mp4v2::impl::itmf::GENRE_TANGO, "tango", "Tango" }, +- { mp4v2::impl::itmf::GENRE_SAMBA, "samba", "Samba" }, +- { mp4v2::impl::itmf::GENRE_FOLKLORE, "folklore", "Folklore" }, +- { mp4v2::impl::itmf::GENRE_BALLAD, "ballad", "Ballad" }, +- { mp4v2::impl::itmf::GENRE_POWER_BALLAD, "powerballad", "Power Ballad" }, +- { mp4v2::impl::itmf::GENRE_RHYTHMIC_SOUL, "rhythmicsoul", "Rhythmic Soul" }, +- { mp4v2::impl::itmf::GENRE_FREESTYLE, "freestyle", "Freestyle" }, +- { mp4v2::impl::itmf::GENRE_DUET, "duet", "Duet" }, +- { mp4v2::impl::itmf::GENRE_PUNK_ROCK, "punkrock", "Punk Rock" }, +- { mp4v2::impl::itmf::GENRE_DRUM_SOLO, "drumsolo", "Drum Solo" }, +- { mp4v2::impl::itmf::GENRE_A_CAPELLA, "acapella", "A capella" }, +- { mp4v2::impl::itmf::GENRE_EURO_HOUSE, "eurohouse", "Euro-House" }, +- { mp4v2::impl::itmf::GENRE_DANCE_HALL, "dancehall", "Dance Hall" }, +- { mp4v2::impl::itmf::GENRE_NONE, "none", "none" }, +- +- { mp4v2::impl::itmf::GENRE_UNDEFINED } // must be last ++const itmf::EnumGenreType::Entry itmf::EnumGenreType::data[] = { ++ { itmf::GENRE_BLUES, "blues", "Blues" }, ++ { itmf::GENRE_CLASSIC_ROCK, "classicrock", "Classic Rock" }, ++ { itmf::GENRE_COUNTRY, "country", "Country" }, ++ { itmf::GENRE_DANCE, "dance", "Dance" }, ++ { itmf::GENRE_DISCO, "disco", "Disco" }, ++ { itmf::GENRE_FUNK, "funk", "Funk" }, ++ { itmf::GENRE_GRUNGE, "grunge", "Grunge" }, ++ { itmf::GENRE_HIP_HOP, "hiphop", "Hop-Hop" }, ++ { itmf::GENRE_JAZZ, "jazz", "Jazz" }, ++ { itmf::GENRE_METAL, "metal", "Metal" }, ++ { itmf::GENRE_NEW_AGE, "newage", "New Age" }, ++ { itmf::GENRE_OLDIES, "oldies", "Oldies" }, ++ { itmf::GENRE_OTHER, "other", "Other" }, ++ { itmf::GENRE_POP, "pop", "Pop" }, ++ { itmf::GENRE_R_AND_B, "rand_b", "R&B" }, ++ { itmf::GENRE_RAP, "rap", "Rap" }, ++ { itmf::GENRE_REGGAE, "reggae", "Reggae" }, ++ { itmf::GENRE_ROCK, "rock", "Rock" }, ++ { itmf::GENRE_TECHNO, "techno", "Techno" }, ++ { itmf::GENRE_INDUSTRIAL, "industrial", "Industrial" }, ++ { itmf::GENRE_ALTERNATIVE, "alternative", "Alternative" }, ++ { itmf::GENRE_SKA, "ska", "Ska" }, ++ { itmf::GENRE_DEATH_METAL, "deathmetal", "Death Metal" }, ++ { itmf::GENRE_PRANKS, "pranks", "Pranks" }, ++ { itmf::GENRE_SOUNDTRACK, "soundtrack", "Soundtrack" }, ++ { itmf::GENRE_EURO_TECHNO, "eurotechno", "Euro-Techno" }, ++ { itmf::GENRE_AMBIENT, "ambient", "Ambient" }, ++ { itmf::GENRE_TRIP_HOP, "triphop", "Trip-Hop" }, ++ { itmf::GENRE_VOCAL, "vocal", "Vocal" }, ++ { itmf::GENRE_JAZZ_FUNK, "jazzfunk", "Jazz+Funk" }, ++ { itmf::GENRE_FUSION, "fusion", "Fusion" }, ++ { itmf::GENRE_TRANCE, "trance", "Trance" }, ++ { itmf::GENRE_CLASSICAL, "classical", "Classical" }, ++ { itmf::GENRE_INSTRUMENTAL, "instrumental", "Instrumental" }, ++ { itmf::GENRE_ACID, "acid", "Acid" }, ++ { itmf::GENRE_HOUSE, "house", "House" }, ++ { itmf::GENRE_GAME, "game", "Game" }, ++ { itmf::GENRE_SOUND_CLIP, "soundclip", "Sound Clip" }, ++ { itmf::GENRE_GOSPEL, "gospel", "Gospel" }, ++ { itmf::GENRE_NOISE, "noise", "Noise" }, ++ { itmf::GENRE_ALTERNROCK, "alternrock", "AlternRock" }, ++ { itmf::GENRE_BASS, "bass", "Bass" }, ++ { itmf::GENRE_SOUL, "soul", "Soul" }, ++ { itmf::GENRE_PUNK, "punk", "Punk" }, ++ { itmf::GENRE_SPACE, "space", "Space" }, ++ { itmf::GENRE_MEDITATIVE, "meditative", "Meditative" }, ++ { itmf::GENRE_INSTRUMENTAL_POP, "instrumentalpop", "Instrumental Pop" }, ++ { itmf::GENRE_INSTRUMENTAL_ROCK, "instrumentalrock", "Instrumental Rock" }, ++ { itmf::GENRE_ETHNIC, "ethnic", "Ethnic" }, ++ { itmf::GENRE_GOTHIC, "gothic", "Gothic" }, ++ { itmf::GENRE_DARKWAVE, "darkwave", "Darkwave" }, ++ { itmf::GENRE_TECHNO_INDUSTRIAL, "technoindustrial", "Techno-Industrial" }, ++ { itmf::GENRE_ELECTRONIC, "electronic", "Electronic" }, ++ { itmf::GENRE_POP_FOLK, "popfolk", "Pop-Folk" }, ++ { itmf::GENRE_EURODANCE, "eurodance", "Eurodance" }, ++ { itmf::GENRE_DREAM, "dream", "Dream" }, ++ { itmf::GENRE_SOUTHERN_ROCK, "southernrock", "Southern Rock" }, ++ { itmf::GENRE_COMEDY, "comedy", "Comedy" }, ++ { itmf::GENRE_CULT, "cult", "Cult" }, ++ { itmf::GENRE_GANGSTA, "gangsta", "Gangsta" }, ++ { itmf::GENRE_TOP_40, "top40", "Top 40" }, ++ { itmf::GENRE_CHRISTIAN_RAP, "christianrap", "Christian Rap" }, ++ { itmf::GENRE_POP_FUNK, "popfunk", "Pop/Funk" }, ++ { itmf::GENRE_JUNGLE, "jungle", "Jungle" }, ++ { itmf::GENRE_NATIVE_AMERICAN, "nativeamerican", "Native American" }, ++ { itmf::GENRE_CABARET, "cabaret", "Cabaret" }, ++ { itmf::GENRE_NEW_WAVE, "newwave", "New Wave" }, ++ { itmf::GENRE_PSYCHEDELIC, "psychedelic", "Psychedelic" }, ++ { itmf::GENRE_RAVE, "rave", "Rave" }, ++ { itmf::GENRE_SHOWTUNES, "showtunes", "Showtunes" }, ++ { itmf::GENRE_TRAILER, "trailer", "Trailer" }, ++ { itmf::GENRE_LO_FI, "lofi", "Lo-Fi" }, ++ { itmf::GENRE_TRIBAL, "tribal", "Tribal" }, ++ { itmf::GENRE_ACID_PUNK, "acidpunk", "Acid Punk" }, ++ { itmf::GENRE_ACID_JAZZ, "acidjazz", "Acid Jazz" }, ++ { itmf::GENRE_POLKA, "polka", "Polka" }, ++ { itmf::GENRE_RETRO, "retro", "Retro" }, ++ { itmf::GENRE_MUSICAL, "musical", "Musical" }, ++ { itmf::GENRE_ROCK_AND_ROLL, "rockand_roll", "Rock & Roll" }, ++ ++ { itmf::GENRE_HARD_ROCK, "hardrock", "Hard Rock" }, ++ { itmf::GENRE_FOLK, "folk", "Folk" }, ++ { itmf::GENRE_FOLK_ROCK, "folkrock", "Folk-Rock" }, ++ { itmf::GENRE_NATIONAL_FOLK, "nationalfolk", "National Folk" }, ++ { itmf::GENRE_SWING, "swing", "Swing" }, ++ { itmf::GENRE_FAST_FUSION, "fastfusion", "Fast Fusion" }, ++ { itmf::GENRE_BEBOB, "bebob", "Bebob" }, ++ { itmf::GENRE_LATIN, "latin", "Latin" }, ++ { itmf::GENRE_REVIVAL, "revival", "Revival" }, ++ { itmf::GENRE_CELTIC, "celtic", "Celtic" }, ++ { itmf::GENRE_BLUEGRASS, "bluegrass", "Bluegrass" }, ++ { itmf::GENRE_AVANTGARDE, "avantgarde", "Avantgarde" }, ++ { itmf::GENRE_GOTHIC_ROCK, "gothicrock", "Gothic Rock" }, ++ { itmf::GENRE_PROGRESSIVE_ROCK, "progressiverock", "Progresive Rock" }, ++ { itmf::GENRE_PSYCHEDELIC_ROCK, "psychedelicrock", "Psychedelic Rock" }, ++ { itmf::GENRE_SYMPHONIC_ROCK, "symphonicrock", "SYMPHONIC_ROCK" }, ++ { itmf::GENRE_SLOW_ROCK, "slowrock", "Slow Rock" }, ++ { itmf::GENRE_BIG_BAND, "bigband", "Big Band" }, ++ { itmf::GENRE_CHORUS, "chorus", "Chorus" }, ++ { itmf::GENRE_EASY_LISTENING, "easylistening", "Easy Listening" }, ++ { itmf::GENRE_ACOUSTIC, "acoustic", "Acoustic" }, ++ { itmf::GENRE_HUMOUR, "humour", "Humor" }, ++ { itmf::GENRE_SPEECH, "speech", "Speech" }, ++ { itmf::GENRE_CHANSON, "chanson", "Chason" }, ++ { itmf::GENRE_OPERA, "opera", "Opera" }, ++ { itmf::GENRE_CHAMBER_MUSIC, "chambermusic", "Chamber Music" }, ++ { itmf::GENRE_SONATA, "sonata", "Sonata" }, ++ { itmf::GENRE_SYMPHONY, "symphony", "Symphony" }, ++ { itmf::GENRE_BOOTY_BASS, "bootybass", "Booty Bass" }, ++ { itmf::GENRE_PRIMUS, "primus", "Primus" }, ++ { itmf::GENRE_PORN_GROOVE, "porngroove", "Porn Groove" }, ++ { itmf::GENRE_SATIRE, "satire", "Satire" }, ++ { itmf::GENRE_SLOW_JAM, "slowjam", "Slow Jam" }, ++ { itmf::GENRE_CLUB, "club", "Club" }, ++ { itmf::GENRE_TANGO, "tango", "Tango" }, ++ { itmf::GENRE_SAMBA, "samba", "Samba" }, ++ { itmf::GENRE_FOLKLORE, "folklore", "Folklore" }, ++ { itmf::GENRE_BALLAD, "ballad", "Ballad" }, ++ { itmf::GENRE_POWER_BALLAD, "powerballad", "Power Ballad" }, ++ { itmf::GENRE_RHYTHMIC_SOUL, "rhythmicsoul", "Rhythmic Soul" }, ++ { itmf::GENRE_FREESTYLE, "freestyle", "Freestyle" }, ++ { itmf::GENRE_DUET, "duet", "Duet" }, ++ { itmf::GENRE_PUNK_ROCK, "punkrock", "Punk Rock" }, ++ { itmf::GENRE_DRUM_SOLO, "drumsolo", "Drum Solo" }, ++ { itmf::GENRE_A_CAPELLA, "acapella", "A capella" }, ++ { itmf::GENRE_EURO_HOUSE, "eurohouse", "Euro-House" }, ++ { itmf::GENRE_DANCE_HALL, "dancehall", "Dance Hall" }, ++ { itmf::GENRE_NONE, "none", "none" }, ++ ++ { itmf::GENRE_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumStikType::Entry EnumStikType::data[] = { +- { mp4v2::impl::itmf::STIK_OLD_MOVIE, "oldmovie", "Movie" }, +- { mp4v2::impl::itmf::STIK_NORMAL, "normal", "Normal" }, +- { mp4v2::impl::itmf::STIK_AUDIOBOOK, "audiobook", "Audio Book" }, +- { mp4v2::impl::itmf::STIK_MUSIC_VIDEO, "musicvideo", "Music Video" }, +- { mp4v2::impl::itmf::STIK_MOVIE, "movie", "Movie" }, +- { mp4v2::impl::itmf::STIK_TV_SHOW, "tvshow", "TV Show" }, +- { mp4v2::impl::itmf::STIK_BOOKLET, "booklet", "Booklet" }, +- { mp4v2::impl::itmf::STIK_RINGTONE, "ringtone", "Ringtone" }, +- +- { mp4v2::impl::itmf::STIK_UNDEFINED } // must be last ++const itmf::EnumStikType::Entry itmf::EnumStikType::data[] = { ++ { itmf::STIK_OLD_MOVIE, "oldmovie", "Movie" }, ++ { itmf::STIK_NORMAL, "normal", "Normal" }, ++ { itmf::STIK_AUDIOBOOK, "audiobook", "Audio Book" }, ++ { itmf::STIK_MUSIC_VIDEO, "musicvideo", "Music Video" }, ++ { itmf::STIK_MOVIE, "movie", "Movie" }, ++ { itmf::STIK_TV_SHOW, "tvshow", "TV Show" }, ++ { itmf::STIK_BOOKLET, "booklet", "Booklet" }, ++ { itmf::STIK_RINGTONE, "ringtone", "Ringtone" }, ++ ++ { itmf::STIK_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumAccountType::Entry EnumAccountType::data[] = { +- { mp4v2::impl::itmf::AT_ITUNES, "itunes", "iTunes" }, +- { mp4v2::impl::itmf::AT_AOL, "aol", "AOL" }, ++const itmf::EnumAccountType::Entry itmf::EnumAccountType::data[] = { ++ { itmf::AT_ITUNES, "itunes", "iTunes" }, ++ { itmf::AT_AOL, "aol", "AOL" }, + +- { mp4v2::impl::itmf::AT_UNDEFINED } // must be last ++ { itmf::AT_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumCountryCode::Entry EnumCountryCode::data[] = { +- { mp4v2::impl::itmf::CC_USA, "usa", "United States" }, +- { mp4v2::impl::itmf::CC_USA, "fra", "France" }, +- { mp4v2::impl::itmf::CC_DEU, "ger", "Germany" }, +- { mp4v2::impl::itmf::CC_GBR, "gbr", "United Kingdom" }, +- { mp4v2::impl::itmf::CC_AUT, "aut", "Austria" }, +- { mp4v2::impl::itmf::CC_BEL, "bel", "Belgium" }, +- { mp4v2::impl::itmf::CC_FIN, "fin", "Finland" }, +- { mp4v2::impl::itmf::CC_GRC, "grc", "Greece" }, +- { mp4v2::impl::itmf::CC_IRL, "irl", "Ireland" }, +- { mp4v2::impl::itmf::CC_ITA, "ita", "Italy" }, +- { mp4v2::impl::itmf::CC_LUX, "lux", "Luxembourg" }, +- { mp4v2::impl::itmf::CC_NLD, "nld", "Netherlands" }, +- { mp4v2::impl::itmf::CC_PRT, "prt", "Portugal" }, +- { mp4v2::impl::itmf::CC_ESP, "esp", "Spain" }, +- { mp4v2::impl::itmf::CC_CAN, "can", "Canada" }, +- { mp4v2::impl::itmf::CC_SWE, "swe", "Sweden" }, +- { mp4v2::impl::itmf::CC_NOR, "nor", "Norway" }, +- { mp4v2::impl::itmf::CC_DNK, "dnk", "Denmark" }, +- { mp4v2::impl::itmf::CC_CHE, "che", "Switzerland" }, +- { mp4v2::impl::itmf::CC_AUS, "aus", "Australia" }, +- { mp4v2::impl::itmf::CC_NZL, "nzl", "New Zealand" }, +- { mp4v2::impl::itmf::CC_JPN, "jpn", "Japan" }, +- +- { mp4v2::impl::itmf::CC_UNDEFINED } // must be last ++const itmf::EnumCountryCode::Entry itmf::EnumCountryCode::data[] = { ++ { itmf::CC_USA, "usa", "United States" }, ++ { itmf::CC_USA, "fra", "France" }, ++ { itmf::CC_DEU, "ger", "Germany" }, ++ { itmf::CC_GBR, "gbr", "United Kingdom" }, ++ { itmf::CC_AUT, "aut", "Austria" }, ++ { itmf::CC_BEL, "bel", "Belgium" }, ++ { itmf::CC_FIN, "fin", "Finland" }, ++ { itmf::CC_GRC, "grc", "Greece" }, ++ { itmf::CC_IRL, "irl", "Ireland" }, ++ { itmf::CC_ITA, "ita", "Italy" }, ++ { itmf::CC_LUX, "lux", "Luxembourg" }, ++ { itmf::CC_NLD, "nld", "Netherlands" }, ++ { itmf::CC_PRT, "prt", "Portugal" }, ++ { itmf::CC_ESP, "esp", "Spain" }, ++ { itmf::CC_CAN, "can", "Canada" }, ++ { itmf::CC_SWE, "swe", "Sweden" }, ++ { itmf::CC_NOR, "nor", "Norway" }, ++ { itmf::CC_DNK, "dnk", "Denmark" }, ++ { itmf::CC_CHE, "che", "Switzerland" }, ++ { itmf::CC_AUS, "aus", "Australia" }, ++ { itmf::CC_NZL, "nzl", "New Zealand" }, ++ { itmf::CC_JPN, "jpn", "Japan" }, ++ ++ { itmf::CC_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + + template <> +-const EnumContentRating::Entry EnumContentRating::data[] = { +- { mp4v2::impl::itmf::CR_NONE, "none", "None" }, +- { mp4v2::impl::itmf::CR_CLEAN, "clean", "Clean" }, +- { mp4v2::impl::itmf::CR_EXPLICIT, "explicit", "Explicit" }, ++const itmf::EnumContentRating::Entry itmf::EnumContentRating::data[] = { ++ { itmf::CR_NONE, "none", "None" }, ++ { itmf::CR_CLEAN, "clean", "Clean" }, ++ { itmf::CR_EXPLICIT, "explicit", "Explicit" }, + +- { mp4v2::impl::itmf::CR_UNDEFINED } // must be last ++ { itmf::CR_UNDEFINED } // must be last + }; + + /////////////////////////////////////////////////////////////////////////////// + +-#if defined( _MSC_VER ) +-namespace mp4v2 { namespace impl { namespace itmf { +-#endif ++namespace itmf { + + /////////////////////////////////////////////////////////////////////////////// + diff --git a/contrib/mp4v2/module.defs b/contrib/mp4v2/module.defs index 39aa2233d..67c95a5af 100644 --- a/contrib/mp4v2/module.defs +++ b/contrib/mp4v2/module.defs @@ -12,3 +12,7 @@ MP4V2.CONFIGURE.extra += --disable-util # gch causes build errors with -g3 on many gcc toolchains MP4V2.CONFIGURE.extra += --disable-gch + +## optional static libs need to be marked +MP4V2.OSL.libs = mp4v2 +MP4V2.OSL.files = $(foreach i,$(MP4V2.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a)) diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index a2dcbaccd..149933459 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -282,6 +282,13 @@ 277A3FD014AE84C500A835E4 /* osx106.i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = osx106.i386.xcconfig; sourceTree = "<group>"; }; 277A3FD114AE84C500A835E4 /* osx106.x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = osx106.x86_64.xcconfig; sourceTree = "<group>"; }; 277A3FD214AE84C500A835E4 /* osx107.x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = osx107.x86_64.xcconfig; sourceTree = "<group>"; }; + 277EFE8917ED4F5D001D4A6A /* osx108.i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = osx108.i386.xcconfig; sourceTree = "<group>"; }; + 277EFE8B17ED4F63001D4A6A /* osx108.x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = osx108.x86_64.xcconfig; sourceTree = "<group>"; }; + 277EFE8D17ED5628001D4A6A /* supplemental.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = supplemental.xcconfig; sourceTree = "<group>"; }; + 277EFE8F17ED7296001D4A6A /* libmp4v2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmp4v2.a; path = external/contrib/lib/libmp4v2.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 277EFE9017ED72A1001D4A6A /* libmkv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmkv.a; path = external/contrib/lib/libmkv.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 277EFE9117ED7749001D4A6A /* libfaac.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfaac.a; path = external/contrib/lib/libfaac.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 277EFE9217ED799E001D4A6A /* libfdk-aac.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libfdk-aac.a"; path = "../../../../Users/mike/Library/Developer/Xcode/DerivedData/HandBrake-anpxrfhxsejsxehiwuiaexjoygra/Build/Products/debug/external/contrib/lib/libfdk-aac.a"; sourceTree = "<group>"; }; 27D6C72414B1019100B785E4 /* libhb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libhb.a; path = external/libhb/libhb.a; sourceTree = BUILT_PRODUCTS_DIR; }; 27D6C72714B102DA00B785E4 /* liba52.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liba52.a; path = external/contrib/lib/liba52.a; sourceTree = BUILT_PRODUCTS_DIR; }; 27D6C72814B102DA00B785E4 /* libass.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libass.a; path = external/contrib/lib/libass.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -680,15 +687,30 @@ 277A3FD114AE84C500A835E4 /* osx106.x86_64.xcconfig */, 276941FA14B161B70027798C /* osx107.i386.xcconfig */, 277A3FD214AE84C500A835E4 /* osx107.x86_64.xcconfig */, + 277EFE8917ED4F5D001D4A6A /* osx108.i386.xcconfig */, + 277EFE8B17ED4F63001D4A6A /* osx108.x86_64.xcconfig */, + 277EFE8D17ED5628001D4A6A /* supplemental.xcconfig */, ); path = xcconfig; sourceTree = "<group>"; }; + 277EFE8E17ED71A2001D4A6A /* Static Libraries (optional) */ = { + isa = PBXGroup; + children = ( + 277EFE9117ED7749001D4A6A /* libfaac.a */, + 277EFE9217ED799E001D4A6A /* libfdk-aac.a */, + 277EFE9017ED72A1001D4A6A /* libmkv.a */, + 277EFE8F17ED7296001D4A6A /* libmp4v2.a */, + ); + name = "Static Libraries (optional)"; + sourceTree = "<group>"; + }; 27D6C72314B1013400B785E4 /* Products (external) */ = { isa = PBXGroup; children = ( 271BA4C914B1238E00BC1D2C /* Support */, 271BA4C714B1236D00BC1D2C /* Static Libraries */, + 277EFE8E17ED71A2001D4A6A /* Static Libraries (optional) */, ); name = "Products (external)"; sourceTree = "<group>"; @@ -983,11 +1005,15 @@ "DEBUG=1", "$(inherited)", ); - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = ( + "-filelist", + "$(EXTERNAL_BUILD)/macosx/osl.filelist.txt", + ); SHARED_PRECOMPS_DIR = "$(CONFIGURATION_TEMP_DIR)/PrecompiledHeaders"; STRIP_INSTALLED_PRODUCT = NO; }; @@ -1006,11 +1032,15 @@ EXTERNAL_SRC = ..; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = ( + "-filelist", + "$(EXTERNAL_BUILD)/macosx/osl.filelist.txt", + ); SHARED_PRECOMPS_DIR = "$(CONFIGURATION_TEMP_DIR)/PrecompiledHeaders"; STRIP_INSTALLED_PRODUCT = YES; }; diff --git a/macosx/module.defs b/macosx/module.defs index 39edaa405..e9cbc8636 100644 --- a/macosx/module.defs +++ b/macosx/module.defs @@ -7,10 +7,12 @@ MACOSX.build/ = $(BUILD/)macosx/ MACOSX.m4.in = $(wildcard $(MACOSX.src/)*.m4) MACOSX.m4.out = $(MACOSX.m4.in:$(MACOSX.src/)%.m4=$(MACOSX.build/)%) +MACOSX.osl.filelist = $(MACOSX.build/)osl.filelist.txt + ############################################################################### BUILD.out += $(MACOSX.m4.out) -BUILD.out += $(MACOSX.m4.wc.out) +BUILD.out += $(MACOSX.osl.filelist) ############################################################################### @@ -26,25 +28,8 @@ MACOSX.map.g.std = debug MACOSX.map.g.max = debug ifeq (1,$(FEATURE.opencl)) -MACOSX.extra_cflags = OTHER_CFLAGS='-DUSE_OPENCL' -endif - -ifeq (1,$(FEATURE.fdk_aac)) - extra_libs += $(abspath $(BUILD))/contrib/lib/libfdk-aac.a -endif - -ifeq (1,$(FEATURE.faac)) - extra_libs += $(abspath $(BUILD))/contrib/lib/libfaac.a -endif - -ifeq (1,$(FEATURE.mp4v2)) - extra_libs += $(abspath $(BUILD))/contrib/lib/libmp4v2.a -endif - -ifeq (1,$(FEATURE.libmkv)) - extra_libs += $(abspath $(BUILD))/contrib/lib/libmkv.a + MACOSX.extra_cflags = OTHER_CFLAGS='-DUSE_OPENCL' endif -MACOSX.extra_ldflags = OTHER_LDFLAGS='$(extra_libs)' ## xcconfig: must be one of macosx/xcconfig/*.xcconfig MACOSX.xcconfig = $(foreach x,$(XCODE.xcconfig),-xcconfig $(MACOSX.src/)xcconfig/$(x)) @@ -76,6 +61,5 @@ MACOSX.XCODE = $(strip \ EXTERNAL_VARS='$(-*-command-variables-*-)' \ \ $(MACOSX.extra_cflags) \ - $(MACOSX.extra_ldflags) \ \ $(2) ) diff --git a/macosx/module.rules b/macosx/module.rules index 6ee6c0019..a34b19166 100644 --- a/macosx/module.rules +++ b/macosx/module.rules @@ -1,15 +1,23 @@ $(eval $(call import.MODULE.rules,MACOSX)) macosx.build: $(MACOSX.m4.out) +macosx.build: $(MACOSX.osl.filelist) macosx.clean: $(RM.exe) -f $(MACOSX.m4.out) + $(RM.exe) -f $(MACOSX.osl.filelist) $(MACOSX.m4.out): $(BUILD/)project/handbrake.m4 $(MACOSX.m4.out): | $(dir $(MACOSX.m4.out)) $(MACOSX.m4.out): $(MACOSX.build/)%: $(MACOSX.src/)%.m4 $(M4.exe) -Iproject $< > $@ +$(MACOSX.osl.filelist): | $(dir $(MACOSX.osl.filelist)) +$(MACOSX.osl.filelist): $(BUILD/)GNUmakefile + @echo "creating $@" + @> $@ + $(foreach i,$(foreach m,$(MODULES.NAMES),$($m.OSL.files)),$(call fn.PRINTLN,@echo $i >> $@)) + ############################################################################### clean: macosx.clean diff --git a/macosx/xcconfig/base/os.osx108.xcconfig b/macosx/xcconfig/base/os.osx108.xcconfig new file mode 100644 index 000000000..6da71a91f --- /dev/null +++ b/macosx/xcconfig/base/os.osx108.xcconfig @@ -0,0 +1,2 @@ +SDKROOT = macosx10.8 +MACOSX_DEPLOYMENT_TARGET = 10.8 diff --git a/macosx/xcconfig/native.xcconfig b/macosx/xcconfig/native.xcconfig index d88c8c44f..c110fc712 100644 --- a/macosx/xcconfig/native.xcconfig +++ b/macosx/xcconfig/native.xcconfig @@ -1,2 +1,3 @@ #include "base/arch.native.xcconfig" EXTERNAL_XCCONFIG = native +#include "supplemental.xcconfig" diff --git a/macosx/xcconfig/osx108.i386.xcconfig b/macosx/xcconfig/osx108.i386.xcconfig new file mode 100644 index 000000000..d3dcc668c --- /dev/null +++ b/macosx/xcconfig/osx108.i386.xcconfig @@ -0,0 +1,3 @@ +#include "base/os.osx108.xcconfig" +#include "base/arch.i386.xcconfig" +EXTERNAL_XCCONFIG = osx108.i386 diff --git a/macosx/xcconfig/osx108.x86_64.xcconfig b/macosx/xcconfig/osx108.x86_64.xcconfig new file mode 100644 index 000000000..4e602e8ab --- /dev/null +++ b/macosx/xcconfig/osx108.x86_64.xcconfig @@ -0,0 +1,3 @@ +#include "base/os.osx108.xcconfig" +#include "base/arch.x86_64.xcconfig" +EXTERNAL_XCCONFIG = osx108.x86_64 diff --git a/macosx/xcconfig/supplemental.xcconfig b/macosx/xcconfig/supplemental.xcconfig new file mode 100644 index 000000000..a92536f8d --- /dev/null +++ b/macosx/xcconfig/supplemental.xcconfig @@ -0,0 +1,4 @@ +// ## THIS FILE IS INTENDED FOR LOCAL WORKSPACE ONLY. +// ## THIS FILE SHOULD NEVER BE COMMITTED TO REPOSITORY WITH UNCOMMENTED LINES. + +// EXTERNAL_CONFIGURE = --disable-mp4v2 --disable-mkv diff --git a/make/include/function.defs b/make/include/function.defs index 5bf5aaa89..3be6a73e5 100644 --- a/make/include/function.defs +++ b/make/include/function.defs @@ -17,3 +17,8 @@ fn.ARGS = $(strip $(foreach a,$(2), \ fn.VARS = $(foreach v,$($(1).vars),$(v)="$($(1).vars.$(v))") fn.TARGET = $(TARGET.$(2).prefix)$(1)$(TARGET.$(2).suffix)$(TARGET.$(2).ext) + +define fn.PRINTLN +$(1) + +endef diff --git a/make/xcodemake b/make/xcodemake index a5950811b..f3aa4e6ae 100755 --- a/make/xcodemake +++ b/make/xcodemake @@ -106,15 +106,21 @@ if [ -n "$reconfigure" ]; then driver="--xcode-driver=$EXTERNAL_DRIVER" fi + ## determine which compiler to use based on Xcode environment (project). case "$GCC_VERSION" in com.apple.compilers.llvmgcc42) - gcc="--gcc=$DEVELOPER_BIN_DIR/llvm-gcc-4.2" + gcc="--gcc=`$DEVELOPER_BIN_DIR/xcodebuild -find-executable llvm-gcc-4.2`" ;; com.apple.compilers.llvm.clang.1_0) - gcc="--gcc=$DEVELOPER_BIN_DIR/clang" + gcc="--gcc=`$DEVELOPER_BIN_DIR/xcodebuild -find-executable clang`" ;; *) - gcc= + echo "*********************************************************************" + echo "***" + echo "*** ERROR: unexpected value for GCC_VERSION: $GCC_VERSION" + echo "***" + echo "*********************************************************************" + exit 1 ;; esac @@ -145,6 +151,14 @@ if [ -n "$reconfigure" ]; then minver= fi + ## pickup user setting from Xcode IDE and avoid recursion + if [ -n "$EXTERNAL_CONFIGURE" ]; then + extconf="$EXTERNAL_CONFIGURE" + else + extconf= + fi + EXTERNAL_CONFIGURE= + ## invoke configure with (hidden) option which indicates conf performed by xcode (set -ex; $EXTERNAL_SRC/configure --force \ $EXTERNAL_CONF_ARGS \ @@ -152,7 +166,7 @@ if [ -n "$reconfigure" ]; then $driver \ --xcode-symroot="$SYMROOT" \ --xcode-config="$EXTERNAL_XCCONFIG" \ - $gcc $arch $debug $sysroot $minver) + $gcc $arch $debug $sysroot $minver $extconf) [ $? -ne 0 ] && exit 1 fi diff --git a/test/module.defs b/test/module.defs index b7c824cf9..e85ba838a 100644 --- a/test/module.defs +++ b/test/module.defs @@ -20,25 +20,10 @@ TEST.GCC.l = \ bluray xml2 bz2 z ifeq (1,$(FEATURE.qsv)) - TEST.GCC.l += mfx TEST.GCC.D += USE_QSV HAVE_THREADS=1 endif -ifeq (1,$(FEATURE.fdk_aac)) -TEST.GCC.l += fdk-aac -endif - -ifeq (1,$(FEATURE.faac)) -TEST.GCC.l += faac -endif - -ifeq (1,$(FEATURE.mp4v2)) -TEST.GCC.l += mp4v2 -endif - -ifeq (1,$(FEATURE.libmkv)) -TEST.GCC.l += mkv -endif +TEST.GCC.l += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs)) TEST.install.exe = $(DESTDIR)$(PREFIX/)bin/$(notdir $(TEST.exe)) |