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

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

?? parset.c

?? 可以用H.264編碼解碼器源碼(c語言)
?? C
?? 第 1 頁 / 共 2 頁
字號:

/*!
 ************************************************************************
 *  \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"

#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

seq_parameter_set_rbsp_t SeqParSet[MAXSPS];
pic_parameter_set_rbsp_t PicParSet[MAXPPS];
                          
// 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_count_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;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一区二区在线免费观看| 欧美特级限制片免费在线观看| 91在线丨porny丨国产| 欧美三级资源在线| 国产欧美日韩精品一区| 日本va欧美va瓶| 一本色道久久加勒比精品| 日韩一区二区在线观看视频| 中文字幕国产一区| 久久精品国产77777蜜臀| 欧美视频精品在线观看| 亚洲日本一区二区| 成人免费视频网站在线观看| 欧美不卡123| 日韩不卡在线观看日韩不卡视频| 99精品视频中文字幕| 国产精品女同互慰在线看| 激情亚洲综合在线| 日韩欧美一区二区三区在线| 亚洲午夜私人影院| 日本精品裸体写真集在线观看| 日本一区二区动态图| 国产精品1区2区3区在线观看| 日韩欧美一二区| 青青草国产精品97视觉盛宴| 欧美日韩一区二区在线视频| 一区二区三区四区激情| 99v久久综合狠狠综合久久| 久久久久久亚洲综合| 国产一区二区电影| 久久久亚洲国产美女国产盗摄| 韩国一区二区在线观看| 日韩你懂的电影在线观看| 理论电影国产精品| 久久久久久一二三区| 国产电影一区二区三区| 国产欧美精品一区二区三区四区| 国产jizzjizz一区二区| 国产精品久久777777| 99精品国产99久久久久久白柏| 国产精品嫩草影院com| 9人人澡人人爽人人精品| 中文字幕免费在线观看视频一区| 成人毛片老司机大片| 亚洲欧美日韩久久| 欧美日韩一级二级三级| 日本伊人午夜精品| ww久久中文字幕| 国产不卡免费视频| 综合久久给合久久狠狠狠97色| 色av综合在线| 日韩不卡在线观看日韩不卡视频| 日韩欧美美女一区二区三区| 国产成人在线电影| 综合色天天鬼久久鬼色| 欧美日韩亚洲综合一区二区三区| 久久99精品一区二区三区三区| 日本一区二区动态图| 在线视频中文字幕一区二区| 免费精品视频在线| 国产精品女主播av| 欧美理论片在线| 国产91对白在线观看九色| 亚洲伦理在线免费看| 91精品国产综合久久久久久久久久 | 福利一区福利二区| 亚洲精品一卡二卡| 91精品黄色片免费大全| 成人久久视频在线观看| 视频一区中文字幕| 久久九九久久九九| 欧美久久久一区| 国产成人精品三级| 视频一区中文字幕| 国产精品国产自产拍在线| 91精品国产全国免费观看| 丰满亚洲少妇av| 日韩电影免费在线观看网站| 国产精品久久久久影院亚瑟 | 视频一区二区三区入口| 中文字幕不卡在线观看| 欧美另类高清zo欧美| 97se亚洲国产综合自在线| 国产综合久久久久影院| 亚洲成av人**亚洲成av**| 国产午夜亚洲精品不卡| 在线播放国产精品二区一二区四区 | 精品一区二区三区免费毛片爱| 亚洲视频一二三区| 日本一区免费视频| 日韩免费看的电影| 欧美日韩国产天堂| 色狠狠一区二区| av在线不卡电影| 国产精品一线二线三线| 美腿丝袜亚洲色图| 日韩高清不卡一区二区| 一区二区三区av电影 | 亚洲欧美日韩一区| 国产精品久久久久久久蜜臀| 欧美xxxx在线观看| 日韩一区二区精品葵司在线| 欧美色涩在线第一页| 成人综合婷婷国产精品久久免费| 久久精品99国产国产精| 日韩电影免费在线看| 亚洲bt欧美bt精品777| 亚洲黄色小视频| 亚洲女人小视频在线观看| 欧美高清在线精品一区| 久久精品欧美一区二区三区不卡| 日韩精品一区二区三区视频在线观看 | 亚洲国产精品久久不卡毛片| 亚洲美女免费在线| 亚洲手机成人高清视频| 亚洲欧洲成人精品av97| 欧美激情一区在线| 欧美激情资源网| 欧美高清一级片在线观看| 亚洲国产高清在线观看视频| 欧美国产激情二区三区| 亚洲国产高清aⅴ视频| 国产精品麻豆一区二区| 136国产福利精品导航| 18欧美乱大交hd1984| 亚洲精品写真福利| 午夜国产不卡在线观看视频| 日本欧美一区二区三区| 久久精品理论片| 风间由美一区二区三区在线观看 | 蜜桃久久av一区| 国产在线视频一区二区| 国产精品18久久久久| 91亚洲精品一区二区乱码| 2021久久国产精品不只是精品| 2023国产精品自拍| 亚洲欧洲另类国产综合| 亚洲欧洲制服丝袜| 蜜乳av一区二区| 懂色av噜噜一区二区三区av| 色婷婷久久久综合中文字幕 | 午夜精品视频一区| 狠狠久久亚洲欧美| 97超碰欧美中文字幕| 欧美精品乱人伦久久久久久| 精品国产一区二区三区不卡 | 欧美精品一区二区久久婷婷 | 图片区小说区国产精品视频| 久久99精品视频| 99re免费视频精品全部| 欧美日韩一区视频| 国产女人18毛片水真多成人如厕| 亚洲天堂久久久久久久| 美国三级日本三级久久99| 国产成人自拍网| 在线观看av不卡| 久久久久国产精品麻豆| 一个色综合网站| 国产一区二区免费在线| 欧美在线高清视频| 久久精品一区二区三区不卡牛牛| 亚洲三级电影全部在线观看高清| 蜜桃视频在线观看一区| 91在线视频免费91| 久久亚洲精品小早川怜子| 亚洲精品中文字幕在线观看| 国产中文一区二区三区| 欧美日韩一区二区三区四区| 国产精品家庭影院| 久久国产精品露脸对白| 一本大道久久a久久综合| 久久亚洲综合av| 日日摸夜夜添夜夜添亚洲女人| 成人毛片视频在线观看| 欧美精品一区二区三区蜜桃视频 | 欧美绝品在线观看成人午夜影视| 国产欧美日韩三级| 麻豆91免费看| 欧美精品777| 亚洲国产精品久久人人爱| 91麻豆国产福利在线观看| 久久久影视传媒| 黄色小说综合网站| 欧美本精品男人aⅴ天堂| 首页国产欧美日韩丝袜| 欧美私模裸体表演在线观看| 亚洲色图制服丝袜| 成人自拍视频在线| 日本一区二区视频在线观看| 国产精品正在播放| 2023国产精品| 国产一区激情在线| 精品欧美一区二区在线观看| 日产国产欧美视频一区精品| 欧美美女激情18p| 亚洲成av人片一区二区梦乃 | 久久久精品免费网站| 捆绑调教一区二区三区| 精品日韩成人av| 久久91精品国产91久久小草|