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

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

?? header.c

?? h264標準的VC實現
?? C
?? 第 1 頁 / 共 2 頁
字號:

  if (img->type==B_SLICE)
  {
    len += u_1 ("SH: ref_pic_list_reordering_flag_l1", currSlice->ref_pic_list_reordering_flag_l1, partition);
    if (currSlice->ref_pic_list_reordering_flag_l1)
    {
      i=-1;
      do
      {
        i++;
        len += ue_v ("SH: remapping_of_pic_num_idc", currSlice->remapping_of_pic_nums_idc_l1[i], partition);
        if (currSlice->remapping_of_pic_nums_idc_l1[i]==0 ||
            currSlice->remapping_of_pic_nums_idc_l1[i]==1)
        {
          len += ue_v ("SH: abs_diff_pic_num_minus1_l1", currSlice->abs_diff_pic_num_minus1_l1[i], partition);
        }
        else
        {
          if (currSlice->remapping_of_pic_nums_idc_l1[i]==2)
          {
            len += ue_v ("SH: long_term_pic_idx_l1", currSlice->long_term_pic_idx_l1[i], partition);
          }
        }
      } while (currSlice->remapping_of_pic_nums_idc_l1[i] != 3);
    }
  }

  return len;
}


/*!
 ************************************************************************
 * \brief
 *    write the memory menagement control operations
 ************************************************************************
 */
static int dec_ref_pic_marking()
{
  int dP_nr = assignSE2partition[input->partition_mode][SE_HEADER];
  DataPartition *partition = &((img->currentSlice)->partArr[dP_nr]);

  DecRefPicMarking_t *tmp_drpm;

  int val, len=0;

  if (img->currentPicture->idr_flag)
  {
    len += u_1("SH: no_output_of_prior_pics_flag", img->no_output_of_prior_pics_flag, partition);
    len += u_1("SH: long_term_reference_flag", img->long_term_reference_flag, partition);
  }
  else
  {
    img->adaptive_ref_pic_buffering_flag = (img->dec_ref_pic_marking_buffer!=NULL);

    len += u_1("SH: adaptive_ref_pic_buffering_flag", img->adaptive_ref_pic_buffering_flag, partition);

    if (img->adaptive_ref_pic_buffering_flag)
    {
      tmp_drpm = img->dec_ref_pic_marking_buffer;
      // write Memory Management Control Operation 
      do
      {
        if (tmp_drpm==NULL) error ("Error encoding MMCO commands", 500);
        
        val = tmp_drpm->memory_management_control_operation;
        len += ue_v("SH: memory_management_control_operation", val, partition);

        if ((val==1)||(val==3)) 
        {
          len += 1 + ue_v("SH: difference_of_pic_nums_minus1", tmp_drpm->difference_of_pic_nums_minus1, partition);
        }
        if (val==2)
        {
          len+= ue_v("SH: long_term_pic_num", tmp_drpm->long_term_pic_num, partition);
        }
        if ((val==3)||(val==6))
        {
          len+= ue_v("SH: long_term_frame_idx", tmp_drpm->long_term_frame_idx, partition);
        }
        if (val==4)
        {
          len += ue_v("SH: max_long_term_pic_idx_plus1", tmp_drpm->max_long_term_frame_idx_plus1, partition);
        }
        
        tmp_drpm=tmp_drpm->Next;
        
      } while (val != 0);
      
    }
  }
  return len;
}

/*!
 ************************************************************************
 * \brief
 *    write the memory menagement control operations
 ************************************************************************
 */
