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

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

?? parset.c

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

/*!
 ************************************************************************
 *  \file
 *     parset.c
 *  \brief
 *     Parameter Sets
 *  \author
 *     Main contributors (see contributors.h for copyright, address and affiliation details)
 *     - Stephan Wenger          <stewe@cs.tu-berlin.de>
 *
 ***********************************************************************
 */

#include <stdlib.h>
#include <assert.h>
#include <string.h>

#include "global.h"
#include "parsetcommon.h"
#include "parset.h"
#include "nalu.h"
#include "memalloc.h"
#include "fmo.h"
#include "cabac.h"
#include "vlc.h"
#include "mbuffer.h"
#include "erc_api.h"

#if TRACE
#define SYMTRACESTRING(s) strncpy(sym->tracestring,s,TRACESTRING_SIZE)
#else
#define SYMTRACESTRING(s) // do nothing
#endif

extern int UsedBits;      // for internal statistics, is adjusted by se_v, ue_v, u_1
extern ColocatedParams *Co_located;

seq_parameter_set_rbsp_t SeqParSet[MAXSPS];
pic_parameter_set_rbsp_t PicParSet[MAXPPS];

extern StorablePicture* dec_picture;

// fill sps with content of p

int InterpretSPS (DataPartition *p, seq_parameter_set_rbsp_t *sps)
{
  unsigned i;
  int reserved_zero;
  Bitstream *s = p->bitstream;

  assert (p != NULL);
  assert (p->bitstream != NULL);
  assert (p->bitstream->streamBuffer != 0);
  assert (sps != NULL);

  UsedBits = 0;

  sps->profile_idc                            = u_v  (8, "SPS: profile_idc"                           , s);

  sps->constrained_set0_flag                  = u_1  (   "SPS: constrained_set0_flag"                 , s);
  sps->constrained_set1_flag                  = u_1  (   "SPS: constrained_set1_flag"                 , s);
  sps->constrained_set2_flag                  = u_1  (   "SPS: constrained_set2_flag"                 , s);
  reserved_zero                               = u_v  (5, "SPS: reserved_zero_5bits"                   , s);
  assert (reserved_zero==0);

  sps->level_idc                              = u_v  (8, "SPS: level_idc"                             , s);
  

  sps->seq_parameter_set_id                   = ue_v ("SPS: seq_parameter_set_id"                     , s);
  sps->log2_max_frame_num_minus4              = ue_v ("SPS: log2_max_frame_num_minus4"                , s);
  sps->pic_order_cnt_type                     = ue_v ("SPS: pic_order_cnt_type"                       , s);

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

  if (sps->frame_cropping_flag)
  {
    sps->frame_cropping_rect_left_offset      = ue_v ("SPS: frame_cropping_rect_left_offset"           , s);
    sps->frame_cropping_rect_right_offset     = ue_v ("SPS: frame_cropping_rect_right_offset"          , s);
    sps->frame_cropping_rect_top_offset       = ue_v ("SPS: frame_cropping_rect_top_offset"            , s);
    sps->frame_cropping_rect_bottom_offset    = ue_v ("SPS: frame_cropping_rect_bottom_offset"         , s);
  }
  sps->vui_parameters_present_flag           = u_1  ("SPS: vui_parameters_present_flag"            , s);
  if (sps->vui_parameters_present_flag)
  {
    printf ("VUI sequence parameters present but not supported, ignored, proceeding to next NALU\n");
  }
  sps->Valid = TRUE;
  return UsedBits;
}


int InterpretPPS (DataPartition *p, pic_parameter_set_rbsp_t *pps)
{
  unsigned i;
  int NumberBitsPerSliceGroupId;
  Bitstream *s = p->bitstream;
  
  assert (p != NULL);
  assert (p->bitstream != NULL);
  assert (p->bitstream->streamBuffer != 0);
  assert (pps != NULL);

  UsedBits = 0;

  pps->pic_parameter_set_id                  = ue_v ("PPS: pic_parameter_set_id"                   , s);
  pps->seq_parameter_set_id                  = ue_v ("PPS: seq_parameter_set_id"                   , s);
  pps->entropy_coding_mode_flag              = u_1  ("PPS: entropy_coding_mode_flag"               , s);

  //! Note: as per JVT-F078 the following bit is unconditional.  If F078 is not accepted, then
  //! one has to fetch the correct SPS to check whether the bit is present (hopefully there is
  //! no consistency problem :-(
  //! The current encoder code handles this in the same way.  When you change this, don't forget
  //! the encoder!  StW, 12/8/02
  pps->pic_order_present_flag                = u_1  ("PPS: pic_order_present_flag"                 , s);

  pps->num_slice_groups_minus1               = ue_v ("PPS: num_slice_groups_minus1"                , s);

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

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区在线 | 久久综合色天天久久综合图片| 国产最新精品免费| 亚洲综合清纯丝袜自拍| 久久精品亚洲乱码伦伦中文| 在线精品视频免费观看| 成人午夜av在线| 激情综合色综合久久| 亚洲午夜影视影院在线观看| 中文字幕乱码亚洲精品一区 | 国产精品免费视频一区| 日韩欧美一区二区久久婷婷| 一本色道**综合亚洲精品蜜桃冫 | 韩国成人福利片在线播放| 亚洲一级二级三级| 最新国产精品久久精品| 久久综合九色综合97_久久久| 欧美私模裸体表演在线观看| 99麻豆久久久国产精品免费 | 91精品国产综合久久久久久久| av不卡在线观看| 国产精品亚洲一区二区三区在线| 日韩国产在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲免费av高清| 中文字幕欧美激情| 久久精品一区蜜桃臀影院| 亚洲精品一区二区三区影院| 欧美精品视频www在线观看| 在线视频一区二区三区| 色综合久久久久网| 91原创在线视频| av影院午夜一区| 97精品国产97久久久久久久久久久久| 国产精品亚洲综合一区在线观看| 精品一区二区国语对白| 久久99久久精品| 精品一区二区综合| 国产精品一区专区| 国产成+人+日韩+欧美+亚洲| 国产精品一区二区x88av| 国产精品一级二级三级| 国产69精品一区二区亚洲孕妇 | 一本色道久久综合精品竹菊| 99久久精品国产精品久久| av网站一区二区三区| 91麻豆6部合集magnet| 在线观看欧美日本| 欧美伦理视频网站| 欧美一区二区三区免费视频| 欧美tickling挠脚心丨vk| 精品免费国产二区三区| 久久久久久久久久久电影| 欧美经典三级视频一区二区三区| 国产精品麻豆一区二区| 亚洲欧美日韩系列| 亚洲成a人片在线观看中文| 日韩精品午夜视频| 韩日精品视频一区| 成人高清av在线| 欧美三片在线视频观看| 日韩一区二区电影网| 久久精品网站免费观看| 18涩涩午夜精品.www| 亚洲一区免费在线观看| 免费看日韩a级影片| 国产精品18久久久久久久久久久久| 国产一二精品视频| 一本到高清视频免费精品| 欧美天堂亚洲电影院在线播放| 日韩午夜中文字幕| 国产日韩欧美a| 一区二区高清在线| 久久国产精品72免费观看| 成人影视亚洲图片在线| 欧美亚洲愉拍一区二区| 日韩欧美在线观看一区二区三区| 国产精品网友自拍| 首页欧美精品中文字幕| 国产1区2区3区精品美女| 欧美伊人久久久久久久久影院| 精品精品国产高清a毛片牛牛| 中文字幕在线观看一区| 视频一区在线视频| 成人免费黄色在线| 91麻豆精品91久久久久久清纯 | 日韩一级黄色片| 国产免费成人在线视频| 天天亚洲美女在线视频| 国产+成+人+亚洲欧洲自线| 欧美日韩精品系列| 国产精品拍天天在线| 免费高清视频精品| 色婷婷亚洲婷婷| 久久久亚洲午夜电影| 午夜久久久久久| 97久久人人超碰| 2欧美一区二区三区在线观看视频| 亚洲免费在线视频| 夫妻av一区二区| 欧美一区二区三区视频免费| 亚洲人妖av一区二区| 韩国女主播成人在线观看| 欧美日韩中文一区| 国产精品进线69影院| 精品一区二区三区欧美| 在线播放日韩导航| 亚洲夂夂婷婷色拍ww47 | 色激情天天射综合网| 久久人人爽爽爽人久久久| 天堂成人国产精品一区| 色哟哟在线观看一区二区三区| 久久久www成人免费毛片麻豆| 日韩国产欧美视频| 欧美午夜精品电影| 亚洲精品网站在线观看| 国产成+人+日韩+欧美+亚洲| 26uuu成人网一区二区三区| 日日夜夜精品视频免费| 欧美午夜理伦三级在线观看| 亚洲三级小视频| 9久草视频在线视频精品| 国产女人aaa级久久久级| 国产馆精品极品| 精品国产sm最大网站免费看| 青青草伊人久久| 91精品国产乱码| 蜜臀av一区二区| 欧美一卡2卡3卡4卡| 午夜视频一区二区三区| 欧美日韩色一区| 亚洲无人区一区| 欧美日韩一二三区| 亚州成人在线电影| 欧美午夜在线一二页| 亚洲一二三四久久| 欧美日韩你懂的| 亚洲高清免费在线| 91精品在线麻豆| 麻豆精品一区二区三区| 日韩欧美123| 国产美女av一区二区三区| 久久久久久久免费视频了| 高潮精品一区videoshd| 国产精品电影院| 91美女精品福利| 亚洲视频在线一区观看| 在线精品视频免费播放| 午夜精品一区二区三区电影天堂| 欧美人狂配大交3d怪物一区| 日本亚洲三级在线| 精品国产乱码久久久久久牛牛 | 国产调教视频一区| 成人黄色777网| 一区二区三区不卡在线观看| 91麻豆精品国产91久久久资源速度| 男女男精品视频| 国产亚洲精品资源在线26u| 不卡av免费在线观看| 亚洲一区在线观看视频| 日韩一区二区在线播放| 国产久卡久卡久卡久卡视频精品| 国产精品毛片a∨一区二区三区| 91成人在线免费观看| 日本少妇一区二区| 久久久影视传媒| 91成人在线免费观看| 开心九九激情九九欧美日韩精美视频电影 | 久久久不卡网国产精品二区| av午夜精品一区二区三区| 亚洲成av人**亚洲成av**| 欧美精品一区二区三区视频| 99re在线视频这里只有精品| 日韩激情av在线| 国产欧美精品一区二区色综合| 91久久精品日日躁夜夜躁欧美| 日韩激情中文字幕| 中文字幕欧美三区| 欧美日韩国产综合视频在线观看 | 欧美一二三在线| 成人va在线观看| 日韩高清不卡一区二区三区| 欧美国产一区视频在线观看| 欧美三级电影在线看| 春色校园综合激情亚洲| 日韩 欧美一区二区三区| 日韩一区欧美小说| 精品精品国产高清a毛片牛牛| 91福利在线免费观看| 国产福利精品导航| 午夜婷婷国产麻豆精品| 国产精品国产精品国产专区不蜜| 欧美一级在线观看| 91黄色免费版| 成人黄色片在线观看| 看国产成人h片视频| 亚洲国产sm捆绑调教视频| 国产精品福利一区二区三区| 欧美哺乳videos| 欧美日韩电影一区|