comparison codec-cfg.c @ 2681:7f0862258f4b

fourcc mapping fixed - 10l to someone
author arpi
date Sun, 04 Nov 2001 14:00:53 +0000
parents a06f9c1df28e
children b4d46817f050
comparison
equal deleted inserted replaced
2680:e8a534509557 2681:7f0862258f4b
35 35
36 static int add_to_fourcc(char *s, char *alias, unsigned int *fourcc, 36 static int add_to_fourcc(char *s, char *alias, unsigned int *fourcc,
37 unsigned int *map) 37 unsigned int *map)
38 { 38 {
39 int i, j, freeslots; 39 int i, j, freeslots;
40 char *aliasp;
41 unsigned int tmp; 40 unsigned int tmp;
42 41
43 /* find first unused slot */ 42 /* find first unused slot */
44 for (i = 0; i < CODECS_MAX_FOURCC && fourcc[i] != 0xffffffff; i++) 43 for (i = 0; i < CODECS_MAX_FOURCC && fourcc[i] != 0xffffffff; i++)
45 /* NOTHING */; 44 /* NOTHING */;
46 freeslots = CODECS_MAX_FOURCC - i; 45 freeslots = CODECS_MAX_FOURCC - i;
47 if (!freeslots) 46 if (!freeslots)
48 goto err_out_too_many; 47 goto err_out_too_many;
49 48
50 aliasp = (alias) ? alias : s;
51 do { 49 do {
52 tmp = mmioFOURCC(s[0], s[1], s[2], s[3]); 50 tmp = mmioFOURCC(s[0], s[1], s[2], s[3]);
53 for (j = 0; j < i; j++) 51 for (j = 0; j < i; j++)
54 if (tmp == fourcc[j]) 52 if (tmp == fourcc[j])
55 goto err_out_duplicated; 53 goto err_out_duplicated;
56 fourcc[i] = tmp; 54 fourcc[i] = tmp;
57 map[i] = mmioFOURCC(aliasp[0], aliasp[1], aliasp[2], aliasp[3]); 55 map[i] = alias ? mmioFOURCC(alias[0], alias[1], alias[2], alias[3]) : tmp;
58 s += 4; 56 s += 4;
59 i++; 57 i++;
60 } while ((*(s++) == ',') && --freeslots); 58 } while ((*(s++) == ',') && --freeslots);
61 59
62 if (!freeslots) 60 if (!freeslots)