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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? parset.c

?? 一個(gè)簡(jiǎn)單的視頻會(huì)議VC++MFC工程文件
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
  // FMO stuff begins here
  if (pps->num_slice_groups_minus1 > 0)
  {
    pps->slice_group_map_type               = ue_v ("PPS: slice_group_map_type"                , s);
    if (pps->slice_group_map_type == 0)
    {
      for (i=0; i<=pps->num_slice_groups_minus1; i++)
        pps->run_length_minus1 [i]                  = ue_v ("PPS: run_length_minus1 [i]"              , s);
    }
    else if (pps->slice_group_map_type == 2)
    {
      for (i=0; i<pps->num_slice_groups_minus1; i++)
      {
        //! JVT-F078: avoid reference of SPS by using ue(v) instead of u(v)
        pps->top_left [i]                          = ue_v ("PPS: top_left [i]"                        , s);
        pps->bottom_right [i]                      = ue_v ("PPS: bottom_right [i]"                    , s);
      }
    }
    else if (pps->slice_group_map_type == 3 ||
             pps->slice_group_map_type == 4 ||
             pps->slice_group_map_type == 5)
    {
      pps->slice_group_change_direction_flag     = u_1  ("PPS: slice_group_change_direction_flag"      , s);
      pps->slice_group_change_rate_minus1        = ue_v ("PPS: slice_group_change_rate_minus1"         , s);
    }
    else if (pps->slice_group_map_type == 6)
    {
      if (pps->num_slice_groups_minus1+1 >4)
        NumberBitsPerSliceGroupId = 3;
      else if (pps->num_slice_groups_minus1+1 > 2)
        NumberBitsPerSliceGroupId = 2;
      else
        NumberBitsPerSliceGroupId = 1;
      //! JVT-F078, exlicitly signal number of MBs in the map
      pps->num_slice_group_map_units_minus1      = ue_v ("PPS: num_slice_group_map_units_minus1"               , s);
      for (i=0; i<=pps->num_slice_group_map_units_minus1; i++)
        pps->slice_group_id[i] = u_v (NumberBitsPerSliceGroupId, "slice_group_id[i]", s);
    }
  }

  // End of FMO stuff

  pps->num_ref_idx_l0_active_minus1          = ue_v ("PPS: num_ref_idx_l0_active_minus1"           , s);
  pps->num_ref_idx_l1_active_minus1          = ue_v ("PPS: num_ref_idx_l1_active_minus1"           , s);
  pps->weighted_pred_flag                    = u_1  ("PPS: weighted prediction flag"               , s);
  pps->weighted_bipred_idc                   = u_v  ( 2, "PPS: weighted_bipred_idc"                , s);
  pps->pic_init_qp_minus26                   = se_v ("PPS: pic_init_qp_minus26"                    , s);
  pps->pic_init_qs_minus26                   = se_v ("PPS: pic_init_qs_minus26"                    , s);

  pps->chroma_qp_index_offset                = se_v ("PPS: chroma_qp_index_offset"                 , s);

  pps->deblocking_filter_control_present_flag = u_1 ("PPS: deblocking_filter_control_present_flag" , s);
  pps->constrained_intra_pred_flag           = u_1  ("PPS: constrained_intra_pred_flag"            , s);
  pps->redundant_pic_cnt_present_flag        = u_1  ("PPS: redundant_pic_cnt_present_flag"         , s);

  if(more_rbsp_data(s->streamBuffer, s->frame_bitoffset,s->bitstream_length)) // more_data_in_rbsp()
  {
    //Fidelity Range Extensions Stuff
    pps->transform_8x8_mode_flag           = u_1  ("PPS: transform_8x8_mode_flag"                , s);
    pps->pic_scaling_matrix_present_flag     = u_1  ("PPS: pic_scaling_matrix_present_flag"        , s);

    if(pps->pic_scaling_matrix_present_flag)
    {
      for(i=0; i<(6+((unsigned)pps->transform_8x8_mode_flag<<1)); i++)
      {
        pps->pic_scaling_list_present_flag[i]= u_1  ("PPS: pic_scaling_list_present_flag"          , s);

        if(pps->pic_scaling_list_present_flag[i])
        {
          if(i<6)
            Scaling_List(pps->ScalingList4x4[i], 16, &pps->UseDefaultScalingMatrix4x4Flag[i], s);
          else
            Scaling_List(pps->ScalingList8x8[i-6], 64, &pps->UseDefaultScalingMatrix8x8Flag[i-6], s);
        }
      }
    }
    pps->second_chroma_qp_index_offset      = se_v ("PPS: second_chroma_qp_index_offset"          , s);
  }
  else
  {
    pps->second_chroma_qp_index_offset      = pps->chroma_qp_index_offset;
  }

  pps->Valid = TRUE;
  return UsedBits;
}


void PPSConsistencyCheck (pic_parameter_set_rbsp_t *pps)
{
  printf ("Consistency checking a picture parset, to be implemented\n");
//  if (pps->seq_parameter_set_id invalid then do something)
}

void SPSConsistencyCheck (seq_parameter_set_rbsp_t *sps)
{
  printf ("Consistency checking a sequence parset, to be implemented\n");
}

void MakePPSavailable (int id, pic_parameter_set_rbsp_t *pps)
{
  assert (pps->Valid == TRUE);

  if (PicParSet[id].Valid == TRUE && PicParSet[id].slice_group_id != NULL)
    free (PicParSet[id].slice_group_id);

  memcpy (&PicParSet[id], pps, sizeof (pic_parameter_set_rbsp_t));

  if ((PicParSet[id].slice_group_id = calloc (PicParSet[id].num_slice_group_map_units_minus1+1, sizeof(int))) == NULL)
    no_mem_exit ("MakePPSavailable: Cannot calloc slice_group_id");
  
  memcpy (PicParSet[id].slice_group_id, pps->slice_group_id, (pps->num_slice_group_map_units_minus1+1)*sizeof(int));
}

void MakeSPSavailable (int id, seq_parameter_set_rbsp_t *sps)
{
  assert (sps->Valid == TRUE);
  memcpy (&SeqParSet[id], sps, sizeof (seq_parameter_set_rbsp_t));
}


void ProcessSPS (NALU_t *nalu)
{
  DataPartition *dp = AllocPartition(1);
  seq_parameter_set_rbsp_t *sps = AllocSPS();
  int dummy;

  memcpy (dp->bitstream->streamBuffer, &nalu->buf[1], nalu->len-1);
  dp->bitstream->code_len = dp->bitstream->bitstream_length = RBSPtoSODB (dp->bitstream->streamBuffer, nalu->len-1);
  dp->bitstream->ei_flag = 0;
  dp->bitstream->read_len = dp->bitstream->frame_bitoffset = 0;
  dummy = InterpretSPS (dp, sps);

  if (active_sps)
  {
    if (sps->seq_parameter_set_id == active_sps->seq_parameter_set_id)
    {
      if (!sps_is_equal(sps, active_sps))
      {
        if (dec_picture)
        {
          // this may only happen on slice loss
          exit_picture();
        }
        active_sps=NULL;
      }
    }
  }
  // SPSConsistencyCheck (pps);
  MakeSPSavailable (sps->seq_parameter_set_id, sps);
  img->profile_idc = sps->profile_idc; //ADD-VG

  FreePartition (dp, 1);
  FreeSPS (sps);
}


void ProcessPPS (NALU_t *nalu)
{
  DataPartition *dp;
  pic_parameter_set_rbsp_t *pps;
  int dummy;

  dp = AllocPartition(1);
  pps = AllocPPS();
  memcpy (dp->bitstream->streamBuffer, &nalu->buf[1], nalu->len-1);
  dp->bitstream->code_len = dp->bitstream->bitstream_length = RBSPtoSODB (dp->bitstream->streamBuffer, nalu->len-1);
  dp->bitstream->ei_flag = 0;
  dp->bitstream->read_len = dp->bitstream->frame_bitoffset = 0;
  dummy = InterpretPPS (dp, pps);
  // PPSConsistencyCheck (pps);
  if (active_pps)
  {
    if (pps->pic_parameter_set_id == active_pps->pic_parameter_set_id)
    {
      if (!pps_is_equal(pps, active_pps))
      {
        if (dec_picture)
        {
          // this may only happen on slice loss
          exit_picture();
        }
        active_pps = NULL;
      }
    }
  }
  MakePPSavailable (pps->pic_parameter_set_id, pps);
  FreePartition (dp, 1);
  FreePPS (pps);
}

void activate_sps (seq_parameter_set_rbsp_t *sps)
{
  if (active_sps != sps)
  {
    if (dec_picture)
    {
      // this may only happen on slice loss
      exit_picture();
    }
    active_sps = sps;

    img->bitdepth_chroma = 0;
    img->width_cr        = 0;
    img->height_cr       = 0;

    // Fidelity Range Extensions stuff (part 1)
    img->bitdepth_luma   = sps->bit_depth_luma_minus8 + 8;
    if (sps->chroma_format_idc != YUV400)
      img->bitdepth_chroma = sps->bit_depth_chroma_minus8 + 8;  

    img->MaxFrameNum = 1<<(sps->log2_max_frame_num_minus4+4);
    img->PicWidthInMbs = (sps->pic_width_in_mbs_minus1 +1);
    img->PicHeightInMapUnits = (sps->pic_height_in_map_units_minus1 +1);
    img->FrameHeightInMbs = ( 2 - sps->frame_mbs_only_flag ) * img->PicHeightInMapUnits;
    img->FrameSizeInMbs = img->PicWidthInMbs * img->FrameHeightInMbs;
    
    img->yuv_format=sps->chroma_format_idc;

    img->width = img->PicWidthInMbs * MB_BLOCK_SIZE;
    img->height = img->FrameHeightInMbs * MB_BLOCK_SIZE;

    if (sps->chroma_format_idc == YUV420)
    {
      img->width_cr = img->width /2;
      img->height_cr = img->height / 2;
    }
    else if (sps->chroma_format_idc == YUV422)
    {
      img->width_cr = img->width /2;
      img->height_cr = img->height;
    }
    else if (sps->chroma_format_idc == YUV444)
    {
      //YUV444
      img->width_cr = img->width;
      img->height_cr = img->height;
    }

    init_frext(img);                                               
    init_global_buffers();
    if (!img->no_output_of_prior_pics_flag)
    {
      flush_dpb();
    }
    init_dpb();

    if (NULL!=Co_located)
    {
      free_colocated(Co_located);
    }
    Co_located = alloc_colocated (img->width, img->height,sps->mb_adaptive_frame_field_flag);
    ercInit(img->width, img->height, 1);
  }
}

void activate_pps(pic_parameter_set_rbsp_t *pps)
{
  if (active_pps != pps)
  {
    if (dec_picture)
    {
      // this may only happen on slice loss
      exit_picture();
    }

    active_pps = pps;

    // Fidelity Range Extensions stuff (part 2)
    img->AllowTransform8x8 = pps->transform_8x8_mode_flag;

  }
}  

