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

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

?? h.264

?? H.264編碼解碼器源碼(c語言版本)
?? 264
?? 第 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一区二区三区免费野_久草精品视频
国产免费观看久久| 91蝌蚪porny九色| 精品免费视频.| 国内精品久久久久影院一蜜桃| 91精品国产黑色紧身裤美女| 午夜免费久久看| 91精品国产美女浴室洗澡无遮挡| 日本欧美久久久久免费播放网| 欧美一区二区三区免费在线看| 日本sm残虐另类| 精品粉嫩aⅴ一区二区三区四区| 久久精品国产亚洲a| www国产成人免费观看视频 深夜成人网| 久久99精品久久久久久久久久久久| 26uuu另类欧美亚洲曰本| 国产成人av网站| 亚洲一区免费观看| 欧美一区二区三区影视| 国产盗摄女厕一区二区三区| 亚洲欧洲国产日本综合| 欧美一区二区三区性视频| 国内成人精品2018免费看| 国产精品美女视频| 欧美视频一区二区三区| 国产一区二区三区在线观看精品 | 91精品国产全国免费观看 | 国产成人综合网| 一区二区三区在线播放| 在线综合+亚洲+欧美中文字幕| 国内精品视频一区二区三区八戒| 国产精品麻豆网站| 7777女厕盗摄久久久| 国产一区二区影院| 一个色妞综合视频在线观看| 欧美成va人片在线观看| 99久久亚洲一区二区三区青草| 日韩电影免费在线观看网站| 国产亚洲欧美一区在线观看| 在线看日韩精品电影| 国产麻豆成人传媒免费观看| 亚洲线精品一区二区三区| 精品福利一区二区三区| 91国偷自产一区二区使用方法| 日本不卡不码高清免费观看| 亚洲三级小视频| 亚洲精品在线电影| 欧美老年两性高潮| av电影在线不卡| 国产一区二区在线免费观看| 亚洲成国产人片在线观看| 国产欧美一区二区三区在线老狼| 欧美视频一区二区在线观看| 成人国产精品免费网站| 国精产品一区一区三区mba视频| 一区二区理论电影在线观看| 国产女人18毛片水真多成人如厕| 制服丝袜成人动漫| 在线一区二区三区四区五区| 成人福利视频在线看| 久久国产精品72免费观看| 亚洲综合网站在线观看| 国产精品美女久久久久aⅴ国产馆| 欧美日韩www| 在线免费观看成人短视频| 国产成人在线视频网站| 肉色丝袜一区二区| 欧美日韩精品电影| 日本sm残虐另类| 91精品国产全国免费观看| 国产在线视频一区二区| 国产精品人成在线观看免费 | 国产精品美女久久久久久久久 | 国产精品色婷婷| 日韩精品专区在线影院重磅| 欧美性猛片xxxx免费看久爱| 91在线视频网址| 97精品电影院| 国产成人三级在线观看| 久久av老司机精品网站导航| 蜜乳av一区二区三区| 久久精品国产一区二区三| 麻豆高清免费国产一区| 美女网站在线免费欧美精品| 青青草伊人久久| 中文字幕欧美国产| 国产精品欧美综合在线| 亚洲超丰满肉感bbw| 亚洲成a人片在线不卡一二三区 | 欧美日韩视频一区二区| 欧美色区777第一页| 欧美男人的天堂一二区| 欧美日韩www| 欧美成人三级电影在线| 欧美精品一区二区在线观看| 国产性天天综合网| 国产精品卡一卡二卡三| 亚洲欧美成人一区二区三区| 一区二区三区在线视频播放| 亚洲在线一区二区三区| 日韩精品久久理论片| 偷窥国产亚洲免费视频| 久久成人18免费观看| 丁香亚洲综合激情啪啪综合| 成人激情免费网站| 欧美日韩精品欧美日韩精品一综合| 欧美日韩国产美| 精品精品国产高清a毛片牛牛| 欧美激情综合在线| 亚洲啪啪综合av一区二区三区| 亚洲一二三区在线观看| 久久精品久久久精品美女| 国产91高潮流白浆在线麻豆| 一本色道久久综合亚洲91 | 亚洲欧美国产高清| 亚洲成人av电影| 韩国女主播一区| 色婷婷综合久久久中文一区二区| 欧美一区中文字幕| 亚洲欧美一区二区三区国产精品| 日本女人一区二区三区| 高潮精品一区videoshd| 7777精品伊人久久久大香线蕉完整版 | 成人app网站| 欧美日韩黄色一区二区| 久久久五月婷婷| 一区二区三区中文免费| 国内精品第一页| 欧美日韩一区二区欧美激情| 久久精品亚洲一区二区三区浴池| 亚洲欧美日韩电影| 蜜臀久久久99精品久久久久久| 色婷婷亚洲综合| 久久品道一品道久久精品| 午夜亚洲国产au精品一区二区| 暴力调教一区二区三区| 精品国产髙清在线看国产毛片| 亚洲免费av在线| 不卡一区中文字幕| 久久综合网色—综合色88| 婷婷中文字幕一区三区| 99久久亚洲一区二区三区青草| 精品久久久久香蕉网| 三级欧美在线一区| 在线视频亚洲一区| 亚洲美女区一区| 99久久伊人网影院| 国产亚洲一区二区三区在线观看| 日韩av电影一区| 欧美久久久久久久久中文字幕| 一区免费观看视频| 国产成人在线视频免费播放| 欧美成人性福生活免费看| 日本aⅴ精品一区二区三区| 欧美巨大另类极品videosbest| 亚洲精品中文在线| 91视频免费观看| 欧美激情一区二区三区| 亚洲成人免费视频| youjizz久久| 久久综合999| 中文字幕亚洲一区二区av在线 | 三级在线观看一区二区| 色999日韩国产欧美一区二区| 欧美一级在线视频| 日韩免费观看2025年上映的电影| 午夜视黄欧洲亚洲| 蜜臀av性久久久久蜜臀av麻豆| 欧美日本不卡视频| 中文字幕 久热精品 视频在线| 国产欧美综合色| 国产高清不卡一区| 91精品国产福利在线观看 | 99精品偷自拍| 亚洲欧美另类图片小说| 国产福利一区二区三区在线视频| 欧洲生活片亚洲生活在线观看| 欧美日韩国产三级| 中文字幕制服丝袜成人av| 九九**精品视频免费播放| 成人国产精品免费观看动漫| 亚洲国产成人在线| 成人免费毛片app| 99这里都是精品| 亚洲一区二区黄色| 成人综合激情网| 日韩精品专区在线| 国产成人在线视频网站| 日韩欧美的一区二区| 色先锋资源久久综合| 日韩一区和二区| 麻豆精品蜜桃视频网站| 国产日韩精品一区| 亚洲黄色av一区| 久久精品无码一区二区三区| 久久er精品视频| 亚洲色图在线视频| 欧美精品在欧美一区二区少妇| 日本伊人精品一区二区三区观看方式 | 中文字幕av一区 二区| 亚洲免费观看高清完整版在线|