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

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

?? parsetcommon.c

?? 此code含H.264解碼需要的 lib和 src
?? C
字號:

/*!
 **************************************************************************************
 * \file
 *    parset.c
 * \brief
 *    Picture and Sequence Parameter set generation and handling
 *  \date 25 November 2002
 * \author
 *    Main contributors (see contributors.h for copyright, address and affiliation details)
 *      - Stephan Wenger        <stewe@cs.tu-berlin.de>
 *
 **************************************************************************************
 */
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

#include "parsetcommon.h"
#include "memalloc.h"
/*!
 *************************************************************************************
 * \brief
 *    Allocates memory for a picture paramater set
 *
 * \return
 *    pointer to a pps
 *************************************************************************************
 */


pic_parameter_set_rbsp_t *AllocPPS ()
 {
   pic_parameter_set_rbsp_t *p;

   if ((p=calloc (sizeof (pic_parameter_set_rbsp_t), 1)) == NULL)
     no_mem_exit ("AllocPPS: PPS");
   if ((p->slice_group_id = calloc (SIZEslice_group_id, 1)) == NULL)
     no_mem_exit ("AllocPPS: slice_group_id");
   return p;
 }


/*!
 *************************************************************************************
 * \brief
 *    Allocates memory for am sequence paramater set
 *
 * \return
 *    pointer to a sps
 *************************************************************************************
 */

seq_parameter_set_rbsp_t *AllocSPS ()
 {
   seq_parameter_set_rbsp_t *p;

   if ((p=calloc (sizeof (seq_parameter_set_rbsp_t), 1)) == NULL)
     no_mem_exit ("AllocSPS: SPS");
   return p;
 }


/*!
 *************************************************************************************
 * \brief
 *    Frees a picture parameter set
 *
 * \param pps to be freed
 *   Picture parameter set to be freed
 *************************************************************************************
 */

 void FreePPS (pic_parameter_set_rbsp_t *pps)
 {
   assert (pps != NULL);
   if (pps->slice_group_id != NULL) free (pps->slice_group_id);
   free (pps);
 }


 /*!
 *************************************************************************************
 * \brief
 *    Frees a sps
 *
 * \param sps
 *   Sequence parameter set to be freed
 *************************************************************************************
 */

 void FreeSPS (seq_parameter_set_rbsp_t *sps)
 {
   assert (sps != NULL);
   free (sps);
 }


int sps_is_equal(seq_parameter_set_rbsp_t *sps1, seq_parameter_set_rbsp_t *sps2)
{
  unsigned i;
  int equal = 1;

  if ((!sps1->Valid) || (!sps2->Valid))
    return 0;

  equal &= (sps1->profile_idc == sps2->profile_idc);
  equal &= (sps1->constrained_set0_flag == sps2->constrained_set0_flag);
  equal &= (sps1->constrained_set1_flag == sps2->constrained_set1_flag);
  equal &= (sps1->constrained_set2_flag == sps2->constrained_set2_flag);
  equal &= (sps1->level_idc == sps2->level_idc);
  equal &= (sps1->seq_parameter_set_id == sps2->seq_parameter_set_id);
  equal &= (sps1->log2_max_frame_num_minus4 == sps2->log2_max_frame_num_minus4);
  equal &= (sps1->pic_order_cnt_type == sps2->pic_order_cnt_type);

  if (!equal) return equal;

  if( sps1->pic_order_cnt_type == 0 )
  {
    equal &= (sps1->log2_max_pic_order_cnt_lsb_minus4 == sps2->log2_max_pic_order_cnt_lsb_minus4);
  }

  else if( sps1->pic_order_cnt_type == 1 )
  {
    equal &= (sps1->delta_pic_order_always_zero_flag == sps2->delta_pic_order_always_zero_flag);
    equal &= (sps1->offset_for_non_ref_pic == sps2->offset_for_non_ref_pic);
    equal &= (sps1->offset_for_top_to_bottom_field == sps2->offset_for_top_to_bottom_field);
    equal &= (sps1->num_ref_frames_in_pic_order_cnt_cycle == sps2->num_ref_frames_in_pic_order_cnt_cycle);
    if (!equal) return equal;

    for ( i = 0 ; i< sps1->num_ref_frames_in_pic_order_cnt_cycle ;i ++)
      equal &= (sps1->offset_for_ref_frame[i] == sps2->offset_for_ref_frame[i]);
  }

  equal &= (sps1->num_ref_frames == sps2->num_ref_frames);
  equal &= (sps1->gaps_in_frame_num_value_allowed_flag == sps2->gaps_in_frame_num_value_allowed_flag);
  equal &= (sps1->pic_width_in_mbs_minus1 == sps2->pic_width_in_mbs_minus1);
  equal &= (sps1->pic_height_in_map_units_minus1 == sps2->pic_height_in_map_units_minus1);
  equal &= (sps1->frame_mbs_only_flag == sps2->frame_mbs_only_flag);

  if (!equal) return equal;
  if( !sps1->frame_mbs_only_flag )
    equal &= (sps1->mb_adaptive_frame_field_flag == sps2->mb_adaptive_frame_field_flag);

  equal &= (sps1->direct_8x8_inference_flag == sps2->direct_8x8_inference_flag);
  equal &= (sps1->frame_cropping_flag == sps2->frame_cropping_flag);
  if (!equal) return equal;
  if (sps1->frame_cropping_flag)
  {
    equal &= (sps1->frame_cropping_rect_left_offset == sps2->frame_cropping_rect_left_offset);
    equal &= (sps1->frame_cropping_rect_right_offset == sps2->frame_cropping_rect_right_offset);
    equal &= (sps1->frame_cropping_rect_top_offset == sps2->frame_cropping_rect_top_offset);
    equal &= (sps1->frame_cropping_rect_bottom_offset == sps2->frame_cropping_rect_bottom_offset);
  }
  equal &= (sps1->vui_parameters_present_flag == sps2->vui_parameters_present_flag);

  return equal;
}

