Line | Branch | Exec | Source |
---|---|---|---|
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/macros.h" | ||
23 | #include <stdlib.h> | ||
24 | #include <stdint.h> | ||
25 | #include <string.h> | ||
26 | |||
27 | typedef struct LangEntry { | ||
28 | const char str[4]; | ||
29 | uint16_t next_equivalent; | ||
30 | } LangEntry; | ||
31 | |||
32 | static const uint16_t lang_table_counts[] = { 484, 20, 190 }; | ||
33 | static const uint16_t lang_table_offsets[] = { 0, 484, 504 }; | ||
34 | |||
35 | static const LangEntry lang_table[] = { | ||
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 (190) -----*/ | ||
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 | /*0688*/ { "in" , 195 }, /* deprecated */ | ||
728 | /*0689*/ { "iw" , 172 }, /* deprecated */ | ||
729 | /*0690*/ { "ji" , 472 }, /* deprecated */ | ||
730 | /*0691*/ { "jw" , 202 }, /* deprecated */ | ||
731 | /*0692*/ { "mo" , 358 }, /* deprecated */ | ||
732 | /*0693*/ { "sh" , 693 }, /* deprecated (no equivalent) */ | ||
733 | { "", 0 } | ||
734 | }; | ||
735 | |||
736 | 643 | static int lang_table_compare(const void *lhs, const void *rhs) | |
737 | { | ||
738 | 643 | return strcmp(lhs, ((const LangEntry *)rhs)->str); | |
739 | } | ||
740 | |||
741 | 34 | const char *ff_convert_lang_to(const char *lang, enum AVLangCodespace target_codespace) | |
742 | { | ||
743 | int i; | ||
744 | 34 | const LangEntry *entry = NULL; | |
745 | 34 | const int NB_CODESPACES = FF_ARRAY_ELEMS(lang_table_counts); | |
746 | |||
747 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 34 times.
|
34 | if (target_codespace >= NB_CODESPACES) |
748 | ✗ | return NULL; | |
749 | |||
750 |
4/4✓ Branch 0 taken 100 times.
✓ Branch 1 taken 30 times.
✓ Branch 2 taken 96 times.
✓ Branch 3 taken 4 times.
|
130 | for (i=0; !entry && i<NB_CODESPACES; i++) |
751 | 96 | entry = bsearch(lang, | |
752 | 96 | lang_table + lang_table_offsets[i], | |
753 | 96 | lang_table_counts[i], | |
754 | sizeof(LangEntry), | ||
755 | lang_table_compare); | ||
756 |
2/2✓ Branch 0 taken 4 times.
✓ Branch 1 taken 30 times.
|
34 | if (!entry) |
757 | 4 | return NULL; | |
758 | |||
759 |
1/2✓ Branch 0 taken 60 times.
✗ Branch 1 not taken.
|
60 | for (i=0; i<NB_CODESPACES; i++) |
760 |
1/2✓ Branch 0 taken 60 times.
✗ Branch 1 not taken.
|
60 | if (entry >= lang_table + lang_table_offsets[target_codespace] && |
761 |
2/2✓ Branch 0 taken 30 times.
✓ Branch 1 taken 30 times.
|
60 | entry < lang_table + lang_table_offsets[target_codespace] + lang_table_counts[target_codespace]) |
762 | 30 | return entry->str; | |
763 | else | ||
764 | 30 | entry = lang_table + entry->next_equivalent; | |
765 | |||
766 | ✗ | if (target_codespace == AV_LANG_ISO639_2_TERM) | |
767 | ✗ | return ff_convert_lang_to(lang, AV_LANG_ISO639_2_BIBL); | |
768 | |||
769 | ✗ | return NULL; | |
770 | } | ||
771 |