?? main.c
字號(hào):
argc -= 2; mark++;#ifdef DCPREC } else if (strcmp(argv[mark], "-dc") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify dc precision after -dc flag"); usage(argv[0]); } dcprec = atoi(argv[mark]) - 8; if ((dcprec > 3) || (dcprec < 0)) { perror("DC precision must be at least 8 and at most 11"); usage(argv[0]); } argc--; mark++;#endif } else if (strcmp(argv[mark], "-quality") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify on or off after -quality flag"); usage(argv[0]); } if (strcmp(argv[mark], "on") == 0) { argc--; mark++; qualityFlag = 1; } else if (strcmp(argv[mark], "off") == 0) { argc--; mark++; qualityFlag = 0; } else { perror("Must specify on or off after -quality flag"); usage(argv[0]); } } else if (strcmp(argv[mark], "-framerate") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify framerate after -framerate flag"); usage(argv[0]); } framerate = atoi(argv[mark]); argc--; mark++; } else if (strcmp(argv[mark], "-ppmwidth") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify PPM file width after -ppmwidth flag"); usage(argv[0]); } ppm_width = atoi(argv[mark]); argc--; mark++; } else if (strcmp(argv[mark], "-ppmheight") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify PPM file height after -ppmheight flag"); usage(argv[0]); } ppm_height = atoi(argv[mark]); argc--; mark++; } else if (strcmp(argv[mark], "-ppmskip") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify PPM file height after -ppmheight flag"); usage(argv[0]); } ppm_modulus = atoi(argv[mark]); argc--; mark++;#ifndef DISABLE_DITHER } else if (strcmp(argv[mark], "-dither") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify dither option after -dither flag"); usage(argv[0]); } if (strcmp(argv[mark], "hybrid") == 0) { argc--; mark++; xinfo[0].ditherType = HYBRID_DITHER; } else if (strcmp(argv[mark], "hybrid2") == 0) { argc--; mark++; xinfo[0].ditherType = HYBRID2_DITHER; } else if (strcmp(argv[mark], "fs4") == 0) { argc--; mark++; xinfo[0].ditherType = FS4_DITHER; } else if (strcmp(argv[mark], "fs2") == 0) { argc--; mark++; xinfo[0].ditherType = FS2_DITHER; } else if (strcmp(argv[mark], "fs2fast") == 0) { argc--; mark++; xinfo[0].ditherType = FS2FAST_DITHER; } else if (strcmp(argv[mark], "hybrid2") == 0) { argc--; mark++; xinfo[0].ditherType = HYBRID2_DITHER; } else if (strcmp(argv[mark], "2x2") == 0) { argc--; mark++; xinfo[0].ditherType = Twox2_DITHER; } else if ((strcmp(argv[mark], "gray256") == 0) || (strcmp(argv[mark], "grey256") == 0)) { argc--; mark++; xinfo[0].ditherType = GRAY256_DITHER; } else if ((strcmp(argv[mark], "gray") == 0) || (strcmp(argv[mark], "grey") == 0)) { argc--; mark++; xinfo[0].ditherType = GRAY_DITHER; } else if ((strcmp(argv[mark], "gray256x2") == 0) || (strcmp(argv[mark], "grey256x2") == 0)) { argc--; mark++; xinfo[0].ditherType = GRAY2562_DITHER; } else if ((strcmp(argv[mark], "gray") == 0) || (strcmp(argv[mark], "grey") == 0)) { argc--; mark++; xinfo[0].ditherType = GRAY_DITHER; } else if ((strcmp(argv[mark], "gray2") == 0) || (strcmp(argv[mark], "grey2") == 0)) { argc--; mark++; xinfo[0].ditherType = GRAY2_DITHER; } else if (strcmp(argv[mark], "color") == 0 || strcmp(argv[mark], "colour") == 0) { argc--; mark++; xinfo[0].ditherType = FULL_COLOR_DITHER; } else if (strcmp(argv[mark], "color2") == 0 || strcmp(argv[mark], "colour2") == 0) { argc--; mark++; xinfo[0].ditherType = FULL_COLOR2_DITHER; } else if (strcmp(argv[mark], "none") == 0) { argc--; mark++; xinfo[0].ditherType = NO_DITHER; } else if (strcmp(argv[mark], "ppm") == 0) { argc--; mark++; xinfo[0].ditherType = PPM_DITHER; } else if (strcmp(argv[mark], "ordered") == 0) { argc--; mark++; xinfo[0].ditherType = ORDERED_DITHER; } else if (strcmp(argv[mark], "ordered2") == 0) { argc--; mark++; xinfo[0].ditherType = ORDERED2_DITHER; } else if (strcmp(argv[mark], "mbordered") == 0) { argc--; mark++; xinfo[0].ditherType = MBORDERED_DITHER; } else if (strcmp(argv[mark], "mono") == 0) { argc--; mark++; xinfo[0].ditherType = MONO_DITHER; } else if (strcmp(argv[mark], "threshold") == 0) { argc--; mark++; xinfo[0].ditherType = MONO_THRESHOLD; } else { perror("Illegal dither option."); usage(argv[0]); }#endif } else if (strcmp(argv[mark], "-eachstat") == 0) { argc--; mark++;#ifdef ANALYSIS showEachFlag = 1;#else fprintf(stderr, "To use -eachstat, recompile with -DANALYSIS in CFLAGS\n"); exit(1);#endif } else if (strcmp(argv[mark], "-shmem_off") == 0) { argc--; mark++; shmemFlag = 0; }#ifdef QUIET else if (strcmp(argv[mark], "-quiet") == 0) { argc--; mark++; } else if (strcmp(argv[mark], "-noisy") == 0) {#else else if (strcmp(argv[mark], "-noisy") == 0) { argc--; mark++; } else if (strcmp(argv[mark], "-quiet") == 0) { #endif argc--; mark++; quietFlag = !quietFlag; } else if (strcmp(argv[mark], "-owncm") == 0) { argc--; mark++; owncmFlag = 1; } else if (strcmp(argv[mark], "-step") == 0) { argc--; mark++; requireKeypressFlag = 1; } else if (strcmp(argv[mark], "-loop") == 0) { argc--; mark++; loopFlag = 1; } else if (strcmp(argv[mark], "-no_display") == 0) { argc--; mark++; noDisplayFlag = 1; shmemFlag = 0; } else if (strcmp(argv[mark], "-l_range") == 0) { argc--; mark++; LUM_RANGE = atoi(argv[mark]); if (LUM_RANGE < 1) { fprintf(stderr, "Illegal luminance range value: %d\n", LUM_RANGE); exit(1); } argc--; mark++; } else if (strcmp(argv[mark], "-cr_range") == 0) { argc--; mark++; CR_RANGE = atoi(argv[mark]); if (CR_RANGE < 1) { fprintf(stderr, "Illegal cr range value: %d\n", CR_RANGE); exit(1); } argc--; mark++; } else if (strcmp(argv[mark], "-cb_range") == 0) { argc--; mark++; CB_RANGE = atoi(argv[mark]); if (CB_RANGE < 1) { fprintf(stderr, "Illegal cb range value: %d\n", CB_RANGE); exit(1); } argc--; mark++; } #ifndef NOCONTROLS else if (strcmp(argv[mark], "-controls") == 0 || strcmp(argv[mark], "-controlbar") == 0 || strcmp(argv[mark], "-control_bar") == 0) { argc--; mark++; if (argc < 1) { perror("Must specify on, off, or none after -controls flag"); usage(argv[0]); } if (strcmp(argv[mark], "on") == 0) { argc--; mark++; ControlShow = CTRLBAR_ON; } else if (strcmp(argv[mark], "off") == 0) { argc--; mark++; ControlShow = CTRLBAR_OFF; } else if (strcmp(argv[mark], "none") == 0) { argc--; mark++; ControlShow = CTRLBAR_NONE; } else { perror("Must specify on, off, or none after -controls flag"); usage(argv[0]); } }#endif /* !NOCONTROLS */ else if ((strcmp(argv[mark], "-?") == 0) || (strcmp(argv[mark], "-Help") == 0) || (strcmp(argv[mark], "-help") == 0)) { usage(argv[0]); } else if (argv[mark][0] == '-' && argv[mark][1]==0) { fflush(stdout); if (numInput<NUMMOVIES) { input[numInput]=stdin; inputName[numInput++] = "stdin"; } else { fprintf(stderr, "Can't load file %s - too many\n", "stdin"); } argc--; mark++; } else if (argv[mark][0] == '-') { fprintf(stderr, "Un-recognized flag %s\n",argv[mark]); usage(argv[0]); } else { fflush(stdout); if (numInput<NUMMOVIES) { input[numInput]=fopen(argv[mark], "r"); if (input[numInput] == NULL) { fprintf(stderr, "Could not open file %s\n", argv[mark]); usage(argv[0]); } inputName[numInput++] = argv[mark]; } else { fprintf(stderr, "Can't load file %s - too many\n", argv[mark]); } argc--; mark++; } } lum_values = (int *) malloc(LUM_RANGE*sizeof(int)); cr_values = (int *) malloc(CR_RANGE*sizeof(int)); cb_values = (int *) malloc(CB_RANGE*sizeof(int)); signal(SIGINT, int_handler);#ifndef DEBUG signal(SIGSEGV, bad_handler); signal(SIGBUS, bad_handler);#endif if ((startFrame != -1) && (endFrame != -1) && (endFrame < startFrame)) { usage(argv[0]); } init_tables(); for (i = 0; i < numInput; i++) { xinfo[i].owncmFlag = owncmFlag; xinfo[i].display = NULL; /* xinfo.ximage is set to null later */ if (xinfo[i].hints.x == -1) { xinfo[i].hints.x = 200; xinfo[i].hints.y = 300; } xinfo[i].hints.width = 150; xinfo[i].hints.height = 150; xinfo[i].visual = NULL; xinfo[i].name = inputName[i]; xinfo[i].cmap = 0; xinfo[i].gc = 0; }#ifndef DISABLE_DITHER if (xinfo[0].ditherType == MONO_DITHER || xinfo[0].ditherType == MONO_THRESHOLD) xinfo[0].depth= 1; switch (xinfo[0].ditherType) { case HYBRID_DITHER: InitColor(); InitHybridDither(); InitDisplay(name, &xinfo[0]); break; case HYBRID2_DITHER: InitColor(); InitHybridErrorDither(); InitDisplay(name, &xinfo[0]); break; case FS4_DITHER: InitColor(); InitFS4Dither(); InitDisplay(name, &xinfo[0]); break; case FS2_DITHER: InitColor(); InitFS2Dither(); InitDisplay(name, &xinfo[0]); break; case FS2FAST_DITHER: InitColor(); InitFS2FastDither(); InitDisplay(name, &xinfo[0]); break; case Twox2_DITHER: InitColor(); Init2x2Dither(); InitDisplay(name, &xinfo[0]); PostInit2x2Dither(); break; case GRAY_DITHER: case GRAY2_DITHER: InitGrayDisplay(name, &xinfo[0]); break; case GRAY256_DITHER: case GRAY2562_DITHER: InitGray256Display(name, &xinfo[0]); break; case FULL_COLOR_DITHER: case FULL_COLOR2_DITHER: InitColorDisplay(name, &xinfo[0]); InitColorDither(xinfo[0].depth>=24);#else InitColorDisplay(name, &xinfo[0]); InitColorDither(xinfo[0].depth>=24);#endif#ifndef DISABLE_DITHER break; case NO_DITHER: shmemFlag = 0; break; case PPM_DITHER: shmemFlag = 0; wpixel[0] = 0xff; wpixel[1] = 0xff00; wpixel[2] = 0xff0000; xinfo[0].depth = 24; InitColorDither(1); break; case ORDERED_DITHER: InitColor(); InitOrderedDither(); InitDisplay(name, &xinfo[0]); break; case MONO_DITHER: case MONO_THRESHOLD: InitMonoDisplay(name, &xinfo[0]); break; case ORDERED2_DITHER: InitColor();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -