亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? configfile.c

?? 一個簡單的視頻會議VC++MFC工程文件
?? C
?? 第 1 頁 / 共 3 頁
字號:
          InItem = 0;
        InString = ~InString; // Toggle
        break;

      default:
        if (!InItem)
        {
          items[item++] = p;
          InItem = ~InItem;
        }
        p++;
    }
  }

  item--;

  for (i=0; i<item; i+= 3)
  {
    if (0 > (MapIdx = ParameterNameToMapIndex (items[i])))
    {
      snprintf (errortext, ET_SIZE, " Parsing error in config file: Parameter Name '%s' not recognized.", items[i]);
      error (errortext, 300);
    }
    if (strcmp ("=", items[i+1]))
    {
      snprintf (errortext, ET_SIZE, " Parsing error in config file: '=' expected as the second token in each line.");
      error (errortext, 300);
    }

    // Now interpret the Value, context sensitive...

    switch (Map[MapIdx].Type)
    {
      case 0:           // Numerical
        if (1 != sscanf (items[i+2], "%d", &IntContent))
        {
          snprintf (errortext, ET_SIZE, " Parsing error: Expected numerical value for Parameter of %s, found '%s'.", items[i], items[i+2]);
          error (errortext, 300);
        }
        * (int *) (Map[MapIdx].Place) = IntContent;
        printf (".");
        break;
      case 1:
        strncpy ((char *) Map[MapIdx].Place, items [i+2], FILE_NAME_SIZE);
        printf (".");
        break;
      case 2:           // Numerical double
        if (1 != sscanf (items[i+2], "%lf", &DoubleContent))
        {
          snprintf (errortext, ET_SIZE, " Parsing error: Expected numerical value for Parameter of %s, found '%s'.", items[i], items[i+2]);
          error (errortext, 300);
        }
        * (double *) (Map[MapIdx].Place) = DoubleContent;
        printf (".");
        break;
      default:
        assert ("Unknown value type in the map definition of configfile.h");
    }
  }
  memcpy (input, &configinput, sizeof (InputParameters));
}

/*!
 ***********************************************************************
 * \brief
 *    Returns the index number from Map[] for a given parameter name.
 * \param s
 *    parameter name string
 * \return
 *    the index number if the string is a valid parameter name,         \n
 *    -1 for error
 ***********************************************************************
 */
static int ParameterNameToMapIndex (char *s)
{
  int i = 0;

  while (Map[i].TokenName != NULL)
    if (0==strcmp (Map[i].TokenName, s))
      return i;
    else
      i++;
  return -1;
};

/*!
 ***********************************************************************
 * \brief
 *    Sets initial values for encoding parameters.
 * \return
 *    -1 for error
 ***********************************************************************
 */
static int InitEncoderParams()
{
  int i = 0;

  while (Map[i].TokenName != NULL)
  {
    if (Map[i].Type == 0)
        * (int *) (Map[i].Place) = (int) Map[i].Default;
    else if (Map[i].Type == 2)
    * (double *) (Map[i].Place) = Map[i].Default;
      i++;
  }
  return -1;
};

/*!
 ***********************************************************************
 * \brief
 *    Validates encoding parameters.
 * \return
 *    -1 for error
 ***********************************************************************
 */
static int TestEncoderParams(int bitdepth_qp_scale)
{
  int i = 0;

  while (Map[i].TokenName != NULL)
  {
    if (Map[i].param_limits == 1)
    {
      if (Map[i].Type == 0)
      {
        if ( * (int *) (Map[i].Place) < (int) Map[i].min_limit || * (int *) (Map[i].Place) > (int) Map[i].max_limit )
        {
          snprintf(errortext, ET_SIZE, "Error in input parameter %s. Check configuration file. Value should be in [%d, %d] range.", Map[i].TokenName, (int) Map[i].min_limit,(int)Map[i].max_limit );
          error (errortext, 400);
        }
        
      }
      else if (Map[i].Type == 2)
      {
        if ( * (double *) (Map[i].Place) < Map[i].min_limit || * (double *) (Map[i].Place) > Map[i].max_limit )
        {
          snprintf(errortext, ET_SIZE, "Error in input parameter %s. Check configuration file. Value should be in [%.2f, %.2f] range.", Map[i].TokenName,Map[i].min_limit ,Map[i].max_limit );
          error (errortext, 400);
        }        
      }            
    }
    else if (Map[i].param_limits == 2)
    {
      if (Map[i].Type == 0)
      {
        if ( * (int *) (Map[i].Place) < (int) Map[i].min_limit )
        {
          snprintf(errortext, ET_SIZE, "Error in input parameter %s. Check configuration file. Value should not be smaller than %d.", Map[i].TokenName, (int) Map[i].min_limit);
          error (errortext, 400);
        }
        
      }
      else if (Map[i].Type == 2)
      {
        if ( * (double *) (Map[i].Place) < Map[i].min_limit )
        {
          snprintf(errortext, ET_SIZE, "Error in input parameter %s. Check configuration file. Value should not be smaller than %2.f.", Map[i].TokenName,Map[i].min_limit);
          error (errortext, 400);
        }        
      }
    }
    else if (Map[i].param_limits == 3) // Only used for QPs
    {
      if (Map[i].Type == 0)
      {
        if ( * (int *) (Map[i].Place) < (int) (Map[i].min_limit - bitdepth_qp_scale) || * (int *) (Map[i].Place) > (int) Map[i].max_limit )
        {
          snprintf(errortext, ET_SIZE, "Error in input parameter %s. Check configuration file. Value should be in [%d, %d] range.", Map[i].TokenName, (int) (Map[i].min_limit - bitdepth_qp_scale),(int)Map[i].max_limit );
          error (errortext, 400);
        }
        
      }
    }
 
    i++;
  }
  return -1;
};