int pps_is_equal(pic_parameter_set_rbsp_t *pps1, pic_parameter_set_rbsp_t *pps2)
{
  unsigned i, j;
  int equal = 1;

  if ((!pps1->Valid) || (!pps2->Valid))
    return 0;

  equal &= (pps1->pic_parameter_set_id == pps2->pic_parameter_set_id);
  equal &= (pps1->seq_parameter_set_id == pps2->seq_parameter_set_id);
  equal &= (pps1->entropy_coding_mode_flag == pps2->entropy_coding_mode_flag);
  equal &= (pps1->pic_order_present_flag == pps2->pic_order_present_flag);
  equal &= (pps1->num_slice_groups_minus1 == pps2->num_slice_groups_minus1);

  if (!equal) return equal;

  if (pps1->num_slice_groups_minus1>0)
  {
      equal &= (pps1->slice_group_map_type == pps2->slice_group_map_type);
      if (!equal) return equal;
      if (pps1->slice_group_map_type == 0)
      {
        for (i=0; i<=pps1->num_slice_groups_minus1; i++)
          equal &= (pps1->run_length_minus1[i] == pps2->run_length_minus1[i]);
      }
      else if( pps1->slice_group_map_type == 2 )
      {
        for (i=0; i<pps1->num_slice_groups_minus1; i++)
        {
          equal &= (pps1->top_left[i] == pps2->top_left[i]);
          equal &= (pps1->bottom_right[i] == pps2->bottom_right[i]);
        }
      }
      else if( pps1->slice_group_map_type == 3 || pps1->slice_group_map_type==4 || pps1->slice_group_map_type==5 )
      {
        equal &= (pps1->slice_group_change_direction_flag == pps2->slice_group_change_direction_flag);
        equal &= (pps1->slice_group_change_rate_minus1 == pps2->slice_group_change_rate_minus1);
      }
      else if( pps1->slice_group_map_type == 6 )
      {
        equal &= (pps1->num_slice_group_map_units_minus1 == pps2->num_slice_group_map_units_minus1);
        if (!equal) return equal;
        for (i=0; i<=pps1->num_slice_group_map_units_minus1; i++)
          equal &= (pps1->slice_group_id[i] == pps2->slice_group_id[i]);
      }
  }

  equal &= (pps1->num_ref_idx_l0_active_minus1 == pps2->num_ref_idx_l0_active_minus1);
  equal &= (pps1->num_ref_idx_l1_active_minus1 == pps2->num_ref_idx_l1_active_minus1);
  equal &= (pps1->weighted_pred_flag == pps2->weighted_pred_flag);
  equal &= (pps1->weighted_bipred_idc == pps2->weighted_bipred_idc);
  equal &= (pps1->pic_init_qp_minus26 == pps2->pic_init_qp_minus26);
  equal &= (pps1->pic_init_qs_minus26 == pps2->pic_init_qs_minus26);
  equal &= (pps1->chroma_qp_index_offset == pps2->chroma_qp_index_offset);
  equal &= (pps1->deblocking_filter_control_present_flag == pps2->deblocking_filter_control_present_flag);
  equal &= (pps1->constrained_intra_pred_flag == pps2->constrained_intra_pred_flag);
  equal &= (pps1->redundant_pic_cnt_present_flag == pps2->redundant_pic_cnt_present_flag);

  //Fidelity Range Extensions Stuff
  //It is inialized to zero, so should be ok to check all the time.
  equal &= (pps1->transform_8x8_mode_flag == pps2->transform_8x8_mode_flag);
  equal &= (pps1->pic_scaling_matrix_present_flag == pps2->transform_8x8_mode_flag);
  if(pps1->pic_scaling_matrix_present_flag)
  {
    for(i = 0; i < (6 + ((unsigned)pps1->transform_8x8_mode_flag << 1)); i++)
    {
      equal &= (pps1->pic_scaling_list_present_flag[i] == pps2->pic_scaling_list_present_flag[i]); 
      if(pps1->pic_scaling_list_present_flag[i])
      {
        if(i < 6)
        {
          for (j = 0; j < 16; j++)         
            equal &= (pps1->ScalingList4x4[i][j] == pps2->ScalingList4x4[i][j]);
        }
        else
        {
          for (j = 0; j < 64; j++)                 
            equal &= (pps1->ScalingList8x8[i-6][j] == pps2->ScalingList8x8[i-6][j]);
        }
      }
    }
  }
  equal &= (pps1->second_chroma_qp_index_offset == pps2->second_chroma_qp_index_offset);


  return equal;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利视频一区二区| 一区二区在线观看免费| 制服丝袜成人动漫| 国产欧美一区二区在线| 亚洲最大色网站| 高清视频一区二区| 欧美一级二级三级蜜桃| 亚洲啪啪综合av一区二区三区| 国v精品久久久网| 精品视频在线视频| 综合激情成人伊人| 国产成人aaa| 久久久久久久久久美女| 亚洲综合成人在线| 99re成人精品视频| 欧美国产精品一区二区| 国内精品国产成人国产三级粉色| 日本欧洲一区二区| 欧美中文字幕一区二区三区亚洲| 99re热视频精品| 一区二区三区在线观看网站| 日韩三级视频在线观看| 国产午夜精品一区二区三区视频| 久久久99精品久久| 亚洲一区二区在线观看视频| 国产电影一区二区三区| 精品国产成人系列| 九色综合国产一区二区三区| 日韩一级片在线播放| 日韩专区中文字幕一区二区| 欧美日韩亚洲国产综合| 亚洲成人激情综合网| 欧美三级一区二区| 亚洲国产日韩精品| 欧美日韩久久不卡| 亚洲成人第一页| 欧美日高清视频| 日本aⅴ精品一区二区三区| 欧美日韩精品一区二区三区蜜桃| 欧美日韩久久不卡| 视频一区中文字幕| 粉嫩高潮美女一区二区三区 | 国产一区二区三区在线看麻豆| 水野朝阳av一区二区三区| 国产激情视频一区二区三区欧美 | 蜜臀久久久久久久| 51精品秘密在线观看| 日韩精品91亚洲二区在线观看| 老司机午夜精品| 亚洲精品一区在线观看| 国产精品资源网站| 国产日产欧产精品推荐色| 国产很黄免费观看久久| 最新不卡av在线| 欧美日韩免费不卡视频一区二区三区| 欧美成人精品高清在线播放| 91在线视频在线| 日韩精品专区在线影院观看| 国模少妇一区二区三区| 欧美激情一区不卡| 欧美亚洲一区二区在线观看| 亚洲国产美女搞黄色| 日韩精品自拍偷拍| 91在线观看污| 蜜臀av亚洲一区中文字幕| 中文字幕久久午夜不卡| 欧美丝袜丝nylons| 国产精品2024| 亚洲福利视频三区| 亚洲国产成人一区二区三区| 色悠悠久久综合| 狠狠久久亚洲欧美| 亚洲国产日韩a在线播放| 久久婷婷国产综合精品青草 | 五月综合激情日本mⅴ| 日韩午夜在线观看视频| 成人免费看黄yyy456| 亚洲成国产人片在线观看| 国产午夜精品理论片a级大结局| 日韩av高清在线观看| 国产精品午夜久久| 欧美一级高清片| 色屁屁一区二区| 国产成人午夜精品5599| 日本va欧美va欧美va精品| 亚洲天堂av一区| 久久精品亚洲一区二区三区浴池| 蜜臀a∨国产成人精品| 亚洲黄色小说网站| 国产片一区二区| 4438成人网| 色婷婷狠狠综合| 成人免费视频caoporn| 激情综合色综合久久| 日韩中文字幕不卡| 亚洲一级电影视频| 亚洲青青青在线视频| 国产欧美日韩另类一区| 精品久久一区二区| 欧美一卡在线观看| 欧美日韩专区在线| 色综合视频在线观看| 成人国产精品免费| 国产iv一区二区三区| 捆绑紧缚一区二区三区视频| 五月综合激情婷婷六月色窝| 亚洲自拍偷拍av| 一区二区三区在线视频观看| 亚洲欧美自拍偷拍色图| 欧美高清在线视频| 久久久久国产精品人| 国产喂奶挤奶一区二区三区| 2023国产精华国产精品| 日韩视频免费直播| 日韩欧美你懂的| 日韩欧美一区在线| 日韩美女主播在线视频一区二区三区| 国产盗摄视频一区二区三区| 国产一区二区三区av电影| 韩国女主播成人在线| 国产麻豆一精品一av一免费 | 欧美一区永久视频免费观看| 欧美一三区三区四区免费在线看 | 亚洲福利一二三区| 亚洲精品国产精华液| 亚洲国产日韩a在线播放| 亚洲一区二区美女| 日日骚欧美日韩| 麻豆91在线播放| 国产激情一区二区三区桃花岛亚洲| 尤物av一区二区| 午夜欧美在线一二页| 全部av―极品视觉盛宴亚洲| 精品亚洲国产成人av制服丝袜| 自拍偷拍欧美精品| 亚洲小说欧美激情另类| 日韩国产欧美在线视频| 国产伦精品一区二区三区免费| 一区二区免费在线| 日韩有码一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 成人av在线观| 欧美图片一区二区三区| 欧美一区二区国产| 久久久久国色av免费看影院| 国产精品国产三级国产普通话三级 | 精品国产免费人成在线观看| 久久精品一区二区三区不卡牛牛 | 日韩女优av电影| 中文字幕免费不卡| 亚洲已满18点击进入久久| 亚洲一区二区三区四区在线观看| 国产精品久久久久久久久久久免费看 | 中文字幕一区av| 午夜久久久久久久久久一区二区| 亚洲欧美中日韩| 秋霞国产午夜精品免费视频| 粉嫩av一区二区三区在线播放| 日本va欧美va精品发布| 99久精品国产| 欧美xxxxxxxx| 亚洲一级不卡视频| 成人性视频免费网站| 在线精品视频一区二区三四| 久久精品一区四区| 日本一不卡视频| 一本久久综合亚洲鲁鲁五月天| av一区二区三区黑人| 日韩欧美综合在线| 一区2区3区在线看| 国产成人精品免费| 欧美日韩成人一区二区| 中文字幕一区二区在线观看| 狠狠狠色丁香婷婷综合激情| 在线看不卡av| 最新国产成人在线观看| 国产成人亚洲精品狼色在线| 91麻豆精品91久久久久同性| 一区二区三区在线影院| 国产成人福利片| 久久亚洲免费视频| 美国三级日本三级久久99| 欧美日韩一区二区三区高清| 中文字幕一区二区三区四区不卡 | 岛国一区二区在线观看| 欧美剧在线免费观看网站 | 久久精品综合网| 久久97超碰国产精品超碰| 欧美自拍丝袜亚洲| 亚洲女人****多毛耸耸8| 成人午夜视频在线观看| 国产欧美综合色| 国产精品一二三在| 精品播放一区二区| 麻豆91小视频| 日韩精品一区二区三区四区| 手机精品视频在线观看| 欧美日韩精品欧美日韩精品| 亚洲狠狠爱一区二区三区| 欧美午夜影院一区|