comparison codec-cfg.c @ 299:3343fb3e4f49

outflags[] reading fixed
author arpi_esp
date Fri, 06 Apr 2001 23:56:42 +0000
parents a11ea84cc1ad
children df3f7a25584c
comparison
equal deleted inserted replaced
298:a11ea84cc1ad 299:3343fb3e4f49
136 int add_to_format(char *s, unsigned int *format) 136 int add_to_format(char *s, unsigned int *format)
137 { 137 {
138 return 1; 138 return 1;
139 } 139 }
140 140
141 /*
141 short get_flags(char *s) 142 short get_flags(char *s)
142 { 143 {
144 static char *flagstr[] = {
145 "flip",
146 "noflip",
147 "yuvhack",
148 NULL
149 };
150 int j;
151
152 printf("flags='%s'\n",s);
153
143 if (!s) 154 if (!s)
144 return 0; 155 return 0;
145 return 1; 156 return 1;
146 } 157 }
158 */
147 159
148 int add_to_out(char *sfmt, char *sflags, unsigned int *outfmt, 160 int add_to_out(char *sfmt, char *sflags, unsigned int *outfmt,
149 unsigned char *outflags) 161 unsigned char *outflags)
150 { 162 {
151 static char *fmtstr[] = { 163 static char *fmtstr[] = {
175 IMGFMT_BGR|15, 187 IMGFMT_BGR|15,
176 IMGFMT_BGR|16, 188 IMGFMT_BGR|16,
177 IMGFMT_BGR|24, 189 IMGFMT_BGR|24,
178 IMGFMT_BGR|32 190 IMGFMT_BGR|32
179 }; 191 };
192 static char *flagstr[] = {
193 "flip",
194 "noflip",
195 "yuvhack",
196 NULL
197 };
198
180 int i, j; 199 int i, j;
181 unsigned char flags; 200 unsigned char flags;
182 201
183 for (i = 0; i < CODECS_MAX_OUTFMT && outfmt[i] != 0xffffffff; i++) 202 for (i = 0; i < CODECS_MAX_OUTFMT && outfmt[i] != 0xffffffff; i++)
184 /* NOTHING */; 203 /* NOTHING */;
185 if (i == CODECS_MAX_FOURCC) { 204 if (i == CODECS_MAX_FOURCC) {
186 printf("too many out...\n"); 205 printf("too many out...\n");
187 return 0; 206 return 0;
188 } 207 }
189 208
190 flags = get_flags(sflags); 209 flags = 0; //get_flags(sflags);
210 if(sflags) do {
211 for (j = 0; flagstr[j] != NULL; j++)
212 if (!strncmp(sflags, flagstr[j], strlen(flagstr[j])))
213 break;
214 if (flagstr[j] == NULL) return 0; // error!
215 flags|=(1<<j);
216 sflags+=strlen(flagstr[j]);
217 } while (*(sflags++) == ',');
218
191 219
192 do { 220 do {
193 for (j = 0; fmtstr[i] != NULL; j++) 221 for (j = 0; fmtstr[j] != NULL; j++)
194 if (!strncmp(sfmt, fmtstr[j], strlen(fmtstr[j]))) 222 if (!strncmp(sfmt, fmtstr[j], strlen(fmtstr[j])))
195 break; 223 break;
196 if (fmtstr[j] == NULL) 224 if (fmtstr[j] == NULL)
197 return 0; 225 return 0;
198 outfmt[i] = fmtnum[j]; 226 outfmt[i] = fmtnum[j];
199 outflags[i] = flags; 227 outflags[i] = flags;
228 ++i;
200 sfmt+=strlen(fmtstr[j]); 229 sfmt+=strlen(fmtstr[j]);
201 } while (*(sfmt++) == ','); 230 } while (*(sfmt++) == ',');
202 if (*(--sfmt) != '\0') 231 if (*(--sfmt) != '\0') return 0;
203 return 0; 232
204 return 1; 233 return 1;
205 } 234 }
206 235
207 short get_driver(char *s) 236 short get_driver(char *s)
208 { 237 {
458 for(j=0;j<CODECS_MAX_FOURCC;j++){ 487 for(j=0;j<CODECS_MAX_FOURCC;j++){
459 if(c->fourcc[j]!=0xFFFFFFFF){ 488 if(c->fourcc[j]!=0xFFFFFFFF){
460 printf("fourcc %02d: %08X (%.4s) ===> %08X (%.4s)\n",j,c->fourcc[j],&c->fourcc[j],c->fourccmap[j],&c->fourccmap[j]); 489 printf("fourcc %02d: %08X (%.4s) ===> %08X (%.4s)\n",j,c->fourcc[j],&c->fourcc[j],c->fourccmap[j],&c->fourccmap[j]);
461 } 490 }
462 } 491 }
492 for(j=0;j<CODECS_MAX_OUTFMT;j++){
493 if(c->outfmt[j]!=0xFFFFFFFF){
494 printf("outfmt %02d: %08X (%.4s) flags: %d\n",j,c->outfmt[j],&c->outfmt[j],c->outflags[j]);
495 }
496 }
463 } 497 }
464 498
465 return 0; 499 return 0;
466 } 500 }
467 501