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

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

?? parset.c

?? 可以用H.264編碼解碼器源碼(c語言)
?? C
?? 第 1 頁 / 共 2 頁
字號:
void DumpSPS (seq_parameter_set_rbsp_t *sps)
{
  printf ("Dumping a sequence parset, to be implemented\n");
};

void DumpPPS (pic_parameter_set_rbsp_t *pps)
{
  printf ("Dumping a picture parset, to be implemented\n");
}

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);
  // DumpSPS (sps);
  // 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);
  // DumpPPS (pps);
  // PPSConsistencyCheck (pps);
  MakePPSavailable (pps->pic_parameter_set_id, pps);
  FreePartition (dp, 1);
  FreePPS (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];
  static unsigned int ExpectedDeltaPerPicOrderCntCycle;  // POC200301 Can it be deleted?
  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];

  active_sps = sps;
  active_pps = pps;

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

//  img->log2_max_frame_num_minus4 = sps->log2_max_frame_num_minus4;
  img->MaxFrameNum = 1<<(sps->log2_max_frame_num_minus4+4);
  
  img->pic_order_cnt_type = sps->pic_order_cnt_type;
  // POC200301
  if (img->pic_order_cnt_type < 0 || img->pic_order_cnt_type > 2)  // != 1
  {
    printf ("sps->pic_order_cnt_type %d, expected 1, expect the unexpected...\n", sps->pic_order_cnt_type);
    assert (sps->pic_order_cnt_type == 1);
    error ("pic_order_cnt_type != 1", -1000);
  }

  if (img->pic_order_cnt_type == 0)
  {
//    img->log2_max_pic_order_cnt_lsb_minus4 = sps->log2_max_pic_order_cnt_lsb_minus4;
  }
  else if (img->pic_order_cnt_type == 1) // POC200301
  {
    img->num_ref_frames_in_pic_order_cnt_cycle = sps->num_ref_frames_in_pic_order_cnt_cycle;
    if(img->num_ref_frames_in_pic_order_cnt_cycle != 1)
      error("num_ref_frames_in_pic_order_cnt_cycle != 1",-1001);
    if(img->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);

    img->delta_pic_order_always_zero_flag = sps->delta_pic_order_always_zero_flag;
//    if(img->delta_pic_order_always_zero_flag != 0) !KS2
//      error ("delta_pic_order_always_zero_flag != 0",-1002);
 
    img->offset_for_non_ref_pic = sps->offset_for_non_ref_pic;
  
    img->offset_for_top_to_bottom_field = sps->offset_for_top_to_bottom_field;
  

    ExpectedDeltaPerPicOrderCntCycle=0;
    if (sps->num_ref_frames_in_pic_order_cnt_cycle)
      for(i=0;i<(int)sps->num_ref_frames_in_pic_order_cnt_cycle;i++) 
      {
        img->offset_for_ref_frame[i] = sps->offset_for_ref_frame[i];
        ExpectedDeltaPerPicOrderCntCycle += sps->offset_for_ref_frame[i];
      }
  }
  
  img->PicWidthInMbs = (active_sps->pic_width_in_mbs_minus1 +1);
  img->PicHeightInMapUnits = (active_sps->pic_height_in_map_units_minus1 +1);
  img->FrameHeightInMbs = ( 2 - active_sps->frame_mbs_only_flag ) * img->PicHeightInMapUnits;

  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;

  // Picture Parameter Stuff

  img->weighted_pred_flag = pps->weighted_pred_flag;
  img->weighted_bipred_idc = pps->weighted_bipred_idc;

  img->pic_order_present_flag = pps->pic_order_present_flag;
  // POC200301 DELETE