static int pred_weight_table()
{
  int dP_nr = assignSE2partition[input->partition_mode][SE_HEADER];
  DataPartition *partition = &((img->currentSlice)->partArr[dP_nr]);

  int len = 0;
  int i,j;

  len += ue_v("SH: luma_log_weight_denom", luma_log_weight_denom, partition);
  
  len += ue_v("SH: chroma_log_weight_denom", chroma_log_weight_denom, partition);

  for (i=0; i< img->num_ref_idx_l0_active; i++)
  {
    if ( (wp_weight[0][i][0] != 1<<luma_log_weight_denom) || (wp_offset[0][i][0] != 0) )
    {
      len += u_1 ("SH: luma_weight_flag_l0", 1, partition);
      
      len += se_v ("SH: luma_weight_l0", wp_weight[0][i][0], partition);
        
      len += se_v ("SH: luma_offset_l0", wp_offset[0][i][0], partition);
    }
    else
    {
        len += u_1 ("SH: luma_weight_flag_l0", 0, partition);
    }

    if ( (wp_weight[0][i][1] != 1<<chroma_log_weight_denom) || (wp_offset[0][i][1] != 0) || 
     (wp_weight[0][i][2] != 1<<chroma_log_weight_denom) || (wp_offset[0][i][2] != 0)  )
    {
      len += u_1 ("chroma_weight_flag_l0", 1, partition);
      for (j=1; j<3; j++)
      {
        len += se_v ("chroma_weight_l0", wp_weight[0][i][j] ,partition);
      
        len += se_v ("chroma_offset_l0", wp_offset[0][i][j] ,partition);
      }
    }
    else
    {
      len += u_1 ("chroma_weight_flag_l0", 0, partition);
    }
  }

  if (img->type == B_SLICE)
  {
    for (i=0; i< img->num_ref_idx_l1_active; i++)
    {
      if ( (wp_weight[1][i][0] != 1<<luma_log_weight_denom) || (wp_offset[1][i][0] != 0) )
      {
        len += u_1 ("SH: luma_weight_flag_l1", 1, partition);
        
        len += se_v ("SH: luma_weight_l1", wp_weight[1][i][0], partition);
        
        len += se_v ("SH: luma_offset_l1", wp_offset[1][i][0], partition);
      }
      else
      {
        len += u_1 ("SH: luma_weight_flag_l1", 0, partition);
      }
      
      if ( (wp_weight[1][i][1] != 1<<chroma_log_weight_denom) || (wp_offset[1][i][1] != 0) || 
      (wp_weight[1][i][2] != 1<<chroma_log_weight_denom) || (wp_offset[1][i][2] != 0) )
      {
        len += u_1 ("chroma_weight_flag_l1", 1, partition);
        for (j=1; j<3; j++)
        {
          len += se_v ("chroma_weight_l1", wp_weight[1][i][j] ,partition);
          
          len += se_v ("chroma_offset_l1", wp_offset[1][i][j] ,partition);
        }
      }
      else
      {
        len += u_1 ("chroma_weight_flag_l1", 0, partition);
      }
    }
  }
  return len;
}
  
/********************************************************************************************
 ********************************************************************************************
 *
 * Local Support Functions
 *
 ********************************************************************************************
 ********************************************************************************************/



// StW Note: This function is a hack.  It would be cleaner if the encoder maintains
// the picture type in the given format.  Note further that I have yet to understand
// why the encoder needs to know whether a picture is predicted from one or more
// reference pictures.

/*!
 ************************************************************************
 * \brief
 *    Selects picture type and codes it to symbol
 ************************************************************************
 */
int get_picture_type()
{

  // set this value to zero for transmission without signaling 
  // that the whole picture has the same slice type
  int same_slicetype_for_whole_frame = 5;

  switch (img->type)
  {
  case I_SLICE:
    return 2 + same_slicetype_for_whole_frame;
    break;
  case P_SLICE:
    return 0 + same_slicetype_for_whole_frame;
    break;
  case B_SLICE:
    return 1 + same_slicetype_for_whole_frame;
    break;
  case SP_SLICE:
    return 3 + same_slicetype_for_whole_frame;
    break;
  default:
    error("Picture Type not supported!",1);
    break;
  }
   
  return 0;
}



