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

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

?? parameterset.c

?? This document aims to provide instructions on how to configure the H.264/AVC encoder and decoder usi
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*COPYRIGHT, LICENSE AND WARRANTY INFORMATIONThis software module has been originally developed by Nokia Corporation. Provided that a person, entity or a company willing to use the Software (hereinafter Licensee) comply with all the terms and conditions of this Statement and subject to the limitations set forth in this Statement Nokia grants to such Licensee a non-exclusive, sub-licensable, worldwide, limited license under copyrights owned by Nokia to use the Software for the sole purpose of creating, manufacturing, selling, marketing, or  distributing (including the right to make modifications to the Software) a fully compliant decoder implementation (hereinafter "Decoder") of ITU-T Recommendation H.264 / ISO/IEC International Standard 14496-10 and an encoder implementation producing output that is decodable with the Decoder.Nokia retains the ownership of copyrights to the Software. There is no patent nor other intellectual property right of Nokia licensed under this Statement (except the copyright license above). Licensee hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if patent licenses  are required, it is their responsibility to acquire the license before utilizing the Software.The license by Nokia is subject to that the Licensee grants to Nokia the non-exclusive, worldwide, royalty-free, perpetual and irrevocable covenant that the Licensee(s) shall not bring a suit before any court or administrative agency or otherwise assert a claim for infringement under the Licensee intellectual property rights that, but for a license, would be infringed by the Software against     (a)  Nokia or Nokia's Affiliate; or     (b)  other recipient of a license and covenant not to sue with respect         to the Software from Nokia; or    (c)  contractor, customer or distributor of a party listed above in a         or b,  which suit or claim is related to the Software or use thereof.The Licensee(s) further agrees to grant a reciprocal license to Nokia (as granted by Nokia to the Licensee(s) on the modifications made by Licensee(s) to the Software. THE SOFTWARE IS PROVIDED "AS IS" AND THE ORIGINAL DEVELOPER DISCLAIMS ANY AND ALL WARRANTIES WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. THOSE INTENDING TO USE THE SOFTWARE ARE EXPRESSLY ADVISED THAT ITS USE MAY INFRINGE EXISTING PATENTS AND BE SUBJECT TO ROYALTY PAYMENTS TO PATENT OWNERS. ANYONE USING THE SOFTWARE ON THE BASIS OF THIS LICENSE AGREES TO OBTAIN THE NECESSARY PERMISSIONS FROM ANY AND ALL APPLICABLE PATENT OWNERS FOR SUCH USE.IN NO EVENT SHALL THE ORIGINAL DEVELOPER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.This copyright, license and warranty information notice must be retained in all copies and derivative works of the Software or substantial portions thereof.*/#include <limits.h>#include "nccglob.h"#include "globals.h"#include "debug.h"#include "vlcutility.h"#include "parameterset.h"/* * psSendHrdParameters: * * Parameters: *      bitbuf                the bitbuffer object *      hrd                   the pointer for returning HRD parameters * * Function: *      encode the HRD Parameters * * Returns: *      the number of bits being used */static int psSendHrdParameters(bitbuffer_s *bitbuf,                                hrd_parameters_s *hrd){  unsigned int i;  int bits;  bits = 0;  bits += ue_v(bitbuf, hrd->cpb_cnt_minus1);  bits += u_n(bitbuf, hrd->bit_rate_scale, 4);  bits += u_n(bitbuf, hrd->cpb_size_scale, 4);  for (i = 0; i <= hrd->cpb_cnt_minus1; i++) {    bits += ue_v(bitbuf, hrd->bit_rate_value_minus1[i]);    bits += ue_v(bitbuf, hrd->cpb_size_value_minus1[i]);    bits += u_n(bitbuf, hrd->cbr_flag[i], 1);  }  bits += u_n(bitbuf, hrd->initial_cpb_removal_delay_length_minus1, 5);  bits += u_n(bitbuf, hrd->cpb_removal_delay_length_minus1, 5);  bits += u_n(bitbuf, hrd->dpb_output_delay_length_minus1, 5);  bits += u_n(bitbuf, hrd->time_offset_length, 5);  return bits;}/* * psSendVUI: * * Parameters: *      bitbuf                the bitbuffer object *      vui                   the pointer for returning VUI parameters * * Function: *      encode the VUI Parameters * * Returns: *      the number of bits being used */static int psSendVUI(bitbuffer_s *bitbuf,                      vui_parameters_s *vui){  int bits;  bits = 0;  bits += u_n(bitbuf, vui->aspect_ratio_info_present_flag, 1);  if (vui->aspect_ratio_info_present_flag) {    bits += u_n(bitbuf, vui->aspect_ratio_idc, 8);    if (vui->aspect_ratio_idc == PS_EXTENDED_SAR) {      bits += u_n(bitbuf, vui->sar_width, 16);      bits += u_n(bitbuf, vui->sar_height, 16);    }  }  bits += u_n(bitbuf, vui->overscan_info_present_flag, 1);  if (vui->overscan_info_present_flag) {    bits += u_n(bitbuf, vui->overscan_appropriate_flag, 1);  }  bits += u_n(bitbuf, vui->video_signal_type_present_flag, 1);  if (vui->video_signal_type_present_flag) {    bits += u_n(bitbuf, vui->video_format, 3);    bits += u_n(bitbuf, vui->video_full_range_flag, 1);    bits += u_n(bitbuf, vui->colour_description_present_flag, 1);    if (vui->colour_description_present_flag) {      bits += u_n(bitbuf, vui->colour_primaries, 8);      bits += u_n(bitbuf, vui->transfer_characteristics, 8);      bits += u_n(bitbuf, vui->matrix_coefficients, 8);    }  }  bits += u_n(bitbuf, vui->chroma_loc_info_present_flag, 1);  if (vui->chroma_loc_info_present_flag) {    bits += ue_v(bitbuf, vui->chroma_sample_loc_type_top_field);    bits += ue_v(bitbuf, vui->chroma_sample_loc_type_bottom_field);  }  bits += u_n(bitbuf, vui->timing_info_present_flag, 1);  if (vui->timing_info_present_flag) {    bits += u_n(bitbuf, vui->num_units_in_tick, 32);    bits += u_n(bitbuf, vui->time_scale, 32);    bits += u_n(bitbuf, vui->fixed_frame_rate_flag, 1);  }  bits += u_n(bitbuf, vui->nal_hrd_parameters_present_flag, 1);  if (vui->nal_hrd_parameters_present_flag) {    //bits += psSendHrdParameters(bitbuf, &vui->nal_hrd_parameters);    bits += psSendHrdParameters(bitbuf, &vui->vcl_hrd_parameters);  }  bits += u_n(bitbuf, vui->vcl_hrd_parameters_present_flag,1);  if (vui->vcl_hrd_parameters_present_flag) {    bits += psSendHrdParameters(bitbuf, &vui->vcl_hrd_parameters);  }  if (vui->nal_hrd_parameters_present_flag || vui->vcl_hrd_parameters_present_flag) {    bits += u_n(bitbuf, vui->low_delay_hrd_flag, 1);  }  bits += u_n(bitbuf, vui->pic_struct_present_flag, 1);  bits += u_n(bitbuf, vui->bitstream_restriction_flag, 1);  if (vui->bitstream_restriction_flag) {    bits += u_n(bitbuf, vui->motion_vectors_over_pic_boundaries_flag, 1);    bits += ue_v(bitbuf, vui->max_bytes_per_pic_denom);    bits += ue_v(bitbuf, vui->max_bits_per_mb_denom);    bits += ue_v(bitbuf, vui->log2_max_mv_length_horizontal);    bits += ue_v(bitbuf, vui->log2_max_mv_length_vertical);    bits += ue_v(bitbuf, vui->num_reorder_frames);    bits += ue_v(bitbuf, vui->max_dec_frame_buffering);  }  return bits;}/*  * psSendSeqParameterSet * * Parameters: *    bitbuf            the bitbuffer object *    sps               the SPS object *    bitsNal           Pointer to counter accumulating NAL bits * * Function: *    Encode sequence parameter set * * Returns: *    the number of bits being used for encoding the SPS. Please note that the stream header *    and the NAL header is not taken into account. */int psSendSeqParameterSet(bitbuffer_s *bitbuf,                           seq_parameter_set_s *sps,                           int *bitsNal){  int bits = 0;  unsigned i;  *bitsNal += vlcuSendNalUnitStartCodePrefix(bitbuf, 1);  *bitsNal += vlcuSendNalHead(bitbuf, 1, SPS_NAL_TYPE);  bits += u_n(bitbuf, sps->profile_idc, 8);  bits += u_n(bitbuf, sps->constraint_set0_flag, 1);  bits += u_n(bitbuf, sps->constraint_set1_flag, 1);  bits += u_n(bitbuf, sps->constraint_set2_flag, 1);  bits += u_n(bitbuf, sps->reserved_zero_5bits, 5);  bits += u_n(bitbuf, sps->level_idc, 8);  bits += ue_v(bitbuf, sps->seq_parameter_set_id);  bits += ue_v(bitbuf, sps->log2_max_frame_num_minus4);  bits += ue_v(bitbuf, sps->pic_order_cnt_type);  if (sps->pic_order_cnt_type == 0)    bits += ue_v(bitbuf, sps->log2_max_pic_order_cnt_lsb_minus4);  else if (sps->pic_order_cnt_type == 1)  {    bits += u_n(bitbuf, sps->delta_pic_order_always_zero_flag, 1);    bits += se_v(bitbuf, sps->offset_for_non_ref_pic);    bits += se_v(bitbuf, sps->offset_for_top_to_bottom_field);    bits += ue_v(bitbuf, sps->num_ref_frames_in_pic_order_cnt_cycle);    for (i=0; i<sps->num_ref_frames_in_pic_order_cnt_cycle; i++)      bits += se_v(bitbuf, sps->offset_for_ref_frame[i]);  }  bits += ue_v(bitbuf, sps->num_ref_frames);  bits += u_n(bitbuf,sps->gaps_in_frame_num_value_allowed_flag, 1);  bits += ue_v(bitbuf, sps->pic_width_in_mbs_minus1);  bits += ue_v(bitbuf, sps->pic_height_in_map_units_minus1);  bits += u_n(bitbuf, sps->frame_mbs_only_flag, 1);  if (sps->frame_mbs_only_flag==0)    bits += u_n(bitbuf, sps->mb_adaptive_frame_field_flag, 1);  bits += u_n(bitbuf, sps->direct_8x8_inference_flag, 1);  bits += u_n( bitbuf, sps->frame_cropping_flag, 1 );  if (sps->frame_cropping_flag)  {    bits += ue_v( bitbuf, sps->frame_crop_left_offset );    bits += ue_v( bitbuf, sps->frame_crop_right_offset );    bits += ue_v( bitbuf, sps->frame_crop_top_offset );    bits += ue_v( bitbuf, sps->frame_crop_bottom_offset );  }  bits += u_n(bitbuf, sps->vui_parameters_present_flag, 1);  if (sps->vui_parameters_present_flag)    bits += psSendVUI(bitbuf, &sps->vui_parameters);  bits += bibTrailingBits(bitbuf);  return bits;}/*  * psSendPicParameterSet * * Parameters: *    bitbuf            the bitbuffer object *    pps               the PPS object *    bitsNal           Pointer to counter accumulating NAL bits * * Function: *    Encode the picture parameter set * * Returns: *    the number of bits being used for encoding the PPS. Please note that the stream header *    and the NAL header is not taken into account. */int psSendPicParameterSet(bitbuffer_s *bitbuf,                           pic_parameter_set_s *pps,                           int *bitsNal){  int bits = 0, tmp;  unsigned i, len;  *bitsNal += vlcuSendNalUnitStartCodePrefix(bitbuf, 1);  *bitsNal += vlcuSendNalHead(bitbuf, 1, PPS_NAL_TYPE);  bits += ue_v( bitbuf, pps->pic_parameter_set_id);  bits += ue_v( bitbuf, pps->seq_parameter_set_id);  bits += u_n( bitbuf, pps->entropy_coding_mode_flag, 1 );  bits += u_n( bitbuf, pps->pic_order_present_flag, 1 );  bits += ue_v( bitbuf, pps->num_slice_groups_minus1 );  if(pps->num_slice_groups_minus1 > 0 )  {    bits += ue_v( bitbuf, pps->slice_group_map_type);    if (pps->slice_group_map_type == 0)      for (i=0; i<=pps->num_slice_groups_minus1; i++)        bits += ue_v( bitbuf, pps->run_length_minus1[i] );    else if (pps->slice_group_map_type==2)      for (i=0; i<pps->num_slice_groups_minus1; i++)      {        bits += ue_v( bitbuf, pps->top_left[i]);        bits += ue_v( bitbuf, pps->bottom_right[i]);      }    else if (pps->slice_group_map_type == 3 ||             pps->slice_group_map_type == 4 ||             pps->slice_group_map_type == 5)     {      bits += u_n( bitbuf, pps->slice_group_change_direction_flag, 1);      bits += ue_v( bitbuf, pps->slice_group_change_rate_minus1);    }     else if (pps->slice_group_map_type == 6)    {      bits += ue_v( bitbuf, pps->pic_size_in_map_units_minus1 );      // Calculate len = Ceil( Log2( num_slice_groups_minus1 + 1 ) )      tmp = pps->num_slice_groups_minus1 + 1;      tmp = tmp >> 1;      for( len = 0; len < 16 && tmp != 0; len++ )        tmp >>= 1;      if ( (((unsigned)1)<<len) < (pps->num_slice_groups_minus1 + 1) )        len++;            for( i = 0; i <= pps->pic_size_in_map_units_minus1; i++ )        bits += u_n( bitbuf, (int) pps->slice_group_id[i], len ); // DT: check    }  }  bits += ue_v( bitbuf, pps->num_ref_idx_l0_active_minus1 );  bits += ue_v( bitbuf, pps->num_ref_idx_l1_active_minus1 );  bits += u_n( bitbuf, pps->weighted_pred_flag, 1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久资源速度 | 久久国产精品99久久久久久老狼 | 蜜臀久久99精品久久久久宅男| 看电视剧不卡顿的网站| 91丝袜美腿高跟国产极品老师 | 色综合中文综合网| 亚洲视频 欧洲视频| 经典三级视频一区| 欧美日精品一区视频| 国产精品女主播av| 黑人巨大精品欧美黑白配亚洲| 欧美亚洲免费在线一区| 日韩毛片高清在线播放| 国产精选一区二区三区| 精品福利视频一区二区三区| 天堂成人免费av电影一区| 91国偷自产一区二区使用方法| 国产亚洲精品超碰| 国产一区二区h| 26uuu亚洲综合色| 日韩国产高清影视| 宅男在线国产精品| 午夜精品成人在线视频| 欧美在线一区二区| 亚洲一级片在线观看| 91福利视频久久久久| 一区二区三区自拍| 色综合久久久久| 亚洲欧美日韩在线| 日本高清成人免费播放| 一区二区三区视频在线看| 在线观看一区二区精品视频| 一区二区高清免费观看影视大全 | 欧美一区二区三区爱爱| 日产精品久久久久久久性色| 91精品久久久久久久99蜜桃 | 日韩欧美成人午夜| 国产专区欧美精品| 国产欧美精品一区二区色综合朱莉| 狠狠网亚洲精品| 中文字幕乱码久久午夜不卡| av成人免费在线观看| 亚洲精品国产第一综合99久久| 在线观看国产91| 午夜电影一区二区三区| 欧美精品一区男女天堂| 国产精品一区二区视频| 中文字幕亚洲在| 欧美在线观看视频一区二区三区| 亚欧色一区w666天堂| 91精品国产综合久久福利| 激情五月婷婷综合| 一色屋精品亚洲香蕉网站| 欧美三级日韩在线| 精品一区二区三区在线观看国产| 国产日韩欧美激情| 欧美色电影在线| 国产剧情在线观看一区二区| 国产精品夫妻自拍| 欧美精品一二三| 高清在线观看日韩| 亚洲一区二区欧美| 日本一区二区三区四区在线视频| 在线精品观看国产| 国产电影精品久久禁18| 亚洲午夜成aⅴ人片| 欧美精品一区二区三区在线播放| 97精品视频在线观看自产线路二| 日韩中文欧美在线| 中文字幕亚洲一区二区av在线| 91精品黄色片免费大全| 99re在线视频这里只有精品| 免费成人在线网站| 一区二区三区欧美久久| 国产欧美精品一区| 欧美日韩精品欧美日韩精品一| 国产69精品久久777的优势| 亚洲成人精品影院| 最新国产成人在线观看| 亚洲精品一区二区在线观看| 欧美性大战久久| av男人天堂一区| 国产一区二区视频在线播放| 亚洲成a人在线观看| 1024成人网| 久久久久久亚洲综合影院红桃 | 91欧美一区二区| 国产一区二区网址| 免费看日韩a级影片| 亚洲无线码一区二区三区| 国产精品麻豆99久久久久久| 欧美电影免费观看高清完整版在线观看 | 日韩美女一区二区三区四区| 91视视频在线直接观看在线看网页在线看| 日本午夜一本久久久综合| 亚洲欧美另类小说| 国产精品素人一区二区| 久久久国际精品| 日韩欧美国产综合在线一区二区三区| 一道本成人在线| 不卡的电影网站| 懂色av中文字幕一区二区三区| 国产综合久久久久久鬼色| 免费在线观看成人| 青青草国产成人av片免费| 图片区小说区国产精品视频| 亚洲一区免费视频| 一个色妞综合视频在线观看| 一区二区三区四区在线| 亚洲欧美福利一区二区| 中文字幕亚洲综合久久菠萝蜜| 国产欧美va欧美不卡在线| 国产日韩欧美激情| 国产精品麻豆99久久久久久| 国产精品久久久久aaaa| 亚洲少妇中出一区| 亚洲午夜久久久久| 日韩福利视频导航| 麻豆国产精品一区二区三区| 精品无人码麻豆乱码1区2区| 久久99热狠狠色一区二区| 久久电影网电视剧免费观看| 国产在线精品一区二区夜色| 国产成人精品亚洲777人妖 | 中文字幕在线观看一区| 一区在线中文字幕| 亚洲欧美激情视频在线观看一区二区三区| √…a在线天堂一区| 亚洲精品日韩一| 亚洲va国产va欧美va观看| 另类小说色综合网站| 国产乱码精品一区二区三区忘忧草| 福利一区二区在线| 91国产免费观看| 日韩你懂的在线播放| 中文字幕av不卡| 亚洲综合免费观看高清完整版| 午夜视频在线观看一区| 国产麻豆精品一区二区| 99久久免费国产| 91精品国产综合久久婷婷香蕉 | 国产精品77777竹菊影视小说| 国产suv一区二区三区88区| 日本久久电影网| 日韩亚洲电影在线| 中文字幕亚洲精品在线观看| 亚洲电影一级黄| 国产一区 二区| 欧美日韩在线三级| 久久久亚洲午夜电影| 亚洲精选视频免费看| 激情偷乱视频一区二区三区| 91美女蜜桃在线| 精品美女被调教视频大全网站| 国产精品欧美综合在线| 男人操女人的视频在线观看欧美| 丰满放荡岳乱妇91ww| 日韩限制级电影在线观看| 国产精品乱人伦| 久久不见久久见免费视频7| 91麻豆swag| 久久精品免视看| 日韩在线a电影| 91猫先生在线| 久久久91精品国产一区二区三区| 亚洲国产精品一区二区久久| 国产成人在线色| 日韩视频中午一区| 亚洲综合一区二区精品导航| 国产成人综合在线播放| 91麻豆精品国产91久久久久| 亚洲精品成人在线| 国产成人精品免费在线| 欧美不卡一区二区三区四区| 亚洲图片欧美视频| 欧美成人一级视频| 亚洲一区免费观看| 91丝袜美女网| 国产精品你懂的| 美国精品在线观看| 51精品秘密在线观看| 亚洲成在人线在线播放| 日本韩国欧美在线| 伊人夜夜躁av伊人久久| 99视频在线精品| 国产精品国产a级| jlzzjlzz亚洲日本少妇| 国产午夜精品一区二区三区视频| 久久成人18免费观看| 日韩欧美在线一区二区三区| 日本欧美一区二区三区乱码| 欧美日韩免费视频| 亚洲高清免费视频| 欧美日韩精品一区二区天天拍小说| 亚洲欧洲成人自拍| 99精品国产一区二区三区不卡| 国产精品天天看| 99精品国产热久久91蜜凸| 亚洲女同女同女同女同女同69| 91麻豆国产福利精品|