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

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

?? parset.c

?? h264標準的VC實現
?? C
?? 第 1 頁 / 共 3 頁
字號:
      if(i<6)
        sps->seq_scaling_list_present_flag[i] = (input->ScalingListPresentFlag[i]&1);
      else
      {
        if(pps->transform_8x8_mode_flag)
          sps->seq_scaling_list_present_flag[i] = (input->ScalingListPresentFlag[i]&1);
        else
          sps->seq_scaling_list_present_flag[i] = 0;
      }
    }

    pps->pic_scaling_matrix_present_flag = (input->ScalingMatrixPresentFlag&2)>>1;
    for(i=0; i<8; i++)
    {
      if(i<6)
        pps->pic_scaling_list_present_flag[i] = (input->ScalingListPresentFlag[i]&2)>>1;
      else
      {
        if(pps->transform_8x8_mode_flag)
          pps->pic_scaling_list_present_flag[i] = (input->ScalingListPresentFlag[i]&2)>>1;
        else
          pps->pic_scaling_list_present_flag[i] = 0;
      }
    }
  }
  else
  {
    sps->seq_scaling_matrix_present_flag = 0;
    for(i=0; i<8; i++)
      sps->seq_scaling_list_present_flag[i] = 0;

    pps->pic_scaling_matrix_present_flag = 0;
    for(i=0; i<8; i++)
      pps->pic_scaling_list_present_flag[i] = 0;

    pps->transform_8x8_mode_flag = input->AllowTransform8x8 = 0;
  }

  // JVT-Fxxx (by Stephan Wenger, make this flag unconditional
  pps->pic_order_present_flag = img->pic_order_present_flag;


  // Begin FMO stuff
  pps->num_slice_groups_minus1 = input->num_slice_groups_minus1;

	
  //! Following set the parameter for different slice group types
  if (pps->num_slice_groups_minus1 > 0)
    switch (input->slice_group_map_type)
    {
    case 0:
			
      pps->slice_group_map_type = 0;
      for(i=0; i<=pps->num_slice_groups_minus1; i++)
      {
        pps->run_length_minus1[i]=input->run_length_minus1[i];
      }
			
      break;
    case 1:
      pps->slice_group_map_type = 1;
      break;
    case 2:
      // i loops from 0 to num_slice_groups_minus1-1, because no info for background needed
      pps->slice_group_map_type = 2;
      for(i=0; i<pps->num_slice_groups_minus1; i++)
      {
        pps->top_left[i] = input->top_left[i];
        pps->bottom_right[i] = input->bottom_right[i];      
      }
     break;
    case 3:
    case 4:
    case 5:
      pps->slice_group_map_type = input->slice_group_map_type;
			
      pps->slice_group_change_direction_flag = input->slice_group_change_direction_flag;
      pps->slice_group_change_rate_minus1 = input->slice_group_change_rate_minus1;
      break;
    case 6:
      pps->slice_group_map_type = 6;   
      pps->pic_size_in_map_units_minus1 = 
				((input->img_height/MB_BLOCK_SIZE)/(2-sps->frame_mbs_only_flag))
				*(input->img_width/MB_BLOCK_SIZE) -1;
			
      for (i=0;i<=pps->pic_size_in_map_units_minus1; i++)
        pps->slice_group_id[i] = input->slice_group_id[i];
			
      break;
    default:
      printf ("Parset.c: slice_group_map_type invalid, default\n");
      assert (0==1);
    }
