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

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

?? parsetcommon.c

?? jm_frext22.ZIP的壓縮文件,主要用于嵌入式系統(tǒng)圖象的編解碼的開發(fā).
?? 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;
  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);

  return equal;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品写真在线观看| 日日摸夜夜添夜夜添精品视频| 免费成人在线影院| 欧美成人精品福利| 国产精品一二三区在线| 亚洲欧洲精品天堂一级| 99这里只有久久精品视频| 亚洲欧美日韩综合aⅴ视频| 日本韩国一区二区三区视频| 亚洲va天堂va国产va久| 日韩欧美激情四射| 国产传媒日韩欧美成人| 一区二区三区在线视频免费观看| 欧美日韩精品一区二区三区| 日韩电影免费在线观看网站| 久久久久久久av麻豆果冻| 岛国一区二区三区| 亚洲精品乱码久久久久久黑人| 91成人在线观看喷潮| 日本va欧美va精品发布| 国产人伦精品一区二区| 欧美最新大片在线看| 日本中文字幕一区二区视频 | 色综合中文综合网| 亚洲成a人在线观看| 欧美不卡一区二区三区四区| 成人激情黄色小说| 午夜一区二区三区在线观看| 精品欧美黑人一区二区三区| 99精品久久99久久久久| 男男成人高潮片免费网站| 中文字幕av免费专区久久| 欧美日韩一级片网站| 国产成人av自拍| 视频在线观看国产精品| 中文欧美字幕免费| 日韩欧美在线网站| 一本色道久久加勒比精品| 六月丁香婷婷久久| 一区二区三区中文免费| 久久色成人在线| 欧洲精品中文字幕| 懂色av一区二区夜夜嗨| 青青草伊人久久| 夜夜嗨av一区二区三区中文字幕 | 亚洲欧美在线观看| 日韩亚洲欧美成人一区| 色综合视频在线观看| 国产伦精品一区二区三区在线观看| 一区二区三区在线免费观看| 久久欧美一区二区| 91精品国产综合久久婷婷香蕉| 成人av午夜影院| 精品一区二区三区日韩| 图片区小说区国产精品视频| 国产精品国产三级国产有无不卡 | 国产不卡高清在线观看视频| 日韩av高清在线观看| 亚洲综合免费观看高清完整版| 亚洲国产精品成人综合色在线婷婷| 欧美一级二级三级蜜桃| 欧美日韩成人一区二区| 91国产视频在线观看| 91视频国产资源| jlzzjlzz亚洲女人18| 国产精品77777| 黑人巨大精品欧美一区| 麻豆高清免费国产一区| 日本成人在线不卡视频| 午夜日韩在线电影| 亚洲午夜精品网| 亚洲一区二区偷拍精品| 一二三四区精品视频| 亚洲一区二区三区三| 一区二区三区在线观看欧美 | 在线观看日韩一区| 91社区在线播放| 91国在线观看| 在线观看欧美日本| 在线看国产一区| 欧美性受极品xxxx喷水| 欧美中文字幕久久| 欧美艳星brazzers| 欧美巨大另类极品videosbest| 4438x亚洲最大成人网| 日韩一区二区三| 久久综合久久综合亚洲| 久久久久久久综合日本| 国产日韩精品一区二区三区| 国产欧美一区二区精品性色超碰 | 欧美www视频| 久久综合九色欧美综合狠狠| 国产香蕉久久精品综合网| 欧美激情一区二区三区四区| 亚洲欧美一区二区三区极速播放| 亚洲免费观看在线视频| 午夜精品久久一牛影视| 麻豆传媒一区二区三区| 国产高清不卡一区| 91久久线看在观草草青青| 欧美三级中文字| 精品福利一二区| 国产精品久久影院| 亚洲成人av在线电影| 久久精品久久综合| 国产91精品欧美| 在线观看日韩精品| 亚洲美女视频在线| 午夜精品爽啪视频| 国产a视频精品免费观看| 91亚洲精品久久久蜜桃网站| 69堂精品视频| 国产欧美一区视频| 亚洲成人av免费| 国产成a人亚洲精品| 欧美亚洲综合久久| 久久夜色精品国产欧美乱极品| 亚洲视频1区2区| 捆绑紧缚一区二区三区视频| 本田岬高潮一区二区三区| 欧美三级一区二区| 中文字幕第一区综合| 日韩精品电影在线观看| 成人免费av在线| 91麻豆精品国产91| 成人欧美一区二区三区| 青青草视频一区| 99国内精品久久| 精品日韩在线观看| 亚洲欧美国产77777| 国精产品一区一区三区mba桃花| 色综合久久久久网| 国产无人区一区二区三区| 香蕉影视欧美成人| 91视频在线观看| 久久精品男人的天堂| 五月婷婷久久综合| 一本到三区不卡视频| 国产日产精品一区| 久久精品免费看| 欧美日本一道本| 亚洲欧美怡红院| 国产精品一区不卡| 555www色欧美视频| 亚洲主播在线播放| 91色在线porny| 精品88久久久久88久久久| 一区二区三区资源| 99久久国产综合精品色伊| 国产日韩欧美在线一区| 激情六月婷婷久久| 日韩欧美中文字幕公布| 偷拍与自拍一区| 欧美在线观看18| 最新热久久免费视频| 国产a精品视频| 久久亚洲捆绑美女| 久久国产欧美日韩精品| 51久久夜色精品国产麻豆| 亚洲福利视频导航| 欧美在线观看一二区| 一区二区三区在线观看国产| 91一区二区在线观看| 国产精品欧美精品| 成人av午夜影院| 国产精品福利电影一区二区三区四区| 国内久久精品视频| 精品国产一区二区三区久久久蜜月| 午夜久久久久久| 欧美一区二区三区视频| 日本欧美一区二区| 精品日韩欧美一区二区| 久热成人在线视频| 欧美精品一区男女天堂| 国内精品写真在线观看| 国产亚洲污的网站| 99热99精品| 亚洲综合在线第一页| 欧美日韩精品一区二区三区蜜桃| 婷婷一区二区三区| 日韩免费一区二区三区在线播放| 免费看日韩a级影片| 久久婷婷国产综合精品青草| 成人性生交大片免费| 国产福利一区二区三区视频| 久久久亚洲午夜电影| 成人开心网精品视频| 一区二区三区在线观看动漫| 欧美精品在线观看一区二区| 蜜臀av亚洲一区中文字幕| 26uuu国产一区二区三区| 成人黄色一级视频| 亚洲一区二区三区爽爽爽爽爽| 91精品一区二区三区在线观看| 国内成人自拍视频| 亚洲精品日日夜夜| 91精品国产色综合久久久蜜香臀| 国精产品一区一区三区mba视频| 国产精品电影一区二区| 欧美色倩网站大全免费|