4904
|
1 /*
|
|
2 * Cyril Comparon, Larbi Joubala, Resonate-MP4 2009
|
|
3 *
|
|
4 * This file is part of FFmpeg.
|
|
5 *
|
|
6 * FFmpeg is free software; you can redistribute it and/or
|
|
7 * modify it under the terms of the GNU Lesser General Public
|
|
8 * License as published by the Free Software Foundation; either
|
|
9 * version 2.1 of the License, or (at your option) any later version.
|
|
10 *
|
|
11 * FFmpeg is distributed in the hope that it will be useful,
|
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 * Lesser General Public License for more details.
|
|
15 *
|
|
16 * You should have received a copy of the GNU Lesser General Public
|
|
17 * License along with FFmpeg; if not, write to the Free Software
|
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19 */
|
|
20
|
|
21 #include "avlanguage.h"
|
|
22 #include "libavutil/avstring.h"
|
|
23 #include <stdlib.h>
|
|
24 #include <stdint.h>
|
|
25 #include <string.h>
|
|
26
|
|
27 typedef struct LangEntry {
|
|
28 const char str[4];
|
4905
|
29 uint16_t next_equivalent;
|
4904
|
30 } LangEntry;
|
|
31
|
4905
|
32 const uint16_t lang_table_counts[] = { 484, 20, 184 };
|
|
33 const uint16_t lang_table_offsets[] = { 0, 484, 504 };
|
4904
|
34
|
4905
|
35 static LangEntry lang_table[] = {
|
4904
|
36 /*----- AV_LANG_ISO639_2_BIBL entries (484) -----*/
|
|
37 /*0000*/ { "aar", 504 },
|
|
38 /*0001*/ { "abk", 505 },
|
|
39 /*0002*/ { "ace", 2 },
|
|
40 /*0003*/ { "ach", 3 },
|
|
41 /*0004*/ { "ada", 4 },
|
|
42 /*0005*/ { "ady", 5 },
|
|
43 /*0006*/ { "afa", 6 },
|
|
44 /*0007*/ { "afh", 7 },
|
|
45 /*0008*/ { "afr", 507 },
|
|
46 /*0009*/ { "ain", 9 },
|
|
47 /*0010*/ { "aka", 508 },
|
|
48 /*0011*/ { "akk", 11 },
|
|
49 /*0012*/ { "alb", 502 },
|
|
50 /*0013*/ { "ale", 13 },
|
|
51 /*0014*/ { "alg", 14 },
|
|
52 /*0015*/ { "alt", 15 },
|
|
53 /*0016*/ { "amh", 509 },
|
|
54 /*0017*/ { "ang", 17 },
|
|
55 /*0018*/ { "anp", 18 },
|
|
56 /*0019*/ { "apa", 19 },
|
|
57 /*0020*/ { "ara", 511 },
|
|
58 /*0021*/ { "arc", 21 },
|
|
59 /*0022*/ { "arg", 510 },
|
|
60 /*0023*/ { "arm", 492 },
|
|
61 /*0024*/ { "arn", 24 },
|
|
62 /*0025*/ { "arp", 25 },
|
|
63 /*0026*/ { "art", 26 },
|
|
64 /*0027*/ { "arw", 27 },
|
|
65 /*0028*/ { "asm", 512 },
|
|
66 /*0029*/ { "ast", 29 },
|
|
67 /*0030*/ { "ath", 30 },
|
|
68 /*0031*/ { "aus", 31 },
|
|
69 /*0032*/ { "ava", 513 },
|
|
70 /*0033*/ { "ave", 506 },
|
|
71 /*0034*/ { "awa", 34 },
|
|
72 /*0035*/ { "aym", 514 },
|
|
73 /*0036*/ { "aze", 515 },
|
|
74 /*0037*/ { "bad", 37 },
|
|
75 /*0038*/ { "bai", 38 },
|
|
76 /*0039*/ { "bak", 516 },
|
|
77 /*0040*/ { "bal", 40 },
|
|
78 /*0041*/ { "bam", 521 },
|
|
79 /*0042*/ { "ban", 42 },
|
|
80 /*0043*/ { "baq", 489 },
|
|
81 /*0044*/ { "bas", 44 },
|
|
82 /*0045*/ { "bat", 45 },
|
|
83 /*0046*/ { "bej", 46 },
|
|
84 /*0047*/ { "bel", 517 },
|
|
85 /*0048*/ { "bem", 48 },
|
|
86 /*0049*/ { "ben", 522 },
|
|
87 /*0050*/ { "ber", 50 },
|
|
88 /*0051*/ { "bho", 51 },
|
|
89 /*0052*/ { "bih", 519 },
|
|
90 /*0053*/ { "bik", 53 },
|
|
91 /*0054*/ { "bin", 54 },
|
|
92 /*0055*/ { "bis", 520 },
|
|
93 /*0056*/ { "bla", 56 },
|
|
94 /*0057*/ { "bnt", 57 },
|
|
95 /*0058*/ { "bos", 525 },
|
|
96 /*0059*/ { "bra", 59 },
|
|
97 /*0060*/ { "bre", 524 },
|
|
98 /*0061*/ { "btk", 61 },
|
|
99 /*0062*/ { "bua", 62 },
|
|
100 /*0063*/ { "bug", 63 },
|
|
101 /*0064*/ { "bul", 518 },
|
|
102 /*0065*/ { "bur", 498 },
|
|
103 /*0066*/ { "byn", 66 },
|
|
104 /*0067*/ { "cad", 67 },
|
|
105 /*0068*/ { "cai", 68 },
|
|
106 /*0069*/ { "car", 69 },
|
|
107 /*0070*/ { "cat", 526 },
|
|
108 /*0071*/ { "cau", 71 },
|
|
109 /*0072*/ { "ceb", 72 },
|
|
110 /*0073*/ { "cel", 73 },
|
|
111 /*0074*/ { "cha", 528 },
|
|
112 /*0075*/ { "chb", 75 },
|
|
113 /*0076*/ { "che", 527 },
|
|
114 /*0077*/ { "chg", 77 },
|
|
115 /*0078*/ { "chi", 503 },
|
|
116 /*0079*/ { "chk", 79 },
|
|
117 /*0080*/ { "chm", 80 },
|
|
118 /*0081*/ { "chn", 81 },
|
|
119 /*0082*/ { "cho", 82 },
|
|
120 /*0083*/ { "chp", 83 },
|
|
121 /*0084*/ { "chr", 84 },
|
|
122 /*0085*/ { "chu", 532 },
|
|
123 /*0086*/ { "chv", 533 },
|
|
124 /*0087*/ { "chy", 87 },
|
|
125 /*0088*/ { "cmc", 88 },
|
|
126 /*0089*/ { "cop", 89 },
|
|
127 /*0090*/ { "cor", 593 },
|
|
128 /*0091*/ { "cos", 529 },
|
|
129 /*0092*/ { "cpe", 92 },
|
|
130 /*0093*/ { "cpf", 93 },
|
|
131 /*0094*/ { "cpp", 94 },
|
|
132 /*0095*/ { "cre", 530 },
|
|
133 /*0096*/ { "crh", 96 },
|
|
134 /*0097*/ { "crp", 97 },
|
|
135 /*0098*/ { "csb", 98 },
|
|
136 /*0099*/ { "cus", 99 },
|
|
137 /*0100*/ { "cze", 485 },
|
|
138 /*0101*/ { "dak", 101 },
|
|
139 /*0102*/ { "dan", 535 },
|
|
140 /*0103*/ { "dar", 103 },
|
|
141 /*0104*/ { "day", 104 },
|
|
142 /*0105*/ { "del", 105 },
|
|
143 /*0106*/ { "den", 106 },
|
|
144 /*0107*/ { "dgr", 107 },
|
|
145 /*0108*/ { "din", 108 },
|
|
146 /*0109*/ { "div", 537 },
|
|
147 /*0110*/ { "doi", 110 },
|
|
148 /*0111*/ { "dra", 111 },
|
|
149 /*0112*/ { "dsb", 112 },
|
|
150 /*0113*/ { "dua", 113 },
|
|
151 /*0114*/ { "dum", 114 },
|
|
152 /*0115*/ { "dut", 499 },
|
|
153 /*0116*/ { "dyu", 116 },
|
|
154 /*0117*/ { "dzo", 538 },
|
|
155 /*0118*/ { "efi", 118 },
|
|
156 /*0119*/ { "egy", 119 },
|
|
157 /*0120*/ { "eka", 120 },
|
|
158 /*0121*/ { "elx", 121 },
|
|
159 /*0122*/ { "eng", 541 },
|
|
160 /*0123*/ { "enm", 123 },
|
|
161 /*0124*/ { "epo", 542 },
|
|
162 /*0125*/ { "est", 544 },
|
|
163 /*0126*/ { "ewe", 539 },
|
|
164 /*0127*/ { "ewo", 127 },
|
|
165 /*0128*/ { "fan", 128 },
|
|
166 /*0129*/ { "fao", 550 },
|
|
167 /*0130*/ { "fat", 130 },
|
|
168 /*0131*/ { "fij", 549 },
|
|
169 /*0132*/ { "fil", 132 },
|
|
170 /*0133*/ { "fin", 548 },
|
|
171 /*0134*/ { "fiu", 134 },
|
|
172 /*0135*/ { "fon", 135 },
|
|
173 /*0136*/ { "fre", 491 },
|
|
174 /*0137*/ { "frm", 137 },
|
|
175 /*0138*/ { "fro", 138 },
|
|
176 /*0139*/ { "frr", 139 },
|
|
177 /*0140*/ { "frs", 140 },
|
|
178 /*0141*/ { "fry", 552 },
|
|
179 /*0142*/ { "ful", 547 },
|
|
180 /*0143*/ { "fur", 143 },
|
|
181 /*0144*/ { "gaa", 144 },
|
|
182 /*0145*/ { "gay", 145 },
|
|
183 /*0146*/ { "gba", 146 },
|
|
184 /*0147*/ { "gem", 147 },
|
|
185 /*0148*/ { "geo", 494 },
|
|
186 /*0149*/ { "ger", 487 },
|
|
187 /*0150*/ { "gez", 150 },
|
|
188 /*0151*/ { "gil", 151 },
|
|
189 /*0152*/ { "gla", 554 },
|
|
190 /*0153*/ { "gle", 553 },
|
|
191 /*0154*/ { "glg", 555 },
|
|
192 /*0155*/ { "glv", 558 },
|
|
193 /*0156*/ { "gmh", 156 },
|
|
194 /*0157*/ { "goh", 157 },
|
|
195 /*0158*/ { "gon", 158 },
|
|
196 /*0159*/ { "gor", 159 },
|
|
197 /*0160*/ { "got", 160 },
|
|
198 /*0161*/ { "grb", 161 },
|
|
199 /*0162*/ { "grc", 162 },
|
|
200 /*0163*/ { "gre", 488 },
|
|
201 /*0164*/ { "grn", 556 },
|
|
202 /*0165*/ { "gsw", 165 },
|
|
203 /*0166*/ { "guj", 557 },
|
|
204 /*0167*/ { "gwi", 167 },
|
|
205 /*0168*/ { "hai", 168 },
|
|
206 /*0169*/ { "hat", 564 },
|
|
207 /*0170*/ { "hau", 559 },
|
|
208 /*0171*/ { "haw", 171 },
|
|
209 /*0172*/ { "heb", 560 },
|
|
210 /*0173*/ { "her", 567 },
|
|
211 /*0174*/ { "hil", 174 },
|
|
212 /*0175*/ { "him", 175 },
|
|
213 /*0176*/ { "hin", 561 },
|
|
214 /*0177*/ { "hit", 177 },
|
|
215 /*0178*/ { "hmn", 178 },
|
|
216 /*0179*/ { "hmo", 562 },
|
|
217 /*0180*/ { "hrv", 563 },
|
|
218 /*0181*/ { "hsb", 181 },
|
|
219 /*0182*/ { "hun", 565 },
|
|
220 /*0183*/ { "hup", 183 },
|
|
221 /*0184*/ { "iba", 184 },
|
|
222 /*0185*/ { "ibo", 571 },
|
|
223 /*0186*/ { "ice", 493 },
|
|
224 /*0187*/ { "ido", 574 },
|
|
225 /*0188*/ { "iii", 572 },
|
|
226 /*0189*/ { "ijo", 189 },
|
|
227 /*0190*/ { "iku", 577 },
|
|
228 /*0191*/ { "ile", 570 },
|
|
229 /*0192*/ { "ilo", 192 },
|
|
230 /*0193*/ { "ina", 568 },
|
|
231 /*0194*/ { "inc", 194 },
|
|
232 /*0195*/ { "ind", 569 },
|
|
233 /*0196*/ { "ine", 196 },
|
|
234 /*0197*/ { "inh", 197 },
|
|
235 /*0198*/ { "ipk", 573 },
|
|
236 /*0199*/ { "ira", 199 },
|
|
237 /*0200*/ { "iro", 200 },
|
|
238 /*0201*/ { "ita", 576 },
|
|
239 /*0202*/ { "jav", 579 },
|
|
240 /*0203*/ { "jbo", 203 },
|
|
241 /*0204*/ { "jpn", 578 },
|
|
242 /*0205*/ { "jpr", 205 },
|
|
243 /*0206*/ { "jrb", 206 },
|
|
244 /*0207*/ { "kaa", 207 },
|
|
245 /*0208*/ { "kab", 208 },
|
|
246 /*0209*/ { "kac", 209 },
|
|
247 /*0210*/ { "kal", 585 },
|
|
248 /*0211*/ { "kam", 211 },
|
|
249 /*0212*/ { "kan", 587 },
|
|
250 /*0213*/ { "kar", 213 },
|
|
251 /*0214*/ { "kas", 590 },
|
|
252 /*0215*/ { "kau", 589 },
|
|
253 /*0216*/ { "kaw", 216 },
|
|
254 /*0217*/ { "kaz", 584 },
|
|
255 /*0218*/ { "kbd", 218 },
|
|
256 /*0219*/ { "kha", 219 },
|
|
257 /*0220*/ { "khi", 220 },
|
|
258 /*0221*/ { "khm", 586 },
|
|
259 /*0222*/ { "kho", 222 },
|
|
260 /*0223*/ { "kik", 582 },
|
|
261 /*0224*/ { "kin", 640 },
|
|
262 /*0225*/ { "kir", 594 },
|
|
263 /*0226*/ { "kmb", 226 },
|
|
264 /*0227*/ { "kok", 227 },
|
|
265 /*0228*/ { "kom", 592 },
|
|
266 /*0229*/ { "kon", 581 },
|
|
267 /*0230*/ { "kor", 588 },
|
|
268 /*0231*/ { "kos", 231 },
|
|
269 /*0232*/ { "kpe", 232 },
|
|
270 /*0233*/ { "krc", 233 },
|
|
271 /*0234*/ { "krl", 234 },
|
|
272 /*0235*/ { "kro", 235 },
|
|
273 /*0236*/ { "kru", 236 },
|
|
274 /*0237*/ { "kua", 583 },
|
|
275 /*0238*/ { "kum", 238 },
|
|
276 /*0239*/ { "kur", 591 },
|
|
277 /*0240*/ { "kut", 240 },
|
|
278 /*0241*/ { "lad", 241 },
|
|
279 /*0242*/ { "lah", 242 },
|
|
280 /*0243*/ { "lam", 243 },
|
|
281 /*0244*/ { "lao", 600 },
|
|
282 /*0245*/ { "lat", 595 },
|
|
283 /*0246*/ { "lav", 603 },
|
|
284 /*0247*/ { "lez", 247 },
|
|
285 /*0248*/ { "lim", 598 },
|
|
286 /*0249*/ { "lin", 599 },
|
|
287 /*0250*/ { "lit", 601 },
|
|
288 /*0251*/ { "lol", 251 },
|
|
289 /*0252*/ { "loz", 252 },
|
|
290 /*0253*/ { "ltz", 596 },
|
|
291 /*0254*/ { "lua", 254 },
|
|
292 /*0255*/ { "lub", 602 },
|
|
293 /*0256*/ { "lug", 597 },
|
|
294 /*0257*/ { "lui", 257 },
|
|
295 /*0258*/ { "lun", 258 },
|
|
296 /*0259*/ { "luo", 259 },
|
|
297 /*0260*/ { "lus", 260 },
|
|
298 /*0261*/ { "mac", 495 },
|
|
299 /*0262*/ { "mad", 262 },
|
|
300 /*0263*/ { "mag", 263 },
|
|
301 /*0264*/ { "mah", 605 },
|
|
302 /*0265*/ { "mai", 265 },
|
|
303 /*0266*/ { "mak", 266 },
|
|
304 /*0267*/ { "mal", 608 },
|
|
305 /*0268*/ { "man", 268 },
|
|
306 /*0269*/ { "mao", 496 },
|
|
307 /*0270*/ { "map", 270 },
|
|
308 /*0271*/ { "mar", 610 },
|
|
309 /*0272*/ { "mas", 272 },
|
|
310 /*0273*/ { "may", 497 },
|
|
311 /*0274*/ { "mdf", 274 },
|
|
312 /*0275*/ { "mdr", 275 },
|
|
313 /*0276*/ { "men", 276 },
|
|
314 /*0277*/ { "mga", 277 },
|
|
315 /*0278*/ { "mic", 278 },
|
|
316 /*0279*/ { "min", 279 },
|
|
317 /*0280*/ { "mis", 280 },
|
|
318 /*0281*/ { "mkh", 281 },
|
|
319 /*0282*/ { "mlg", 604 },
|
|
320 /*0283*/ { "mlt", 612 },
|
|
321 /*0284*/ { "mnc", 284 },
|
|
322 /*0285*/ { "mni", 285 },
|
|
323 /*0286*/ { "mno", 286 },
|
|
324 /*0287*/ { "moh", 287 },
|
|
325 /*0288*/ { "mon", 609 },
|
|
326 /*0289*/ { "mos", 289 },
|
|
327 /*0290*/ { "mul", 290 },
|
|
328 /*0291*/ { "mun", 291 },
|
|
329 /*0292*/ { "mus", 292 },
|
|
330 /*0293*/ { "mwl", 293 },
|
|
331 /*0294*/ { "mwr", 294 },
|
|
332 /*0295*/ { "myn", 295 },
|
|
333 /*0296*/ { "myv", 296 },
|
|
334 /*0297*/ { "nah", 297 },
|
|
335 /*0298*/ { "nai", 298 },
|
|
336 /*0299*/ { "nap", 299 },
|
|
337 /*0300*/ { "nau", 614 },
|
|
338 /*0301*/ { "nav", 623 },
|
|
339 /*0302*/ { "nbl", 622 },
|
|
340 /*0303*/ { "nde", 616 },
|
|
341 /*0304*/ { "ndo", 618 },
|
|
342 /*0305*/ { "nds", 305 },
|
|
343 /*0306*/ { "nep", 617 },
|
|
344 /*0307*/ { "new", 307 },
|
|
345 /*0308*/ { "nia", 308 },
|
|
346 /*0309*/ { "nic", 309 },
|
|
347 /*0310*/ { "niu", 310 },
|
|
348 /*0311*/ { "nno", 620 },
|
|
349 /*0312*/ { "nob", 615 },
|
|
350 /*0313*/ { "nog", 313 },
|
|
351 /*0314*/ { "non", 314 },
|
|
352 /*0315*/ { "nor", 621 },
|
|
353 /*0316*/ { "nqo", 316 },
|
|
354 /*0317*/ { "nso", 317 },
|
|
355 /*0318*/ { "nub", 318 },
|
|
356 /*0319*/ { "nwc", 319 },
|
|
357 /*0320*/ { "nya", 624 },
|
|
358 /*0321*/ { "nym", 321 },
|
|
359 /*0322*/ { "nyn", 322 },
|
|
360 /*0323*/ { "nyo", 323 },
|
|
361 /*0324*/ { "nzi", 324 },
|
|
362 /*0325*/ { "oci", 625 },
|
|
363 /*0326*/ { "oji", 626 },
|
|
364 /*0327*/ { "ori", 628 },
|
|
365 /*0328*/ { "orm", 627 },
|
|
366 /*0329*/ { "osa", 329 },
|
|
367 /*0330*/ { "oss", 629 },
|
|
368 /*0331*/ { "ota", 331 },
|
|
369 /*0332*/ { "oto", 332 },
|
|
370 /*0333*/ { "paa", 333 },
|
|
371 /*0334*/ { "pag", 334 },
|
|
372 /*0335*/ { "pal", 335 },
|
|
373 /*0336*/ { "pam", 336 },
|
|
374 /*0337*/ { "pan", 630 },
|
|
375 /*0338*/ { "pap", 338 },
|
|
376 /*0339*/ { "pau", 339 },
|
|
377 /*0340*/ { "peo", 340 },
|
|
378 /*0341*/ { "per", 490 },
|
|
379 /*0342*/ { "phi", 342 },
|
|
380 /*0343*/ { "phn", 343 },
|
|
381 /*0344*/ { "pli", 631 },
|
|
382 /*0345*/ { "pol", 632 },
|
|
383 /*0346*/ { "pon", 346 },
|
|
384 /*0347*/ { "por", 634 },
|
|
385 /*0348*/ { "pra", 348 },
|
|
386 /*0349*/ { "pro", 349 },
|
|
387 /*0350*/ { "pus", 633 },
|
|
388 /*0351*/ { "que", 635 },
|
|
389 /*0352*/ { "raj", 352 },
|
|
390 /*0353*/ { "rap", 353 },
|
|
391 /*0354*/ { "rar", 354 },
|
|
392 /*0355*/ { "roa", 355 },
|
|
393 /*0356*/ { "roh", 636 },
|
|
394 /*0357*/ { "rom", 357 },
|
|
395 /*0358*/ { "rum", 500 },
|
|
396 /*0359*/ { "run", 637 },
|
|
397 /*0360*/ { "rup", 360 },
|
|
398 /*0361*/ { "rus", 639 },
|
|
399 /*0362*/ { "sad", 362 },
|
|
400 /*0363*/ { "sag", 645 },
|
|
401 /*0364*/ { "sah", 364 },
|
|
402 /*0365*/ { "sai", 365 },
|
|
403 /*0366*/ { "sal", 366 },
|
|
404 /*0367*/ { "sam", 367 },
|
|
405 /*0368*/ { "san", 641 },
|
|
406 /*0369*/ { "sas", 369 },
|
|
407 /*0370*/ { "sat", 370 },
|
|
408 /*0371*/ { "scn", 371 },
|
|
409 /*0372*/ { "sco", 372 },
|
|
410 /*0373*/ { "sel", 373 },
|
|
411 /*0374*/ { "sem", 374 },
|
|
412 /*0375*/ { "sga", 375 },
|
|
413 /*0376*/ { "sgn", 376 },
|
|
414 /*0377*/ { "shn", 377 },
|
|
415 /*0378*/ { "sid", 378 },
|
|
416 /*0379*/ { "sin", 646 },
|
|
417 /*0380*/ { "sio", 380 },
|
|
418 /*0381*/ { "sit", 381 },
|
|
419 /*0382*/ { "sla", 382 },
|
|
420 /*0383*/ { "slo", 501 },
|
|
421 /*0384*/ { "slv", 648 },
|
|
422 /*0385*/ { "sma", 385 },
|
|
423 /*0386*/ { "sme", 644 },
|
|
424 /*0387*/ { "smi", 387 },
|
|
425 /*0388*/ { "smj", 388 },
|
|
426 /*0389*/ { "smn", 389 },
|
|
427 /*0390*/ { "smo", 649 },
|
|
428 /*0391*/ { "sms", 391 },
|
|
429 /*0392*/ { "sna", 650 },
|
|
430 /*0393*/ { "snd", 643 },
|
|
431 /*0394*/ { "snk", 394 },
|
|
432 /*0395*/ { "sog", 395 },
|
|
433 /*0396*/ { "som", 651 },
|
|
434 /*0397*/ { "son", 397 },
|
|
435 /*0398*/ { "sot", 655 },
|
|
436 /*0399*/ { "spa", 543 },
|
|
437 /*0400*/ { "srd", 642 },
|
|
438 /*0401*/ { "srn", 401 },
|
|
439 /*0402*/ { "srp", 653 },
|
|
440 /*0403*/ { "srr", 403 },
|
|
441 /*0404*/ { "ssa", 404 },
|
|
442 /*0405*/ { "ssw", 654 },
|
|
443 /*0406*/ { "suk", 406 },
|
|
444 /*0407*/ { "sun", 656 },
|
|
445 /*0408*/ { "sus", 408 },
|
|
446 /*0409*/ { "sux", 409 },
|
|
447 /*0410*/ { "swa", 658 },
|
|
448 /*0411*/ { "swe", 657 },
|
|
449 /*0412*/ { "syc", 412 },
|
|
450 /*0413*/ { "syr", 413 },
|
|
451 /*0414*/ { "tah", 672 },
|
|
452 /*0415*/ { "tai", 415 },
|
|
453 /*0416*/ { "tam", 659 },
|
|
454 /*0417*/ { "tat", 670 },
|
|
455 /*0418*/ { "tel", 660 },
|
|
456 /*0419*/ { "tem", 419 },
|
|
457 /*0420*/ { "ter", 420 },
|
|
458 /*0421*/ { "tet", 421 },
|
|
459 /*0422*/ { "tgk", 661 },
|
|
460 /*0423*/ { "tgl", 665 },
|
|
461 /*0424*/ { "tha", 662 },
|
|
462 /*0425*/ { "tib", 484 },
|
|
463 /*0426*/ { "tig", 426 },
|
|
464 /*0427*/ { "tir", 663 },
|
|
465 /*0428*/ { "tiv", 428 },
|
|
466 /*0429*/ { "tkl", 429 },
|
|
467 /*0430*/ { "tlh", 430 },
|
|
468 /*0431*/ { "tli", 431 },
|
|
469 /*0432*/ { "tmh", 432 },
|
|
470 /*0433*/ { "tog", 433 },
|
|
471 /*0434*/ { "ton", 667 },
|
|
472 /*0435*/ { "tpi", 435 },
|
|
473 /*0436*/ { "tsi", 436 },
|
|
474 /*0437*/ { "tsn", 666 },
|
|
475 /*0438*/ { "tso", 669 },
|
|
476 /*0439*/ { "tuk", 664 },
|
|
477 /*0440*/ { "tum", 440 },
|
|
478 /*0441*/ { "tup", 441 },
|
|
479 /*0442*/ { "tur", 668 },
|
|
480 /*0443*/ { "tut", 443 },
|
|
481 /*0444*/ { "tvl", 444 },
|
|
482 /*0445*/ { "twi", 671 },
|
|
483 /*0446*/ { "tyv", 446 },
|
|
484 /*0447*/ { "udm", 447 },
|
|
485 /*0448*/ { "uga", 448 },
|
|
486 /*0449*/ { "uig", 673 },
|
|
487 /*0450*/ { "ukr", 674 },
|
|
488 /*0451*/ { "umb", 451 },
|
|
489 /*0452*/ { "und", 452 },
|
|
490 /*0453*/ { "urd", 675 },
|
|
491 /*0454*/ { "uzb", 676 },
|
|
492 /*0455*/ { "vai", 455 },
|
|
493 /*0456*/ { "ven", 677 },
|
|
494 /*0457*/ { "vie", 678 },
|
|
495 /*0458*/ { "vol", 679 },
|
|
496 /*0459*/ { "vot", 459 },
|
|
497 /*0460*/ { "wak", 460 },
|
|
498 /*0461*/ { "wal", 461 },
|
|
499 /*0462*/ { "war", 462 },
|
|
500 /*0463*/ { "was", 463 },
|
|
501 /*0464*/ { "wel", 486 },
|
|
502 /*0465*/ { "wen", 465 },
|
|
503 /*0466*/ { "wln", 680 },
|
|
504 /*0467*/ { "wol", 681 },
|
|
505 /*0468*/ { "xal", 468 },
|
|
506 /*0469*/ { "xho", 682 },
|
|
507 /*0470*/ { "yao", 470 },
|
|
508 /*0471*/ { "yap", 471 },
|
|
509 /*0472*/ { "yid", 683 },
|
|
510 /*0473*/ { "yor", 684 },
|
|
511 /*0474*/ { "ypk", 474 },
|
|
512 /*0475*/ { "zap", 475 },
|
|
513 /*0476*/ { "zbl", 476 },
|
|
514 /*0477*/ { "zen", 477 },
|
|
515 /*0478*/ { "zha", 685 },
|
|
516 /*0479*/ { "znd", 479 },
|
|
517 /*0480*/ { "zul", 687 },
|
|
518 /*0481*/ { "zun", 481 },
|
|
519 /*0482*/ { "zxx", 482 },
|
|
520 /*0483*/ { "zza", 483 },
|
|
521 /*----- AV_LANG_ISO639_2_TERM entries (20) -----*/
|
|
522 /*0484*/ { "bod", 523 },
|
|
523 /*0485*/ { "ces", 531 },
|
|
524 /*0486*/ { "cym", 534 },
|
|
525 /*0487*/ { "deu", 536 },
|
|
526 /*0488*/ { "ell", 540 },
|
|
527 /*0489*/ { "eus", 545 },
|
|
528 /*0490*/ { "fas", 546 },
|
|
529 /*0491*/ { "fra", 551 },
|
|
530 /*0492*/ { "hye", 566 },
|
|
531 /*0493*/ { "isl", 575 },
|
|
532 /*0494*/ { "kat", 580 },
|
|
533 /*0495*/ { "mkd", 607 },
|
|
534 /*0496*/ { "mri", 606 },
|
|
535 /*0497*/ { "msa", 611 },
|
|
536 /*0498*/ { "mya", 613 },
|
|
537 /*0499*/ { "nld", 619 },
|
|
538 /*0500*/ { "ron", 638 },
|
|
539 /*0501*/ { "slk", 647 },
|
|
540 /*0502*/ { "sqi", 652 },
|
|
541 /*0503*/ { "zho", 686 },
|
|
542 /*----- AV_LANG_ISO639_1 entries (184) -----*/
|
|
543 /*0504*/ { "aa" , 0 },
|
|
544 /*0505*/ { "ab" , 1 },
|
|
545 /*0506*/ { "ae" , 33 },
|
|
546 /*0507*/ { "af" , 8 },
|
|
547 /*0508*/ { "ak" , 10 },
|
|
548 /*0509*/ { "am" , 16 },
|
|
549 /*0510*/ { "an" , 22 },
|
|
550 /*0511*/ { "ar" , 20 },
|
|
551 /*0512*/ { "as" , 28 },
|
|
552 /*0513*/ { "av" , 32 },
|
|
553 /*0514*/ { "ay" , 35 },
|
|
554 /*0515*/ { "az" , 36 },
|
|
555 /*0516*/ { "ba" , 39 },
|
|
556 /*0517*/ { "be" , 47 },
|
|
557 /*0518*/ { "bg" , 64 },
|
|
558 /*0519*/ { "bh" , 52 },
|
|
559 /*0520*/ { "bi" , 55 },
|
|
560 /*0521*/ { "bm" , 41 },
|
|
561 /*0522*/ { "bn" , 49 },
|
|
562 /*0523*/ { "bo" , 425 },
|
|
563 /*0524*/ { "br" , 60 },
|
|
564 /*0525*/ { "bs" , 58 },
|
|
565 /*0526*/ { "ca" , 70 },
|
|
566 /*0527*/ { "ce" , 76 },
|
|
567 /*0528*/ { "ch" , 74 },
|
|
568 /*0529*/ { "co" , 91 },
|
|
569 /*0530*/ { "cr" , 95 },
|
|
570 /*0531*/ { "cs" , 100 },
|
|
571 /*0532*/ { "cu" , 85 },
|
|
572 /*0533*/ { "cv" , 86 },
|
|
573 /*0534*/ { "cy" , 464 },
|
|
574 /*0535*/ { "da" , 102 },
|
|
575 /*0536*/ { "de" , 149 },
|
|
576 /*0537*/ { "dv" , 109 },
|
|
577 /*0538*/ { "dz" , 117 },
|
|
578 /*0539*/ { "ee" , 126 },
|
|
579 /*0540*/ { "el" , 163 },
|
|
580 /*0541*/ { "en" , 122 },
|
|
581 /*0542*/ { "eo" , 124 },
|
|
582 /*0543*/ { "es" , 399 },
|
|
583 /*0544*/ { "et" , 125 },
|
|
584 /*0545*/ { "eu" , 43 },
|
|
585 /*0546*/ { "fa" , 341 },
|
|
586 /*0547*/ { "ff" , 142 },
|
|
587 /*0548*/ { "fi" , 133 },
|
|
588 /*0549*/ { "fj" , 131 },
|
|
589 /*0550*/ { "fo" , 129 },
|
|
590 /*0551*/ { "fr" , 136 },
|
|
591 /*0552*/ { "fy" , 141 },
|
|
592 /*0553*/ { "ga" , 153 },
|
|
593 /*0554*/ { "gd" , 152 },
|
|
594 /*0555*/ { "gl" , 154 },
|
|
595 /*0556*/ { "gn" , 164 },
|
|
596 /*0557*/ { "gu" , 166 },
|
|
597 /*0558*/ { "gv" , 155 },
|
|
598 /*0559*/ { "ha" , 170 },
|
|
599 /*0560*/ { "he" , 172 },
|
|
600 /*0561*/ { "hi" , 176 },
|
|
601 /*0562*/ { "ho" , 179 },
|
|
602 /*0563*/ { "hr" , 180 },
|
|
603 /*0564*/ { "ht" , 169 },
|
|
604 /*0565*/ { "hu" , 182 },
|
|
605 /*0566*/ { "hy" , 23 },
|
|
606 /*0567*/ { "hz" , 173 },
|
|
607 /*0568*/ { "ia" , 193 },
|
|
608 /*0569*/ { "id" , 195 },
|
|
609 /*0570*/ { "ie" , 191 },
|
|
610 /*0571*/ { "ig" , 185 },
|
|
611 /*0572*/ { "ii" , 188 },
|
|
612 /*0573*/ { "ik" , 198 },
|
|
613 /*0574*/ { "io" , 187 },
|
|
614 /*0575*/ { "is" , 186 },
|
|
615 /*0576*/ { "it" , 201 },
|
|
616 /*0577*/ { "iu" , 190 },
|
|
617 /*0578*/ { "ja" , 204 },
|
|
618 /*0579*/ { "jv" , 202 },
|
|
619 /*0580*/ { "ka" , 148 },
|
|
620 /*0581*/ { "kg" , 229 },
|
|
621 /*0582*/ { "ki" , 223 },
|
|
622 /*0583*/ { "kj" , 237 },
|
|
623 /*0584*/ { "kk" , 217 },
|
|
624 /*0585*/ { "kl" , 210 },
|
|
625 /*0586*/ { "km" , 221 },
|
|
626 /*0587*/ { "kn" , 212 },
|
|
627 /*0588*/ { "ko" , 230 },
|
|
628 /*0589*/ { "kr" , 215 },
|
|
629 /*0590*/ { "ks" , 214 },
|
|
630 /*0591*/ { "ku" , 239 },
|
|
631 /*0592*/ { "kv" , 228 },
|
|
632 /*0593*/ { "kw" , 90 },
|
|
633 /*0594*/ { "ky" , 225 },
|
|
634 /*0595*/ { "la" , 245 },
|
|
635 /*0596*/ { "lb" , 253 },
|
|
636 /*0597*/ { "lg" , 256 },
|
|
637 /*0598*/ { "li" , 248 },
|
|
638 /*0599*/ { "ln" , 249 },
|
|
639 /*0600*/ { "lo" , 244 },
|
|
640 /*0601*/ { "lt" , 250 },
|
|
641 /*0602*/ { "lu" , 255 },
|
|
642 /*0603*/ { "lv" , 246 },
|
|
643 /*0604*/ { "mg" , 282 },
|
|
644 /*0605*/ { "mh" , 264 },
|
|
645 /*0606*/ { "mi" , 269 },
|
|
646 /*0607*/ { "mk" , 261 },
|
|
647 /*0608*/ { "ml" , 267 },
|
|
648 /*0609*/ { "mn" , 288 },
|
|
649 /*0610*/ { "mr" , 271 },
|
|
650 /*0611*/ { "ms" , 273 },
|
|
651 /*0612*/ { "mt" , 283 },
|
|
652 /*0613*/ { "my" , 65 },
|
|
653 /*0614*/ { "na" , 300 },
|
|
654 /*0615*/ { "nb" , 312 },
|
|
655 /*0616*/ { "nd" , 303 },
|
|
656 /*0617*/ { "ne" , 306 },
|
|
657 /*0618*/ { "ng" , 304 },
|
|
658 /*0619*/ { "nl" , 115 },
|
|
659 /*0620*/ { "nn" , 311 },
|
|
660 /*0621*/ { "no" , 315 },
|
|
661 /*0622*/ { "nr" , 302 },
|
|
662 /*0623*/ { "nv" , 301 },
|
|
663 /*0624*/ { "ny" , 320 },
|
|
664 /*0625*/ { "oc" , 325 },
|
|
665 /*0626*/ { "oj" , 326 },
|
|
666 /*0627*/ { "om" , 328 },
|
|
667 /*0628*/ { "or" , 327 },
|
|
668 /*0629*/ { "os" , 330 },
|
|
669 /*0630*/ { "pa" , 337 },
|
|
670 /*0631*/ { "pi" , 344 },
|
|
671 /*0632*/ { "pl" , 345 },
|
|
672 /*0633*/ { "ps" , 350 },
|
|
673 /*0634*/ { "pt" , 347 },
|
|
674 /*0635*/ { "qu" , 351 },
|
|
675 /*0636*/ { "rm" , 356 },
|
|
676 /*0637*/ { "rn" , 359 },
|
|
677 /*0638*/ { "ro" , 358 },
|
|
678 /*0639*/ { "ru" , 361 },
|
|
679 /*0640*/ { "rw" , 224 },
|
|
680 /*0641*/ { "sa" , 368 },
|
|
681 /*0642*/ { "sc" , 400 },
|
|
682 /*0643*/ { "sd" , 393 },
|
|
683 /*0644*/ { "se" , 386 },
|
|
684 /*0645*/ { "sg" , 363 },
|
|
685 /*0646*/ { "si" , 379 },
|
|
686 /*0647*/ { "sk" , 383 },
|
|
687 /*0648*/ { "sl" , 384 },
|
|
688 /*0649*/ { "sm" , 390 },
|
|
689 /*0650*/ { "sn" , 392 },
|
|
690 /*0651*/ { "so" , 396 },
|
|
691 /*0652*/ { "sq" , 12 },
|
|
692 /*0653*/ { "sr" , 402 },
|
|
693 /*0654*/ { "ss" , 405 },
|
|
694 /*0655*/ { "st" , 398 },
|
|
695 /*0656*/ { "su" , 407 },
|
|
696 /*0657*/ { "sv" , 411 },
|
|
697 /*0658*/ { "sw" , 410 },
|
|
698 /*0659*/ { "ta" , 416 },
|
|
699 /*0660*/ { "te" , 418 },
|
|
700 /*0661*/ { "tg" , 422 },
|
|
701 /*0662*/ { "th" , 424 },
|
|
702 /*0663*/ { "ti" , 427 },
|
|
703 /*0664*/ { "tk" , 439 },
|
|
704 /*0665*/ { "tl" , 423 },
|
|
705 /*0666*/ { "tn" , 437 },
|
|
706 /*0667*/ { "to" , 434 },
|
|
707 /*0668*/ { "tr" , 442 },
|
|
708 /*0669*/ { "ts" , 438 },
|
|
709 /*0670*/ { "tt" , 417 },
|
|
710 /*0671*/ { "tw" , 445 },
|
|
711 /*0672*/ { "ty" , 414 },
|
|
712 /*0673*/ { "ug" , 449 },
|
|
713 /*0674*/ { "uk" , 450 },
|
|
714 /*0675*/ { "ur" , 453 },
|
|
715 /*0676*/ { "uz" , 454 },
|
|
716 /*0677*/ { "ve" , 456 },
|
|
717 /*0678*/ { "vi" , 457 },
|
|
718 /*0679*/ { "vo" , 458 },
|
|
719 /*0680*/ { "wa" , 466 },
|
|
720 /*0681*/ { "wo" , 467 },
|
|
721 /*0682*/ { "xh" , 469 },
|
|
722 /*0683*/ { "yi" , 472 },
|
|
723 /*0684*/ { "yo" , 473 },
|
|
724 /*0685*/ { "za" , 478 },
|
|
725 /*0686*/ { "zh" , 78 },
|
|
726 /*0687*/ { "zu" , 480 },
|
|
727 { "", 0 }
|
|
728 };
|
|
729
|
4905
|
730 static int lang_table_compare(const void *lhs, const void *rhs)
|
4904
|
731 {
|
|
732 return strcmp(lhs, ((const LangEntry *)rhs)->str);
|
|
733 }
|
|
734
|
4905
|
735 const char *av_convert_lang_to(const char *lang, enum AVLangCodespace target_codespace)
|
4904
|
736 {
|
|
737 int i;
|
|
738 const LangEntry *entry = NULL;
|
4905
|
739 const int NB_CODESPACES = sizeof(lang_table_counts)/sizeof(*lang_table_counts);
|
4904
|
740
|
4905
|
741 if (target_codespace < 0 || target_codespace >= NB_CODESPACES)
|
4904
|
742 return NULL;
|
|
743
|
|
744 for (i=0; !entry && i<NB_CODESPACES; i++)
|
|
745 entry = bsearch(lang,
|
4905
|
746 lang_table + lang_table_offsets[i],
|
|
747 lang_table_counts[i],
|
4904
|
748 sizeof(LangEntry),
|
4905
|
749 lang_table_compare);
|
4904
|
750 if (!entry)
|
|
751 return NULL;
|
|
752
|
|
753 for (i=0; i<NB_CODESPACES; i++)
|
4905
|
754 if (entry >= lang_table + lang_table_offsets[target_codespace] &&
|
|
755 entry < lang_table + lang_table_offsets[target_codespace] + lang_table_counts[target_codespace])
|
4904
|
756 return entry->str;
|
|
757 else
|
4905
|
758 entry = lang_table + entry->next_equivalent;
|
4904
|
759
|
4905
|
760 if (target_codespace == AV_LANG_ISO639_2_TERM)
|
|
761 return av_convert_lang_to(lang, AV_LANG_ISO639_2_BIBL);
|
4904
|
762
|
|
763 return NULL;
|
|
764 }
|