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

📄 param.c

📁 linux下将各类格式图片转换工具
💻 C
📖 第 1 页 / 共 3 页
字号:
    case 'F':      if (strncmp(input, "FRAME_INPUT_DIR", 15) == 0) {          charPtr = SkipSpacesTabs(&input[15]);          if ( strncmp(charPtr, "stdin", 5) == 0 ||               strncmp(charPtr, "STDIN", 5) == 0 ) {              SetStdinInput(frameInputSourceP);          }          strcpy(currentFramePath, charPtr);      } else if ( strncmp(input, "FRAME_INPUT", 11) == 0 ) {          ReadInputFileNames(fpointer, "FRAME_END_INPUT",                              frameInputSourceP->stdinUsed ?                              NULL : frameInputSourceP);          optionSeen[OPTION_FRAME_INPUT] = TRUE;      } else if ( strncmp(input, "FORCE_I_ALIGN", 13) == 0 ) {        forceIalign = TRUE;      } else if ( strncmp(input, "FORCE_ENCODE_LAST_FRAME", 23) == 0 ) {        /* NO-OP.  We used to drop trailing B frames by default and you           needed this option to change the last frame to I so you could           encode all the frames.  Now we just do that all the time.             Why wouldn't we?        */      } else if ( strncmp(input, "FRAME_RATE", 10) == 0 ) {        charPtr = SkipSpacesTabs(&input[10]);        frameRate = GetFrameRate(charPtr);        frameRateRounded = (int) VidRateNum[frameRate];        if ( (frameRate % 3) == 1) {          frameRateInteger = FALSE;        }        optionSeen[OPTION_FRAME_RATE] = TRUE;      }      break;    case 'G':        if ( strncmp(input, "GOP_SIZE", 8) == 0 ) {            charPtr = SkipSpacesTabs(&input[8]);            SetGOPSize(atoi(charPtr));            optionSeen[OPTION_GOP] = TRUE;        } else if ( strncmp(input, "GOP_INPUT_DIR", 13) == 0 ) {            charPtr = SkipSpacesTabs(&input[13]);            if ( strncmp(charPtr, "stdin", 5) == 0 ||                 strncmp(charPtr, "STDIN", 5) == 0 ) {                SetStdinInput(inputSourceP);            }            strcpy(currentGOPPath, charPtr);        } else if ( strncmp(input, "GOP_INPUT", 9) == 0 ) {            ReadInputFileNames(fpointer, "GOP_END_INPUT",                                gopInputSourceP->stdinUsed ?                                NULL : gopInputSourceP);            optionSeen[OPTION_GOP_INPUT] = TRUE;        } else if ( strncmp(input, "GAMMA", 5) == 0) {            charPtr = SkipSpacesTabs(&input[5]);            GammaCorrection = TRUE;            sscanf(charPtr,"%f",&GammaValue);            optionSeen[OPTION_GAMMA] = TRUE;        }        break;    case 'I':        if ( strncmp(input, "IQSCALE", 7) == 0 ) {            charPtr = SkipSpacesTabs(&input[7]);            SetIQScale(atoi(charPtr));            optionSeen[OPTION_IQSCALE] = TRUE;        } else if ( strncmp(input, "INPUT_DIR", 9) == 0 ) {            charPtr = SkipSpacesTabs(&input[9]);            if ( strncmp(charPtr, "stdin", 5) == 0 ||                 strncmp(charPtr, "STDIN", 5) == 0 )                SetStdinInput(paramP->inputSourceP);            strcpy(currentPath, charPtr);            optionSeen[OPTION_INPUT_DIR] = TRUE;        } else if ( strncmp(input, "INPUT_CONVERT", 13) == 0 ) {            charPtr = SkipSpacesTabs(&input[13]);            strcpy(inputConversion, charPtr);            optionSeen[OPTION_INPUT_CONVERT] = TRUE;        } else if ( strcmp(input, "INPUT") == 0 ) { /* yes, strcmp */            ReadInputFileNames(fpointer, "END_INPUT",                                inputSourceP->stdinUsed ?                               NULL : inputSourceP);            optionSeen[OPTION_INPUT] = TRUE;        } else if ( strncmp(input, "IO_SERVER_CONVERT", 17) == 0 ) {            charPtr = SkipSpacesTabs(&input[17]);            strcpy(ioConversion, charPtr);            optionSeen[OPTION_IO_CONVERT] = TRUE;        } else if ( strncmp(input, "IQTABLE", 7) == 0 ) {            processIqtable(fpointer);            optionSeen[OPTION_IQTABLE] = TRUE;        }        break;    case 'K':        if (strncmp(input, "KEEP_TEMP_FILES", 15) == 0)            keepTempFiles = TRUE;        break;    case 'N':      if ( strncmp(input, "NIQTABLE", 8) == 0 ) {        for ( row = 0; row < 8; row ++ ) {          fgets(input, 256, fpointer);          charPtr = input;          if (8!=sscanf(charPtr,"%d %d %d %d %d %d %d %d",                        &niqtable[row*8+0],  &niqtable[row*8+1],                        &niqtable[row*8+2],  &niqtable[row*8+3],                        &niqtable[row*8+4],  &niqtable[row*8+5],                        &niqtable[row*8+6],  &niqtable[row*8+7])) {            fprintf(stderr, "Line %d of NIQTABLE doesn't have 8 elements!\n",                     row);            exit(1);          }          for ( col = 0; col < 8; col++ ) {            if ((niqtable[row*8+col]<1) || (niqtable[row*8+col]>255)) {              fprintf(stderr,                      "Warning:  NIQTable Element %1d,%1d (%d) "                      "corrected to 1-255.\n",                      row+1, col+1, niqtable[row*8+col]);              niqtable[row*8+col]=(niqtable[row*8+col]<1)?1:255;            }}        }        customNIQtable = niqtable;        optionSeen[OPTION_NIQTABLE] = TRUE;      }      break;    case 'O':      if ( strncmp(input, "OUTPUT", 6) == 0 ) {        charPtr = SkipSpacesTabs(&input[6]);        if ( whichGOP == -1 ) {          strcpy(outputFileName, charPtr);        } else {          sprintf(outputFileName, "%s.gop.%d",                  charPtr, whichGOP);        }        optionSeen[OPTION_OUTPUT] = TRUE;      }      break;    case 'P':      if ( strncmp(input, "PATTERN", 7) == 0 ) {        charPtr = SkipSpacesTabs(&input[7]);        SetFramePattern(charPtr);        optionSeen[OPTION_PATTERN] = TRUE;      } else if ( strncmp(input, "PIXEL", 5) == 0 ) {        charPtr = SkipSpacesTabs(&input[5]);        SetPixelSearch(charPtr);        optionSeen[OPTION_PIXEL] = TRUE;      } else if ( strncmp(input, "PQSCALE", 7) == 0 ) {        charPtr = SkipSpacesTabs(&input[7]);        SetPQScale(atoi(charPtr));        optionSeen[OPTION_PQSCALE] = TRUE;      } else if ( strncmp(input, "PSEARCH_ALG", 11) == 0 ) {        charPtr = SkipSpacesTabs(&input[11]);        SetPSearchAlg(charPtr);        optionSeen[OPTION_PSEARCH_ALG] = TRUE;      } else if ( strncmp(input, "PARALLEL_TEST_FRAMES", 20) == 0 ) {        SetParallelPerfect(FALSE);        charPtr = SkipSpacesTabs(&input[20]);        parallelTestFrames = atoi(charPtr);      } else if ( strncmp(input, "PARALLEL_TIME_CHUNKS", 20) == 0 ) {        SetParallelPerfect(FALSE);        charPtr = SkipSpacesTabs(&input[20]);        parallelTimeChunks = atoi(charPtr);      } else if ( strncmp(input, "PARALLEL_CHUNK_TAPER", 20) == 0 ) {        SetParallelPerfect(FALSE);        parallelTimeChunks = -1;      } else if ( strncmp(input, "PARALLEL_PERFECT", 16) == 0 ) {        SetParallelPerfect(TRUE);      } else if ( strncmp(input, "PARALLEL", 8) == 0 ) {        ReadMachineNames(fpointer);        optionSeen[OPTION_PARALLEL] = TRUE;      }      break;    case 'R':      if ( strncmp(input, "RANGE", 5) == 0 ) {        int num_ranges=0,a,b;        charPtr = SkipSpacesTabs(&input[5]);        optionSeen[OPTION_RANGE] = TRUE;        num_ranges=sscanf(charPtr,"%d %d",&a,&b);        if (num_ranges==2) {          SetSearchRange(a,b);        } else if (sscanf(charPtr,"%d [%d]",&a,&b)==2) {          SetSearchRange(a,b);        } else SetSearchRange(a,a);      } else if ( strncmp(input, "REFERENCE_FRAME", 15) == 0 ) {        charPtr = SkipSpacesTabs(&input[15]);        SetReferenceFrameType(charPtr);        optionSeen[OPTION_REF_FRAME] = TRUE;      } else if ( strncmp(input, "RSH", 3) == 0 ) {        charPtr = SkipSpacesTabs(&input[3]);        SetRemoteShell(charPtr);      } else if ( strncmp(input, "RESIZE", 6) == 0 ) {        charPtr = SkipSpacesTabs(&input[6]);                            sscanf(charPtr, "%dx%d", &outputWidth, &outputHeight);        outputWidth &= ~(DCTSIZE * 2 - 1);        outputHeight &= ~(DCTSIZE * 2 - 1);        optionSeen[OPTION_RESIZE] = TRUE;      }      break;    case 'S':      if ( strncmp(input, "SLICES_PER_FRAME", 16) == 0 ) {        charPtr = SkipSpacesTabs(&input[16]);        SetSlicesPerFrame(atoi(charPtr));        optionSeen[OPTION_SPF] = TRUE;      } else if ( strncmp(input, "SLAVE_CONVERT", 13) == 0 ) {        charPtr = SkipSpacesTabs(&input[13]);        strcpy(slaveConversion, charPtr);        optionSeen[OPTION_SLAVE_CONVERT] = TRUE;      } else if ( strncmp(input, "SPECIFICS_FILE", 14) == 0 ) {        charPtr = SkipSpacesTabs(&input[14]);        strcpy(specificsFile, charPtr);        specificsOn=TRUE;        optionSeen[OPTION_SPECIFICS] = TRUE;      } else if ( strncmp(input, "SPECIFICS_DEFINES", 16) == 0 ) {        charPtr = SkipSpacesTabs(&input[17]);        strcpy(specificsDefines, charPtr);        optionSeen[OPTION_DEFS_SPECIFICS] = TRUE;      } else if (strncmp(input, "SEQUENCE_SIZE", 13) == 0) {        charPtr = SkipSpacesTabs(&input[13]);        mult_seq_headers = atoi(charPtr);      } else if (strncmp(input, "SIZE", 4) == 0 ) {        charPtr = SkipSpacesTabs(&input[4]);        sscanf(charPtr, "%dx%d", &yuvWidth, &yuvHeight);        realWidth = yuvWidth;        realHeight = yuvHeight;        Fsize_Validate(&yuvWidth, &yuvHeight);        optionSeen[OPTION_YUV_SIZE] = TRUE;      }      break;    case 'T':      if ( strncmp(input, "TUNE", 4) == 0) {        tuneingOn = TRUE;        charPtr = SkipSpacesTabs(&input[4]);	ParseTuneParam(charPtr);      }      break;    case 'U':        if (strncmp(input, "USER_DATA", 9) == 0) {            charPtr = SkipSpacesTabs(&input[9]);            strcpy(userDataFileName, charPtr);            optionSeen[OPTION_USER_DATA] = TRUE;        }        break;            case 'W':        if (strncmp(input, "WARN_UNDERFLOW", 14) == 0)            paramP->warnUnderflow = TRUE;        if (strncmp(input, "WARN_OVERFLOW", 13) == 0)            paramP->warnOverflow = TRUE;        break;            case 'Y':        if (strncmp(input, "YUV_SIZE", 8) == 0) {            charPtr = SkipSpacesTabs(&input[8]);            sscanf(charPtr, "%dx%d", &yuvWidth, &yuvHeight);            realWidth = yuvWidth;            realHeight = yuvHeight;            Fsize_Validate(&yuvWidth, &yuvHeight);            optionSeen[OPTION_YUV_SIZE] = TRUE;        }        else if (strncmp(input, "Y_SIZE", 6) == 0) {            charPtr = SkipSpacesTabs(&input[6]);            sscanf(charPtr, "%dx%d", &yuvWidth, &yuvHeight);            realWidth = yuvWidth;            realHeight = yuvHeight;            Fsize_Validate(&yuvWidth, &yuvHeight);            optionSeen[OPTION_YUV_SIZE] = TRUE;        }        else if (strncmp(input, "YUV_FORMAT", 10) == 0) {            charPtr = SkipSpacesTabs(&input[10]);            strcpy(yuvConversion, charPtr);            optionSeen[OPTION_YUV_FORMAT] = TRUE;        }        break;    }  }  fclose(fpointer);  setInputSource(function, &paramP->inputSourceP,                 inputSourceP, gopInputSourceP, frameInputSourceP);  verifyNoMissingOption(function);  /* error checking */  if (!paramP->inputSourceP->stdinUsed &&      paramP->inputSourceP->numInputFiles == 0)      pm_error("You have not specified any input.  See the "               "INPUT_DIR, INPUT, GOP_INPUT_DIR, GOP_INPUT, "               "FRAME_INPUT_DIR, and FRAME_INPUT options");  if (yuvUsed) {      if (!optionSeen[OPTION_YUV_SIZE])          pm_error("YUV format used but YUV_SIZE not given");            if (!optionSeen[OPTION_YUV_FORMAT]) {          strcpy (yuvConversion, "EYUV");          pm_message("WARNING:  YUV format not specified; "                     "defaulting to Berkeley YUV (EYUV)");      }  }  if (paramP->inputSourceP->stdinUsed && optionSeen[OPTION_PARALLEL] )      pm_error("stdin reading for parallel execution not enabled yet.");  if (optionSeen[OPTION_PARALLEL] && !optionSeen[OPTION_YUV_SIZE])      pm_error("Specify SIZE WxH for parallel encoding");  if (optionSeen[OPTION_IO_CONVERT] != optionSeen[OPTION_SLAVE_CONVERT])      pm_error("Must have either both IO_SERVER_CONVERT and SLAVE_CONVERT "               "or neither");        if (optionSeen[OPTION_DEFS_SPECIFICS] && !optionSeen[OPTION_SPECIFICS])      pm_error("Does not make sense to define Specifics file options, "               "but no specifics file!");  SetIOConvert(optionSeen[OPTION_IO_CONVERT]);  SetResize(optionSeen[OPTION_RESIZE]);  if (function == ENCODE_FRAMES) {      SetFCode();      if (psearchAlg == PSEARCH_TWOLEVEL)          SetPixelSearch("HALF");  }}/* * Copyright (c) 1995 The Regents of the University of California. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */

⌨️ 快捷键说明

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