⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MPEG2 PLAYER in linux
💻 C
📖 第 1 页 / 共 3 页
字号:
      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();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -