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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? parset.c

?? 一個(gè)簡(jiǎn)單的視頻會(huì)議VC++MFC工程文件
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
}

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);

  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->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->width = img->PicWidthInMbs * MB_BLOCK_SIZE;
    img->width_cr = img->width /2;
    img->height = img->FrameHeightInMbs * MB_BLOCK_SIZE;
    img->height_cr = img->height / 2;
    
    init_global_buffers();
    if (!img->no_output_of_prior_pics_flag)
    {
      flush_dpb();
    }
    init_dpb();
    
    if (NULL!=Co_located)
    {
      free_collocated(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;
  }

}

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;
    }
  }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一二三四社区欧美黄| 91丨porny丨国产| 麻豆精品视频在线观看视频| 天堂在线亚洲视频| 婷婷夜色潮精品综合在线| 亚洲成人1区2区| 日韩精品一二区| 久久精品国产精品亚洲精品| 精品一区二区三区在线播放| 精品中文av资源站在线观看| 国内精品不卡在线| 高清视频一区二区| 91天堂素人约啪| 在线精品观看国产| 91精品国产日韩91久久久久久| 日韩美女主播在线视频一区二区三区| 日韩欧美国产1| 国产网站一区二区| 亚洲欧洲99久久| 亚洲一区二区三区中文字幕| 午夜精品成人在线视频| 美女网站在线免费欧美精品| 国内精品伊人久久久久av影院| 国产精品亚洲人在线观看| 99久久免费精品| 欧美日韩一卡二卡| 欧美成人一区二区三区片免费| 久久女同精品一区二区| 亚洲欧洲日韩av| 午夜久久久久久久久久一区二区| 91福利在线观看| 欧美亚洲另类激情小说| 欧美电影免费观看高清完整版在线| 精品国产伦一区二区三区免费| 亚洲国产成人自拍| 亚洲亚洲精品在线观看| 精品综合久久久久久8888| 国产一区二区福利| 91久久免费观看| 日韩欧美www| 亚洲欧美精品午睡沙发| 日韩中文欧美在线| 成人sese在线| 8x福利精品第一导航| 日韩一区中文字幕| 婷婷激情综合网| 国产99精品国产| 欧美久久久影院| 国产日韩一级二级三级| 丝袜亚洲另类丝袜在线| 成人激情动漫在线观看| 欧美精品一二三区| 中文av字幕一区| 日韩精品欧美成人高清一区二区| 国v精品久久久网| 91精品国产欧美日韩| 国产精品成人一区二区三区夜夜夜| 午夜视频一区二区| 成人av资源下载| 日韩精品最新网址| 一区二区三区欧美日| 国产成人小视频| 欧美一区二区播放| 亚洲精品视频一区二区| 韩国视频一区二区| 欧美少妇性性性| 日韩一区中文字幕| 国产电影精品久久禁18| 日韩欧美激情一区| 午夜久久电影网| 91在线免费播放| 国产午夜精品一区二区三区嫩草| 日韩精品电影一区亚洲| 91国产视频在线观看| 国产精品天天摸av网| 久久er99热精品一区二区| 欧美日韩久久久久久| 亚洲蜜臀av乱码久久精品| 成人精品鲁一区一区二区| 日韩欧美精品三级| 日韩激情一区二区| 欧美喷水一区二区| 亚洲猫色日本管| 91在线丨porny丨国产| 国产精品丝袜黑色高跟| 国产福利精品一区二区| 亚洲精品一区二区三区99| 偷拍一区二区三区四区| 欧美色偷偷大香| 亚洲综合色噜噜狠狠| 91女厕偷拍女厕偷拍高清| 国产精品久久久久桃色tv| 国产成人精品网址| 久久久91精品国产一区二区精品| 激情久久五月天| 精品久久久久久综合日本欧美| 老司机午夜精品99久久| 日韩欧美第一区| 激情综合一区二区三区| 欧美电影免费观看完整版| 男人的天堂久久精品| 91精品国产入口| 老司机精品视频在线| 精品三级在线观看| 韩日精品视频一区| 久久久噜噜噜久久中文字幕色伊伊 | 久久激情五月婷婷| 欧美电视剧在线看免费| 久久精工是国产品牌吗| 久久众筹精品私拍模特| 国产精品18久久久久| 欧美激情一区三区| 成人综合婷婷国产精品久久免费| 国产午夜亚洲精品不卡| 成人av片在线观看| 亚洲裸体在线观看| 欧美午夜一区二区三区免费大片| 午夜精品久久久久久久| 欧美一级日韩不卡播放免费| 久久精品国产99久久6| 久久久久久电影| 99国产精品久| 婷婷综合在线观看| 日韩久久久久久| 成人av在线播放网址| 夜夜夜精品看看| 日韩午夜小视频| 国产成人福利片| 亚洲激情在线激情| 欧美精品久久一区二区三区| 精品午夜久久福利影院| 国产精品人成在线观看免费| 欧美中文字幕不卡| 免费在线视频一区| 国产精品免费久久| 欧美日韩久久不卡| 韩国av一区二区三区| 亚洲免费在线观看| 欧美一区二区三区在线视频| 国产精品亚洲第一区在线暖暖韩国| 综合欧美亚洲日本| 4438成人网| av在线播放不卡| 日韩不卡手机在线v区| 国产精品毛片大码女人| 欧美精品乱人伦久久久久久| 国产v日产∨综合v精品视频| 亚洲自拍偷拍av| 久久久国产精品麻豆| 欧美性xxxxx极品少妇| 国内外成人在线| 亚洲无人区一区| 国产精品视频一二| 日韩一区二区免费高清| 99久久久无码国产精品| 久久国产精品无码网站| 亚洲欧洲中文日韩久久av乱码| 日韩欧美www| 欧美影院精品一区| 国产宾馆实践打屁股91| 日本免费在线视频不卡一不卡二 | 国产精品自产自拍| 夜夜精品视频一区二区| 久久久www免费人成精品| 欧美人成免费网站| 91亚洲精品乱码久久久久久蜜桃| 久久精品国产网站| 亚洲韩国精品一区| 成人欧美一区二区三区1314| 精品国产乱码久久久久久闺蜜| 在线看国产一区| 不卡视频一二三| 国模一区二区三区白浆| 日韩精品电影一区亚洲| 一区二区三区.www| 国产精品乱码一区二区三区软件 | 亚洲欧洲日韩综合一区二区| xfplay精品久久| 91精品中文字幕一区二区三区| 色综合久久久网| 成人污视频在线观看| 激情另类小说区图片区视频区| 日韩国产精品大片| 亚洲 欧美综合在线网络| 亚洲精品免费视频| 中文字幕一区免费在线观看| 国产日韩影视精品| 国产亚洲精品7777| 精品国产乱码久久久久久夜甘婷婷| 这里只有精品电影| 欧美日韩久久久久久| 欧美色窝79yyyycom| 欧美在线色视频| 色噜噜偷拍精品综合在线| 99re热视频精品| 成人激情校园春色| 成人免费视频一区二区| 国产不卡视频在线播放| 国产精品自拍av| 国v精品久久久网|