/*!
 *****************************************************************************
 *
 * \brief 
 *    int Partition_BC_Header () write the Partition type B, C header
 *
 * \return
 *    Number of bits used by the partition header
 *
 * \par Parameters
 *    PartNo: Partition Number to which the header should be written
 *
 * \par Side effects
 *    Partition header as per VCEG-N72r2 is written into the appropriate 
 *    partition bit buffer
 *
 * \par Limitations/Shortcomings/Tweaks
 *    The current code does not support the change of picture parameters within
 *    one coded sequence, hence there is only one parameter set necessary.  This
 *    is hard coded to zero.
 *
 * \date
 *    October 24, 2001
 *
 * \author
 *    Stephan Wenger   stewe@cs.tu-berlin.de
 *****************************************************************************/


int Partition_BC_Header(int PartNo)
{
  DataPartition *partition = &((img->currentSlice)->partArr[PartNo]);
  SyntaxElement symbol, *sym = &symbol;

  int len = 0;

  assert (input->of_mode == PAR_OF_RTP);
  assert (PartNo > 0 && PartNo < img->currentSlice->max_part_nr);

  sym->type = SE_HEADER;         // This will be true for all symbols generated here
  sym->mapping = ue_linfo;       // Mapping rule: Simple code number to len/info
  sym->value2  = 0;

  //ZL 
  //changed according to the g050r1
  SYMTRACESTRING("RTP-PH: Slice ID");
  sym->value1 = img->current_slice_nr;
  len += writeSyntaxElement_UVLC (sym, partition);

  if(active_pps->redundant_pic_cnt_present_flag)
  {
  SYMTRACESTRING("RTP-PH: Picture ID");
  sym->value1 = img->currentSlice->picture_id;
  len += writeSyntaxElement_UVLC (sym, partition);
  }


  return len;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频观看| 成人黄色免费短视频| 国产精品77777| 色88888久久久久久影院按摩| 日韩精品综合一本久道在线视频| 综合亚洲深深色噜噜狠狠网站| 日韩av成人高清| 99精品久久久久久| 久久久亚洲国产美女国产盗摄 | 欧美一区二区在线不卡| 国产精品免费看片| 国产中文字幕精品| 91.麻豆视频| 亚洲激情在线激情| 95精品视频在线| 国产人成亚洲第一网站在线播放 | 亚洲欧洲www| 国产一区二三区| 日韩欧美国产三级| 丝袜美腿成人在线| 欧美亚洲一区二区在线观看| 18涩涩午夜精品.www| 国产成人免费视频网站| 久久亚洲综合色| 久久99精品国产麻豆婷婷| 欧美精品第1页| 亚洲综合色区另类av| 91麻豆蜜桃一区二区三区| 中文字幕在线不卡一区二区三区 | www.av精品| 国产精品天美传媒| 丁香天五香天堂综合| xnxx国产精品| 国产乱色国产精品免费视频| 久久亚洲二区三区| 国产精品69毛片高清亚洲| 国产欧美日韩亚州综合| 懂色一区二区三区免费观看| 一区二区在线看| 久久久久99精品国产片| www欧美成人18+| 精品伊人久久久久7777人| 日韩精品一区二区三区中文不卡| 久久精品噜噜噜成人88aⅴ| 欧美成人在线直播| 国产盗摄一区二区三区| 国产精品久久久久久亚洲毛片 | 日韩欧美国产一区二区在线播放| 久久精品国产久精国产爱| 欧美精品一区视频| 丁香激情综合五月| 亚洲影院在线观看| 欧美一区二区三区色| 国产一区二区久久| 亚洲色图视频网站| 欧美男女性生活在线直播观看| 蜜臀国产一区二区三区在线播放| 久久久不卡影院| 91久久一区二区| 久久精品国产亚洲5555| 久久精品视频一区二区三区| av不卡在线播放| 视频一区欧美日韩| 欧美激情一区三区| 在线视频综合导航| 国产在线视频精品一区| 日韩美女视频19| 日韩欧美在线网站| 91视频你懂的| 久久99精品国产麻豆婷婷| 亚洲女爱视频在线| 精品成人佐山爱一区二区| 一本一道久久a久久精品综合蜜臀| 丝袜诱惑制服诱惑色一区在线观看| 国产亚洲欧美中文| 欧美裸体一区二区三区| 波多野结衣中文字幕一区二区三区| 一级做a爱片久久| 久久美女艺术照精彩视频福利播放| 色狠狠综合天天综合综合| 久久99久久久久| 亚洲午夜精品在线| 国产欧美综合色| 日韩欧美在线123| 色94色欧美sute亚洲线路一久 | 久久久一区二区三区捆绑**| 色哟哟在线观看一区二区三区| 国产综合色精品一区二区三区| 午夜影院在线观看欧美| 亚洲男人的天堂网| 国产欧美一区在线| 精品久久久久久最新网址| 欧美日韩视频不卡| 色8久久精品久久久久久蜜| 国产成人午夜精品影院观看视频 | 成人自拍视频在线| 麻豆久久久久久| 亚洲自拍偷拍九九九| 成人免费在线播放视频| 久久久亚洲高清| 精品美女在线播放| 日韩一区二区在线看| 欧美日韩精品电影| 欧美日本乱大交xxxxx| 色欧美乱欧美15图片| 91丨九色丨黑人外教| av电影天堂一区二区在线 | 久久久99精品免费观看不卡| 717成人午夜免费福利电影| 欧美日精品一区视频| 欧美综合一区二区| 欧美性猛片aaaaaaa做受| 91在线视频免费观看| 成人免费福利片| 色婷婷综合五月| 99精品视频一区二区| 99久久免费视频.com| aaa欧美色吧激情视频| 成人免费的视频| www.性欧美| 99riav久久精品riav| 91激情在线视频| 色哟哟一区二区三区| 欧美自拍偷拍一区| 欧美日韩亚洲国产综合| 欧美四级电影在线观看| 欧美高清精品3d| 日韩一区二区三区免费观看| 日韩一级免费观看| 久久久一区二区三区| 亚洲欧美综合色| 依依成人精品视频| 视频在线观看国产精品| 韩国av一区二区| 成+人+亚洲+综合天堂| 欧洲一区二区av| 91精品欧美一区二区三区综合在| 日韩欧美电影一二三| 国产农村妇女毛片精品久久麻豆| 亚洲欧美在线观看| 亚洲成人自拍一区| 国内久久精品视频| 91在线小视频| 欧美一区二区三区在线看| www国产精品av| 亚洲女人的天堂| 久久99久久99小草精品免视看| 国产精品香蕉一区二区三区| 91首页免费视频| 欧美一级在线视频| 国产精品国产三级国产专播品爱网 | 亚洲国产精品久久不卡毛片 | 久久久精品影视| 亚洲欧美日韩国产成人精品影院| 日本欧美大码aⅴ在线播放| 国产精品12区| 欧美日韩视频第一区| 亚洲国产高清不卡| 欧美96一区二区免费视频| 成人a级免费电影| 91麻豆精品国产自产在线观看一区| 久久一区二区三区四区| 亚洲www啪成人一区二区麻豆| 国产91在线看| 欧美精品视频www在线观看 | 精品日本一线二线三线不卡| 国产精品国产精品国产专区不片| 三级一区在线视频先锋| 成人短视频下载| 精品国产免费人成在线观看| 亚洲一区在线视频观看| 成人免费视频网站在线观看| 日韩欧美一区在线| 亚洲成人精品影院| 日本高清成人免费播放| 中文字幕欧美日韩一区| 久久99精品一区二区三区三区| 欧美私人免费视频| 亚洲桃色在线一区| 成人午夜短视频| 久久久久久黄色| 裸体健美xxxx欧美裸体表演| 欧美性大战久久久| √…a在线天堂一区| 成人小视频免费在线观看| 精品久久久网站| 成av人片一区二区| 久久精品视频一区二区三区| 久久国产婷婷国产香蕉| 欧美日韩一级视频| 亚洲一区二区三区四区在线| 91视频免费播放| 国产精品久久久久久久久久免费看 | 大胆亚洲人体视频| 精品久久久久久亚洲综合网 | 韩国女主播成人在线观看| 日韩亚洲欧美成人一区| 午夜欧美一区二区三区在线播放| 日本精品一区二区三区高清 | 欧美视频日韩视频在线观看|