// End FMO stuff

  pps->num_ref_idx_l0_active_minus1 = sps->frame_mbs_only_flag ? (sps->num_ref_frames-1) : (2 * sps->num_ref_frames - 1) ;   // set defaults
  pps->num_ref_idx_l1_active_minus1 = sps->frame_mbs_only_flag ? (sps->num_ref_frames-1) : (2 * sps->num_ref_frames - 1) ;   // set defaults
  //pps->num_ref_idx_l1_active_minus1 = sps->frame_mbs_only_flag ? 0 : 1 ;   // set defaults

  
  pps->weighted_pred_flag = input->WeightedPrediction;
  pps->weighted_bipred_idc = input->WeightedBiprediction;

  pps->pic_init_qp_minus26 = 0;         // hard coded to zero, QP lives in the slice header
  pps->pic_init_qs_minus26 = 0;

  pps->chroma_qp_index_offset = input->chroma_qp_index_offset;      // double check: is this chroma fidelity thing already implemented???
  if (frext_profile)
  {
    pps->cb_qp_index_offset     = input->cb_qp_index_offset;
    pps->cr_qp_index_offset     = input->cr_qp_index_offset;
  }
  else
    pps->cb_qp_index_offset = pps->cr_qp_index_offset = pps->chroma_qp_index_offset;

  pps->deblocking_filter_control_present_flag = input->LFSendParameters;
  pps->constrained_intra_pred_flag = input->UseConstrainedIntraPred;
  
  pps->redundant_pic_cnt_present_flag = 0;

  // the picture vui consists currently of the cropping rectangle, which cannot
  // used by the current decoder and hence is never sent.
  sps->frame_cropping_flag = FALSE;
};

/*! 
 *************************************************************************************
 * \brief
 *    syntax for scaling list matrix values
 *
 * \param scalingListinput
 *    input scaling list
 * \param scalingList
 *    scaling list to be used
 * \param sizeOfScalingList
 *    size of the scaling list
 * \param UseDefaultScalingMatrix
 *    usage of default Scaling Matrix
 * \param partition
 *    partition info for writing syntax
 *
 * \return
 *    size of the RBSP in bytes
 *
 *************************************************************************************
 */
int Scaling_List(short *scalingListinput, short *scalingList, int sizeOfScalingList, short *UseDefaultScalingMatrix, DataPartition *partition)
{
  int j, scanj;
  int len=0;
  int delta_scale, lastScale, nextScale;

  lastScale = 8;
  nextScale = 8;

  for(j=0; j<sizeOfScalingList; j++)
  {
    scanj = (sizeOfScalingList==16) ? ZZ_SCAN[j]:ZZ_SCAN8[j];

    if(nextScale!=0)
    {
      delta_scale = scalingListinput[scanj]-lastScale; // Calculate delta from the scalingList data from the input file
      if(delta_scale>127)
        delta_scale=delta_scale-256;
      else if(delta_scale<-128)
        delta_scale=delta_scale+256;

      len+=se_v ("   : delta_sl   ",                      delta_scale,                       partition);
      nextScale = scalingListinput[scanj];
      *UseDefaultScalingMatrix|=(scanj==0 && nextScale==0); // Check first matrix value for zero
    }

    scalingList[scanj] = (nextScale==0) ? lastScale:nextScale; // Update the actual scalingList matrix with the correct values
    lastScale = scalingList[scanj];
  }

  return len;
}


/*! 
 *************************************************************************************
 * \brief
 *    int GenerateSeq_parameter_set_rbsp (seq_parameter_set_rbsp_t *sps, char *rbsp);
 *
 * \param sps
 *    sequence parameter structure
 * \param rbsp
 *    buffer to be filled with the rbsp, size should be at least MAXIMUMPARSETRBSPSIZE
 *
 * \return
 *    size of the RBSP in bytes
 *
 * \note
 *    Sequence Parameter VUI function is called, but the function implements
 *    an exit (-1)
 *************************************************************************************
 */