/*!
 ***********************************************************************
 * \brief
 *    Outputs encoding parameters.
 * \return
 *    -1 for error
 ***********************************************************************
 */
static int DisplayEncoderParams()
{
  int i = 0;

  printf("******************************************************\n");
  printf("*               Encoder Parameters                   *\n");
  printf("******************************************************\n");
  while (Map[i].TokenName != NULL)
  {
    if (Map[i].Type == 0)
      printf("Parameter %s = %d\n",Map[i].TokenName,* (int *) (Map[i].Place));
    else if (Map[i].Type == 1)
      printf("Parameter %s = ""%s""\n",Map[i].TokenName,(char *)  (Map[i].Place));
    else if (Map[i].Type == 2)
      printf("Parameter %s = %.2f\n",Map[i].TokenName,* (double *) (Map[i].Place));
      i++;
  }
  printf("******************************************************\n");
  return -1;
};

/*!
 ************************************************************************
 * \brief
 *    calculate Ceil(Log2(uiVal))
 ************************************************************************
 */
unsigned CeilLog2( unsigned uiVal)
{
  unsigned uiTmp = uiVal-1;
  unsigned uiRet = 0;

  while( uiTmp != 0 )
  {
    uiTmp >>= 1;
    uiRet++;
  }
  return uiRet;
}


/*!
 ***********************************************************************
 * \brief
 *    Checks the input parameters for consistency.
 ***********************************************************************
 */