//  if(img->pic_order_present_flag != 0)
//    error ("pic_order_present_flag != 0",-1004);

  img->constrained_intra_pred_flag = pps->constrained_intra_pred_flag;


  // 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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播成人在线观看| 99久久国产免费看| 国产成人啪免费观看软件| 色婷婷亚洲精品| 中文字幕成人av| 久久国产精品无码网站| 在线观看成人免费视频| 中文乱码免费一区二区| 免费成人你懂的| 欧美日韩一区二区三区视频| 欧美韩国一区二区| 国产精品综合一区二区| 91精品国产乱码久久蜜臀| 一区二区三区四区乱视频| 国产成人高清在线| 久久久午夜精品| 韩国成人精品a∨在线观看| 欧美日韩国产一级二级| 亚洲高清免费观看高清完整版在线观看| 国产电影一区二区三区| 久久在线观看免费| 国产综合色在线| 久久久久97国产精华液好用吗| 午夜av区久久| 欧美一区二区三区精品| 日本vs亚洲vs韩国一区三区二区| 欧美性大战久久久久久久蜜臀| 亚洲欧美经典视频| 色综合久久中文综合久久牛| 国产精品久久久久久亚洲伦 | 日韩精品一区二区三区四区视频| 一区二区三区不卡视频| 在线中文字幕一区二区| 亚洲综合小说图片| 欧美日韩国产在线观看| 美女www一区二区| 精品日韩一区二区| 国产99一区视频免费| 国产精品久久久久一区二区三区共 | 久久精品999| 日韩免费看网站| 国产一区二区不卡老阿姨| 国产亚洲一区二区三区在线观看| 国产精品一区二区久久精品爱涩| 国产婷婷一区二区| 99国产精品久久| 午夜亚洲国产au精品一区二区| 6080yy午夜一二三区久久| 免费在线视频一区| 久久精品欧美日韩| 色播五月激情综合网| 日韩中文字幕不卡| 精品国产乱码久久久久久图片 | 波多野结衣中文字幕一区二区三区| 中文字幕中文字幕一区| 欧美色图天堂网| 久久机这里只有精品| 国产精品不卡在线| 欧美日韩不卡一区二区| 国产精品一区在线观看乱码| 亚洲桃色在线一区| 欧美一区二区三级| 成人美女视频在线看| 亚洲成人自拍偷拍| 久久精品亚洲一区二区三区浴池 | 成人午夜电影久久影院| 亚洲黄色免费网站| 亚洲精品一线二线三线| 在线视频亚洲一区| 国产一区 二区| 亚洲国产综合91精品麻豆| 久久久综合九色合综国产精品| 欧美综合欧美视频| 国产精品一级片在线观看| 亚洲国产欧美一区二区三区丁香婷| 2017欧美狠狠色| 欧美日韩国产在线播放网站| 成人免费高清在线| 另类小说欧美激情| 夜夜揉揉日日人人青青一国产精品| 欧美成人精品1314www| 欧美色网一区二区| 不卡av免费在线观看| 国产美女av一区二区三区| 亚洲国产精品久久人人爱蜜臀| 欧美国产综合一区二区| 精品欧美乱码久久久久久| 91精品办公室少妇高潮对白| 高清在线不卡av| 久久电影国产免费久久电影 | 九九**精品视频免费播放| 一区二区在线免费观看| 国产精品美女久久久久久| 精品国产伦一区二区三区观看体验| 欧美男女性生活在线直播观看| 91蝌蚪porny成人天涯| 国产高清在线精品| 国产一区二区三区精品欧美日韩一区二区三区 | 色哟哟亚洲精品| 成人av在线播放网站| 粉嫩一区二区三区在线看| 国产一区二区0| 国产精品一线二线三线| 韩国女主播一区| 韩国欧美一区二区| 国模少妇一区二区三区| 麻豆国产欧美一区二区三区| 全部av―极品视觉盛宴亚洲| 天堂av在线一区| 三级欧美在线一区| 视频一区二区三区入口| 亚洲va国产va欧美va观看| 亚洲成人综合网站| 日韩国产成人精品| 久久精品国产免费| 国产自产高清不卡| 国产一区二区免费看| 国产激情视频一区二区三区欧美 | 欧美日韩亚洲不卡| 欧美日韩国产天堂| 日韩一区二区三区四区| 日韩欧美在线不卡| 精品乱人伦一区二区三区| 久久久美女毛片 | 亚洲精品一区在线观看| 久久综合久久99| 亚洲国产精品传媒在线观看| 欧美激情中文字幕一区二区| 国产精品亲子乱子伦xxxx裸| 亚洲色图色小说| 亚洲成人av一区二区三区| 免费高清视频精品| 国产91高潮流白浆在线麻豆 | ww久久中文字幕| 国产精品午夜春色av| 亚洲国产一区二区三区| 蜜桃精品视频在线| a亚洲天堂av| 欧美色图天堂网| 久久在线观看免费| 一区二区三区在线视频播放| 日韩av在线播放中文字幕| 国产一区日韩二区欧美三区| 99re这里只有精品视频首页| 欧美理论电影在线| 国产农村妇女毛片精品久久麻豆| 亚洲欧美日韩国产综合| 秋霞影院一区二区| 粉嫩一区二区三区性色av| 欧美一a一片一级一片| 欧美精品一区二区三区在线| 亚洲欧美视频在线观看视频| 久久精品国产精品青草| 91久久一区二区| 久久久精品黄色| 日韩高清不卡一区二区| 99精品视频在线观看| 日韩欧美www| 一区二区不卡在线播放| 国产 日韩 欧美大片| 欧美一区二区女人| 亚洲综合一区在线| 丁香婷婷深情五月亚洲| 在线播放欧美女士性生活| 中文字幕一区三区| 久久97超碰色| 欧美日韩在线电影| 最好看的中文字幕久久| 国产又黄又大久久| 日韩一级二级三级| 一区二区日韩电影| 成年人国产精品| 国产日韩欧美a| 久久国产尿小便嘘嘘尿| 欧美伦理影视网| 亚洲国产精品久久久男人的天堂| 风间由美中文字幕在线看视频国产欧美| 91精品国产综合久久久久久漫画 | 亚洲丝袜自拍清纯另类| 国产高清一区日本| 精品嫩草影院久久| 日本女人一区二区三区| 在线日韩一区二区| 专区另类欧美日韩| fc2成人免费人成在线观看播放| 精品国产污污免费网站入口| 免费观看在线综合| 欧美一区二区在线免费观看| 亚洲小少妇裸体bbw| 欧美亚一区二区| 午夜视频在线观看一区二区三区| 色哟哟精品一区| 一区二区三区在线免费视频| 色综合一区二区| 国产欧美日韩中文久久| 日本午夜精品视频在线观看| 欧美探花视频资源| 亚洲国产裸拍裸体视频在线观看乱了 | 国产欧美日韩中文久久| 国产一区二区三区香蕉|