int GenerateSeq_parameter_set_rbsp (seq_parameter_set_rbsp_t *sps, char *rbsp)
{
  DataPartition *partition;
  int len = 0, LenInBytes;
  unsigned i;

  assert (rbsp != NULL);
  // In order to use the entropy coding functions from golomb.c we need 
  // to allocate a partition structure.  It will be freed later in this
  // function
  if ((partition=calloc(1,sizeof(DataPartition)))==NULL) no_mem_exit("SeqParameterSet:partition");
  if ((partition->bitstream=calloc(1, sizeof(Bitstream)))==NULL) no_mem_exit("SeqParameterSet:bitstream");
  // .. and use the rbsp provided (or allocated above) for the data
  partition->bitstream->streamBuffer = rbsp;
  partition->bitstream->bits_to_go = 8;

  len+=u_v  (8, "SPS: profile_idc",                             sps->profile_idc,                               partition);

  len+=u_1  ("SPS: constrained_set0_flag",                      sps->constrained_set0_flag,    partition);
  len+=u_1  ("SPS: constrained_set1_flag",                      sps->constrained_set1_flag,    partition);
  len+=u_1  ("SPS: constrained_set2_flag",                      sps->constrained_set2_flag,    partition);
  len+=u_1  ("SPS: constrained_set3_flag",                      sps->constrained_set3_flag,    partition);
  len+=u_v  (4, "SPS: reserved_zero_4bits",                     0,                             partition);

  len+=u_v  (8, "SPS: level_idc",                               sps->level_idc,                                 partition);

  len+=ue_v ("SPS: seq_parameter_set_id",                    sps->seq_parameter_set_id,                      partition);

  // Fidelity Range Extensions stuff
  if((sps->profile_idc==FREXT_HP) || 
     (sps->profile_idc==FREXT_Hi10P) ||
     (sps->profile_idc==FREXT_Hi422) ||
     (sps->profile_idc==FREXT_Hi444))
  {
    len+=ue_v ("SPS: chroma_format_idc",                        img->yuv_format,                                 partition);
    if(img->yuv_format == 3)
      len+=u_1  ("SPS: residue_transform_flag",                 img->residue_transform_flag,                     partition);
    len+=ue_v ("SPS: bit_depth_luma_minus8",                    sps->bit_depth_luma_minus8,                      partition);
    len+=ue_v ("SPS: bit_depth_chroma_minus8",                  sps->bit_depth_chroma_minus8,                    partition);
    len+=u_1  ("SPS: lossless_qpprime_y_zero_flag",             img->lossless_qpprime_flag,                      partition);
    //other chroma info to be added in the future

    len+=u_1 ("SPS: seq_scaling_matrix_present_flag",           sps->seq_scaling_matrix_present_flag,            partition);

    if(sps->seq_scaling_matrix_present_flag)
    {
      for(i=0; i<8; i++)
      {
        len+=u_1 ("SPS: seq_scaling_list_present_flag",         sps->seq_scaling_list_present_flag[i],           partition);
        if(sps->seq_scaling_list_present_flag[i])
        {
          if(i<6)
            len+=Scaling_List(ScalingList4x4input[i], ScalingList4x4[i], 16, &UseDefaultScalingMatrix4x4Flag[i], partition);
          else
            len+=Scaling_List(ScalingList8x8input[i-6], ScalingList8x8[i-6], 64, &UseDefaultScalingMatrix8x8Flag[i-6], partition);
        }
      }
    }
  }

  len+=ue_v ("SPS: log2_max_frame_num_minus4",               sps->log2_max_frame_num_minus4,                 partition);
  len+=ue_v ("SPS: pic_order_cnt_type",                      sps->pic_order_cnt_type,                        partition);

  if (sps->pic_order_cnt_type == 0)
    len+=ue_v ("SPS: log2_max_pic_order_cnt_lsb_minus4",     sps->log2_max_pic_order_cnt_lsb_minus4,         partition);
  else if (sps->pic_order_cnt_type == 1)
  {
    len+=u_1  ("SPS: delta_pic_order_always_zero_flag",        sps->delta_pic_order_always_zero_flag,          partition);
    len+=se_v ("SPS: offset_for_non_ref_pic",                  sps->offset_for_non_ref_pic,                    partition);
    len+=se_v ("SPS: offset_for_top_to_bottom_field",          sps->offset_for_top_to_bottom_field,            partition);
    len+=ue_v ("SPS: num_ref_frames_in_pic_order_cnt_cycle",   sps->num_ref_frames_in_pic_order_cnt_cycle,     partition);
    for (i=0; i<sps->num_ref_frames_in_pic_order_cnt_cycle; i++)
      len+=se_v ("SPS: offset_for_ref_frame",                  sps->offset_for_ref_frame[i],                      partition);
  }
  len+=ue_v ("SPS: num_ref_frames",                          sps->num_ref_frames,                            partition);
  len+=u_1  ("SPS: gaps_in_frame_num_value_allowed_flag",    sps->gaps_in_frame_num_value_allowed_flag,      partition);
  len+=ue_v ("SPS: pic_width_in_mbs_minus1",                 sps->pic_width_in_mbs_minus1,                   partition);
  len+=ue_v ("SPS: pic_height_in_map_units_minus1",          sps->pic_height_in_map_units_minus1,            partition);
  len+=u_1  ("SPS: frame_mbs_only_flag",                     sps->frame_mbs_only_flag,                       partition);
  if (!sps->frame_mbs_only_flag)
  {
    len+=u_1  ("SPS: mb_adaptive_frame_field_flag",            sps->mb_adaptive_frame_field_flag,              partition);
  }
  len+=u_1  ("SPS: direct_8x8_inference_flag",               sps->direct_8x8_inference_flag,                 partition);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品视频网站| 欧美日韩电影在线播放| 亚洲美女在线国产| 欧美久久一二区| va亚洲va日韩不卡在线观看| 日韩中文字幕一区二区三区| 精品国产欧美一区二区| 在线观看日韩电影| 国产伦理精品不卡| 婷婷综合五月天| 亚洲人精品午夜| 日韩精品一区在线| 欧美日韩一卡二卡三卡| 99久久免费国产| 男女男精品视频| 亚洲国产一区二区视频| 国产精品成人免费在线| 久久丝袜美腿综合| 欧美一区二区三区思思人| 色网站国产精品| aa级大片欧美| 成人精品视频一区| 国产99久久久国产精品| 久久精品国产一区二区三| 午夜国产不卡在线观看视频| 玉米视频成人免费看| 欧美国产日韩在线观看| 久久亚洲综合av| 成人理论电影网| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区高清| 亚洲精品国产视频| 亚洲欧洲日产国码二区| 国产精品全国免费观看高清 | 精品亚洲国产成人av制服丝袜| 亚洲国产综合视频在线观看| 一区二区三区在线视频播放| 亚洲乱码国产乱码精品精的特点| 国产精品网站在线播放| 欧美韩国一区二区| 国产精品美女一区二区三区| 国产精品丝袜久久久久久app| 久久精品欧美一区二区三区不卡| 久久夜色精品一区| 久久久精品人体av艺术| 国产欧美日韩三区| 欧美高清在线精品一区| 国产精品超碰97尤物18| 亚洲欧美综合网| 亚洲欧洲av在线| 亚洲另类春色国产| 亚洲国产乱码最新视频 | 中文字幕欧美区| 国产精品人人做人人爽人人添 | 精品久久一区二区三区| 日韩视频不卡中文| 久久午夜色播影院免费高清| 国产片一区二区| 亚洲色图另类专区| 亚洲成人高清在线| 久久99精品久久久久久| 国产精品中文有码| 99久久综合精品| 欧美日韩一区中文字幕| 欧美变态凌虐bdsm| 中文字幕av免费专区久久| 欧美国产禁国产网站cc| 一区二区三区中文字幕在线观看| 三级在线观看一区二区 | 国产成人av网站| 97久久精品人人澡人人爽| 欧美手机在线视频| 精品1区2区在线观看| 国产精品久久夜| 五月激情丁香一区二区三区| 激情五月激情综合网| jvid福利写真一区二区三区| 精品视频1区2区3区| 欧美精品一区二区三区高清aⅴ| 国产精品亲子伦对白| 亚洲成人av福利| 国内精品国产成人| 色噜噜夜夜夜综合网| 日韩精品中文字幕在线一区| 国产精品国产三级国产aⅴ中文| 日韩理论片网站| 亚洲成人激情社区| 国产成都精品91一区二区三| 色婷婷亚洲综合| 欧美精品一区二| 一区二区不卡在线播放| 国模一区二区三区白浆| 91久久精品午夜一区二区| ww久久中文字幕| 亚洲一区二区精品3399| 国产成人日日夜夜| 欧美精品九九99久久| 国产精品久久久久久久久免费樱桃| 天天操天天干天天综合网| 成人av在线资源| 欧美一三区三区四区免费在线看| 国产精品久久福利| 国产综合色精品一区二区三区| 91福利在线看| 国产精品久线在线观看| 蜜桃一区二区三区在线| 91美女福利视频| 偷窥国产亚洲免费视频| 欧美一级片免费看| 99天天综合性| 蜜桃av噜噜一区二区三区小说| 美女爽到高潮91| 欧美在线视频全部完| 中文字幕不卡在线观看| 国产乱人伦偷精品视频免下载| 欧美影院午夜播放| 亚洲欧美日韩国产中文在线| 国产成人在线视频免费播放| 韩国视频一区二区| 精品伦理精品一区| 懂色av中文字幕一区二区三区| 国产精品免费视频一区| 一本色道久久综合精品竹菊| 一区二区三区美女| 欧美日韩午夜精品| 欧美mv日韩mv国产网站| 国产精品中文字幕一区二区三区| 国产精品视频看| 在线一区二区视频| 日本不卡不码高清免费观看| 精品久久人人做人人爽| eeuss影院一区二区三区| 亚洲欧美日韩成人高清在线一区| 在线观看91视频| 开心九九激情九九欧美日韩精美视频电影| 精品国产乱子伦一区| 国产高清不卡一区二区| 亚洲乱码日产精品bd| 5858s免费视频成人| 国产精品一卡二卡| 夜夜爽夜夜爽精品视频| 日韩欧美在线网站| 成人激情综合网站| 五月综合激情网| 国产亚洲女人久久久久毛片| 色婷婷久久99综合精品jk白丝| 日韩经典一区二区| 国产精品区一区二区三区 | 6080国产精品一区二区| 风间由美一区二区三区在线观看| 一区二区三区中文免费| 久久亚洲欧美国产精品乐播 | 日韩欧美在线123| 成人成人成人在线视频| 天天影视涩香欲综合网| 久久综合九色综合97婷婷女人 | 亚洲黄色小说网站| 欧美丰满高潮xxxx喷水动漫| 国产在线视频不卡二| 亚洲色图都市小说| 欧美精品一区二区精品网| 91免费在线视频观看| 麻豆精品一区二区av白丝在线| 国产精品久久久久久久蜜臀| 欧美一区二区视频观看视频| 波多野结衣的一区二区三区| 毛片av一区二区三区| 亚洲欧美日韩综合aⅴ视频| 日韩美女一区二区三区四区| 99久久久精品免费观看国产蜜| 日本美女视频一区二区| 亚洲美腿欧美偷拍| 欧美激情在线免费观看| 日韩一区二区电影| 在线免费观看视频一区| 成人爱爱电影网址| 国产真实精品久久二三区| 亚洲一二三四区| 国产精品久久久久永久免费观看| 日韩视频免费直播| 欧美日韩视频一区二区| 懂色一区二区三区免费观看| 久久99精品国产91久久来源| 亚洲成a人片综合在线| 亚洲视频免费在线| 国产日韩欧美在线一区| 欧美成人在线直播| 在线不卡一区二区| 91成人免费电影| 99精品热视频| 成人精品免费网站| 国产成人三级在线观看| 国产精选一区二区三区| 久久69国产一区二区蜜臀| 日韩中文字幕区一区有砖一区| 亚洲福利电影网| 一区二区日韩av| 亚洲黄色在线视频| 蜜桃av一区二区| 成人欧美一区二区三区|