static void PatchInp ()
{
  int bitdepth_qp_scale = 6*(input->BitDepthLuma - 8);
  
  // These variables are added for FMO
  FILE * sgfile=NULL;
  int i;
  int frame_mb_only;
  int mb_width, mb_height, mapunit_height;

//  input->BitDepthChroma = input->BitDepthLuma;
  input->LowPassForIntra8x8 = 1;                    //low pass is always used

  TestEncoderParams(bitdepth_qp_scale);

  if (input->FrameRate == 0.0)
    input->FrameRate = INIT_FRAME_RATE;

  // Set block sizes

    input->blc_size[0][0]=16;
    input->blc_size[0][1]=16;

    input->blc_size[1][0]=16;
    input->blc_size[1][1]=16;

    input->blc_size[2][0]=16;
    input->blc_size[2][1]= 8;

    input->blc_size[3][0]= 8;
    input->blc_size[3][1]=16;

    input->blc_size[4][0]= 8;
    input->blc_size[4][1]= 8;

    input->blc_size[5][0]= 8;
    input->blc_size[5][1]= 4;

    input->blc_size[6][0]= 4;
    input->blc_size[6][1]= 8;

    input->blc_size[7][0]= 4;
    input->blc_size[7][1]= 4;

  // set proper log2_max_frame_num_minus4.
  {
    int storedBplus1 = (input->BRefPictures ) ? input->successive_Bframe + 1: 1;

//    log2_max_frame_num_minus4 = max( (int)(CeilLog2(input->no_frames * storedBplus1))-4, 0);
    if (input->Log2MaxFrameNum < 4)
      log2_max_frame_num_minus4 = max( (int)(CeilLog2(input->no_frames *storedBplus1 ))-4, 0);
    else 
      log2_max_frame_num_minus4 = input->Log2MaxFrameNum - 4;
  
  }

  log2_max_pic_order_cnt_lsb_minus4 = max( (int)(CeilLog2( 2*input->no_frames * (input->jumpd + 1))) -4, 0);

  // B picture consistency check
  if(input->successive_Bframe > input->jumpd)
  {
    snprintf(errortext, ET_SIZE, "Number of B-frames %d can not exceed the number of frames skipped", input->successive_Bframe);
    error (errortext, 400);
  }

  // Direct Mode consistency check
  if(input->successive_Bframe && input->direct_spatial_mv_pred_flag != DIR_SPATIAL && input->direct_spatial_mv_pred_flag != DIR_TEMPORAL)
  {
    snprintf(errortext, ET_SIZE, "Unsupported direct mode=%d, use TEMPORAL=0 or SPATIAL=1", input->direct_spatial_mv_pred_flag);
    error (errortext, 400);
  }

  if (input->PicInterlace>0 || input->MbInterlace>0)
  {
    if (input->directInferenceFlag==0)
      printf("\nDirectInferenceFlag set to 1 due to interlace coding.");
    input->directInferenceFlag=1;
  }

  if (input->PicInterlace>0)
  {
    if (input->IntraBottom!=0 && input->IntraBottom!=1)
    {
      snprintf(errortext, ET_SIZE, "Incorrect value %d for IntraBottom. Use 0 (disable) or 1 (enable).", input->IntraBottom);
      error (errortext, 400);
    }
  } 
  // Cabac/UVLC consistency check
  if (input->symbol_mode != UVLC && input->symbol_mode != CABAC)
  {
    snprintf (errortext, ET_SIZE, "Unsupported symbol mode=%d, use UVLC=0 or CABAC=1",input->symbol_mode);
    error (errortext, 400);
  }

  // Open Files
  if ((p_in=open(input->infile, OPENFLAGS_READ))==-1)
  {
    snprintf(errortext, ET_SIZE, "Input file %s does not exist",input->infile);
    error (errortext, 500);
  }

  if (strlen (input->ReconFile) > 0 && (p_dec=open(input->ReconFile, OPENFLAGS_WRITE, OPEN_PERMISSIONS))==-1)
  {
    snprintf(errortext, ET_SIZE, "Error open file %s", input->ReconFile);
    error (errortext, 500);
  }

  if (strlen (input->TraceFile) > 0 && (p_trace=fopen(input->TraceFile,"w"))==NULL)
  {
    snprintf(errortext, ET_SIZE, "Error open file %s", input->TraceFile);
    error (errortext, 500);
  }


  // consistency check size information
  /*
  if (input->img_height % 16 != 0 || input->img_width % 16 != 0)
  {
    snprintf(errortext, ET_SIZE, "Unsupported image format x=%d,y=%d, must be a multiple of 16",input->img_width,input->img_height);
    error (errortext, 400);
  }

  if (input->PicInterlace || input->MbInterlace)
  {
    if (input->img_height % 32 != 0 )
    { 
      snprintf(errortext, ET_SIZE, "Unsupported image format y=%d, must be a multiple of 32 for adaptive frame/field",input->img_height);
      error (errortext, 400);
    }
  }
 */
  if (input->img_width % 16 != 0)
  {
    img->auto_crop_right = 16-(input->img_width % 16);
  }
  else
  {
    img->auto_crop_right=0;
  }
  if (input->PicInterlace || input->MbInterlace)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色黄大片手机版| 久久久久久黄色| 亚洲国产乱码最新视频| 色婷婷久久久综合中文字幕| 中文字幕亚洲一区二区av在线| 国产盗摄一区二区三区| 国产区在线观看成人精品| 成人免费视频视频| 91福利在线免费观看| 亚洲最大成人综合| 91精品欧美一区二区三区综合在| 五月激情综合婷婷| 欧美一二三四在线| 国产成人综合精品三级| **欧美大码日韩| 免费成人在线播放| 日韩女优毛片在线| 风流少妇一区二区| 亚洲黄色性网站| 91精品国产aⅴ一区二区| 国产最新精品免费| 亚洲天堂中文字幕| 91精品国产综合久久久久久久 | 国产精品第13页| 日韩一区二区三区免费观看 | 国产一区在线观看麻豆| 91国模大尺度私拍在线视频| 肉丝袜脚交视频一区二区| 日韩写真欧美这视频| 国产成人免费网站| 亚洲va天堂va国产va久| 久久久精品蜜桃| 欧美在线制服丝袜| 国产一区中文字幕| 香蕉乱码成人久久天堂爱免费| 久久综合九色综合欧美亚洲| 色综合久久综合网欧美综合网| 免费观看一级欧美片| 中文字幕一区av| 亚洲精品一区二区三区四区高清| 亚洲狠狠爱一区二区三区| 欧美日本国产视频| 不卡的av在线| 毛片av中文字幕一区二区| 亚洲色欲色欲www在线观看| 91精品国产高清一区二区三区| 一区二区欧美精品| 日韩一区二区三区视频在线| aaa亚洲精品| 日日骚欧美日韩| 国产精品久久午夜夜伦鲁鲁| 91精品国产一区二区| 91美女视频网站| 国产永久精品大片wwwapp| 无码av中文一区二区三区桃花岛| 国产精品色噜噜| 欧美mv和日韩mv的网站| 色综合久久综合网欧美综合网| 国产精品中文有码| 美女一区二区三区| 五月天欧美精品| 一二三区精品视频| 最近中文字幕一区二区三区| 国产日韩综合av| 欧美精品一区二区三区视频| 91精品国产一区二区三区 | 精品久久一二三区| 欧美老女人第四色| 一区二区三区四区中文字幕| 国产精品毛片久久久久久久| 中文字幕欧美区| 一区二区高清在线| 国产在线播放一区| 午夜视频在线观看一区| 亚洲人成影院在线观看| 亚洲欧美综合另类在线卡通| 欧美激情一区二区| 欧美国产欧美综合| 国产欧美视频在线观看| 久久精品免视看| 日本一区二区免费在线| 国产亚洲精品资源在线26u| 精品国产a毛片| 欧美精品一区二区三区在线| 久久久久久久久免费| 久久久久久久久免费| 久久久久一区二区三区四区| 久久久久88色偷偷免费| 欧美激情在线看| 国产女人aaa级久久久级 | 色呦呦网站一区| 色噜噜狠狠色综合欧洲selulu| 日本久久电影网| 欧美日韩国产天堂| 日韩精品一区二区三区在线观看 | 26uuu国产日韩综合| 欧美精品一区二区三区蜜桃| 日本一区二区免费在线| 91视频国产观看| 久久精品人人做| 国产欧美一区二区精品秋霞影院 | 日韩毛片一二三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产精品国产自产拍高清av王其 | 制服丝袜亚洲播放| 欧美成人高清电影在线| 精品福利一区二区三区 | 日韩视频一区二区三区在线播放| 日韩精品专区在线影院观看| 国产欧美日本一区二区三区| 亚洲久草在线视频| 污片在线观看一区二区| 国产在线不卡一区| 91在线视频在线| 91精品国产综合久久蜜臀| 久久日一线二线三线suv| 136国产福利精品导航| 天天影视网天天综合色在线播放| 国内偷窥港台综合视频在线播放| 99久久综合国产精品| 欧美日韩一二三| 国产精品全国免费观看高清 | 成人免费高清在线观看| 欧美日韩在线观看一区二区| 欧美精品一区二区三区蜜桃 | 91尤物视频在线观看| 欧美日韩国产在线播放网站| 国产欧美精品在线观看| 日韩精品国产欧美| 成人av网址在线观看| 在线播放/欧美激情| 中文字幕中文字幕一区| 蜜乳av一区二区| 一本色道**综合亚洲精品蜜桃冫 | 精品三级在线观看| 亚洲男人的天堂av| 国产精品一级片| 欧美日本在线一区| 中文字幕一区不卡| 韩国av一区二区三区四区| 欧美色网一区二区| 日韩久久一区二区| 国产福利精品一区二区| 91精品国产综合久久精品麻豆| 亚洲丝袜自拍清纯另类| 国内精品国产成人国产三级粉色| 欧美性猛交xxxxxx富婆| 国产精品成人一区二区艾草 | 欧美一卡二卡在线| 亚洲一区在线观看网站| 波多野洁衣一区| 国产午夜精品在线观看| 久久精品国产精品青草| 欧美色窝79yyyycom| 国产精品久久久久一区二区三区 | 久久久久久亚洲综合影院红桃| 亚洲成人av资源| 色婷婷亚洲综合| 久久综合久久综合亚洲| 五月天网站亚洲| 欧美日本高清视频在线观看| 一区二区三区加勒比av| 99久久精品费精品国产一区二区| 国产亚洲精品bt天堂精选| 青青国产91久久久久久| 538在线一区二区精品国产| 亚洲综合色区另类av| 91福利在线看| 曰韩精品一区二区| 色综合久久综合网| 亚洲综合色区另类av| 欧洲精品一区二区三区在线观看| 中文字幕一区二区日韩精品绯色| 9久草视频在线视频精品| 国产精品伦一区| 91日韩精品一区| 一区二区三区色| 欧美日韩中文精品| 日韩av网站在线观看| 欧美va亚洲va在线观看蝴蝶网| 麻豆国产精品视频| 欧美精品一区二区三区很污很色的| 精品午夜久久福利影院 | 亚洲精品视频在线观看免费| 色综合中文字幕国产 | 久久久久久久久97黄色工厂| 成人污视频在线观看| 自拍视频在线观看一区二区| 91啦中文在线观看| 亚洲国产视频a| 日韩欧美国产综合| 国产成人综合亚洲网站| 中文字幕亚洲综合久久菠萝蜜| 成人久久18免费网站麻豆 | 久久久777精品电影网影网| 国产精品一区三区| 亚洲图片另类小说| 欧美久久久久久久久久| 九九九久久久精品| 国产精品成人免费精品自在线观看|