void UseParameterSet (int PicParsetId)
{
  seq_parameter_set_rbsp_t *sps = &SeqParSet[PicParSet[PicParsetId].seq_parameter_set_id];
  pic_parameter_set_rbsp_t *pps = &PicParSet[PicParsetId];
  int i;


  if (PicParSet[PicParsetId].Valid != TRUE)
    printf ("Trying to use an invalid (uninitialized) Picture Parameter Set with ID %d, expect the unexpected...\n", PicParsetId);
  if (SeqParSet[PicParSet[PicParsetId].seq_parameter_set_id].Valid != TRUE)
    printf ("PicParset %d references an invalid (uninitialized) Sequence Parameter Set with ID %d, expect the unexpected...\n", PicParsetId, PicParSet[PicParsetId].seq_parameter_set_id);

  sps =  &SeqParSet[PicParSet[PicParsetId].seq_parameter_set_id];

  
  // In theory, and with a well-designed software, the lines above
  // are everything necessary.  In practice, we need to patch many values
  // in img-> (but no more in inp-> -- these have been taken care of)

  // Sequence Parameter Set Stuff first

//  printf ("Using Picture Parameter set %d and associated Sequence Parameter Set %d\n", PicParsetId, PicParSet[PicParsetId].seq_parameter_set_id);

  if (sps->pic_order_cnt_type < 0 || sps->pic_order_cnt_type > 2)  // != 1
  {
    printf ("invalid sps->pic_order_cnt_type = %d\n", sps->pic_order_cnt_type);
    error ("pic_order_cnt_type != 1", -1000);
  }

  if (sps->pic_order_cnt_type == 1)
  {
    if(sps->num_ref_frames_in_pic_order_cnt_cycle >= MAXnum_ref_frames_in_pic_order_cnt_cycle)
    {
      error("num_ref_frames_in_pic_order_cnt_cycle too large",-1011);
    }
  }
  
  activate_sps(sps);
  activate_pps(pps);


  // currSlice->dp_mode is set by read_new_slice (NALU first byte available there)
  if (pps->entropy_coding_mode_flag == UVLC)
  {
    nal_startcode_follows = uvlc_startcode_follows;
    for (i=0; i<3; i++)
    {
      img->currentSlice->partArr[i].readSyntaxElement = readSyntaxElement_UVLC;
    }
  }
  else
  {
    nal_startcode_follows = cabac_startcode_follows;
    for (i=0; i<3; i++)
    {
      img->currentSlice->partArr[i].readSyntaxElement = readSyntaxElement_CABAC;
    }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人aa视频在线观看| 日韩欧美一卡二卡| 国产传媒欧美日韩成人| 久久精品国产久精国产| 亚洲综合久久av| 亚洲久本草在线中文字幕| 中文字幕va一区二区三区| 久久久五月婷婷| 久久影音资源网| 亚洲精品自拍动漫在线| 国产精品久久久久四虎| 欧美国产日韩一二三区| 日韩免费福利电影在线观看| 欧美人妖巨大在线| 欧美三级日韩在线| 一本色道久久加勒比精品| 91蝌蚪国产九色| 91麻豆.com| 色94色欧美sute亚洲13| 欧美在线999| 欧美日韩亚洲国产综合| 欧美日韩一本到| 欧美精品久久一区| 在线视频一区二区三| 色综合久久99| 欧美羞羞免费网站| 欧美三级资源在线| 欧美疯狂性受xxxxx喷水图片| 欧美色综合网站| 国产91富婆露脸刺激对白| 不卡高清视频专区| 色天天综合久久久久综合片| 在线播放/欧美激情| 久久日韩精品一区二区五区| 国产精品视频第一区| 一区二区三区四区激情| 欧美aa在线视频| 国产a久久麻豆| 91国产免费看| 日韩欧美精品三级| 中文字幕在线观看一区| 视频一区欧美日韩| 国产激情视频一区二区在线观看| 色综合久久综合网欧美综合网| 欧美精品aⅴ在线视频| 久久久久久99久久久精品网站| 亚洲精品免费在线播放| 色综合中文字幕国产| 欧美一区永久视频免费观看| 日韩一区欧美小说| 久久成人精品无人区| 91小视频在线| 久久久亚洲高清| 亚洲电影在线播放| 成人av在线影院| 欧美一级淫片007| 亚洲免费色视频| 国产精一区二区三区| 欧美日韩亚洲高清一区二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 色屁屁一区二区| 精品av久久707| 亚洲综合视频在线| 懂色av一区二区夜夜嗨| 欧美一区欧美二区| 日韩毛片一二三区| 国产麻豆精品theporn| 欧美视频一区在线观看| 国产精品你懂的在线| 六月丁香婷婷色狠狠久久| 在线视频一区二区免费| 国产精品三级av在线播放| 久久国产精品无码网站| 欧美老人xxxx18| 亚洲色图.com| 成人一区二区三区| 精品国产一区二区在线观看| 首页国产欧美久久| 亚洲一二三区视频在线观看| 国产麻豆午夜三级精品| 欧美日韩一区高清| 一区二区三区欧美在线观看| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产电影在线观看| 国产一区二区三区免费看| 成人免费视频在线观看| 老司机午夜精品| 日韩欧美国产精品一区| 免费欧美在线视频| 51精品秘密在线观看| 男男gaygay亚洲| 欧美一区二区三区在线观看| 日韩精品一二区| 欧美mv日韩mv国产网站app| 精一区二区三区| 亚洲香蕉伊在人在线观| 色综合久久久久久久久久久| 国产一区 二区 三区一级| 亚洲一区二区三区精品在线| 99久久国产综合精品女不卡| 久久精品在线免费观看| 国产成人在线视频网址| 成人三级在线视频| 91丝袜美腿高跟国产极品老师| 中文字幕综合网| 国产69精品一区二区亚洲孕妇| 国产午夜精品久久久久久免费视 | 日韩国产欧美视频| 欧美肥大bbwbbw高潮| 免费看黄色91| 欧美精品一区二区三区四区| 国产一区二三区| 国产情人综合久久777777| 日韩成人一级大片| 亚洲男女毛片无遮挡| 在线免费观看不卡av| 狠狠色伊人亚洲综合成人| 亚洲欧美一区二区三区孕妇| 91精品国模一区二区三区| 国产aⅴ综合色| 亚洲v日本v欧美v久久精品| 精品国产91乱码一区二区三区| 99久久夜色精品国产网站| 免费的国产精品| 亚洲精品日韩一| 国产日产精品1区| 久久久久久久久久久久电影| 精品视频在线视频| 91在线看国产| 91理论电影在线观看| 国产毛片精品国产一区二区三区| 亚洲成人高清在线| 一区二区三区自拍| 亚洲免费观看在线观看| 国产精品亲子伦对白| 国产欧美日韩三级| 久久久久国产精品人| 欧美成人在线直播| 精品免费日韩av| 日韩欧美一级片| 欧美成人精精品一区二区频| 欧美日韩免费观看一区二区三区 | 精品成人私密视频| av日韩在线网站| 成+人+亚洲+综合天堂| 色综合一个色综合亚洲| 欧美二区在线观看| 国产亚洲精品免费| 亚洲欧洲综合另类| 日韩成人伦理电影在线观看| 欧美精品在线观看播放| 91久久精品一区二区| 精品久久久久久久人人人人传媒 | 国产精品久久久久久福利一牛影视 | 欧美日韩精品电影| 国产在线视频一区二区| 亚洲精品国产a| 久久蜜桃av一区二区天堂| 一区二区三区.www| 日韩成人一级片| 大尺度一区二区| 精品视频一区三区九区| 欧美sm极限捆绑bd| 国产精品免费丝袜| 日产国产欧美视频一区精品 | 成人一级视频在线观看| 91在线一区二区三区| 欧美一级一区二区| 国产精品成人在线观看| 性欧美疯狂xxxxbbbb| 久久爱www久久做| 国产xxx精品视频大全| 97se亚洲国产综合自在线 | 丝袜诱惑亚洲看片 | 91.麻豆视频| 精品国产不卡一区二区三区| 欧美日韩日本视频| 精品日韩在线一区| 亚洲欧洲中文日韩久久av乱码| 亚洲国产欧美在线| 国产精品99久久久久久宅男| 91在线高清观看| 欧美日韩三级视频| 日韩欧美aaaaaa| 亚洲视频每日更新| 高清在线观看日韩| eeuss鲁片一区二区三区在线看 | 亚洲国产精品久久人人爱| 麻豆精品在线看| 一区二区三区四区高清精品免费观看| 欧美精品视频www在线观看| 福利一区福利二区| 亚洲国产精品久久久久婷婷884 | av综合在线播放| 欧美性受极品xxxx喷水| 国产成人精品三级麻豆| 蜜桃一区二区三区在线| 五月天激情综合网| 亚洲在线成人精品| 色婷婷香蕉在线一区二区|