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

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

?? vlcutility.c

?? This document aims to provide instructions on how to configure the H.264/AVC encoder and decoder usi
?? C
字號:
/*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 "vlcutility.h"/* * Table for number of bits for the smallest codes */const int8 uvlcBitsUnsigned[] = {   1, 3, 3, 5, 5, 5, 5, 7,   7, 7, 7, 7, 7, 7, 7, 9,   9, 9, 9, 9, 9, 9, 9, 9,   9, 9, 9, 9, 9, 9, 9, 11,   11,11,11,11,11,11,11,11,   11,11,11,11,11,11,11,11,   11,11,11,11,11,11,11,11,   11,11,11,11,11,11,11,13,};/* * Number of bits for motion vectors. Range goes from -511 to 511 */const int8 uvlcBitsSigned[511 + 1 + 511] = {  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,  11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,   9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 5, 5, 3,   1,   3, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9,  11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,  19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19};const int8 numOfRefPar[7] = {  1, 2, 2, 4, 4, 4, 4};/* * vlcuZigZagScan4x4 * * Parameters: *      src                   Source block *      dst                   Zig zag scanned values * * Function: *      Perform zig zag scanning for a block of values. *       * Returns: *      - * */void vlcuZigZagScan4x4(int src[BLK_SIZE][BLK_SIZE], int *dst){  dst[0] =src[0][0], dst[1] =src[0][1], dst[2] =src[1][0], dst[3] =src[2][0];  dst[4] =src[1][1], dst[5] =src[0][2], dst[6] =src[0][3], dst[7] =src[1][2];  dst[8] =src[2][1], dst[9] =src[3][0], dst[10]=src[3][1], dst[11]=src[2][2];  dst[12]=src[1][3], dst[13]=src[2][3], dst[14]=src[3][2], dst[15]=src[3][3];}/* * vlcuUVLCSize: * * Parameters: *      codeNum               Code number to be sent * * Function: *      Calculate the length of the Unified VLC representation of an integer. * * Returns: *      Length of the codeword. */int vlcuUVLCSize(unsigned int codeNum){  int tmp;  int len;  int i;  tmp = (codeNum + 1) >> 1;  /* Find len/2 = i */  for (i = 0; tmp != 0 && i < 16; i++)    tmp >>= 1;  /* Compute length. Length is always odd number */  len  = 2*i + 1;  return len;}/* * vlcuSendUVLC: * * Parameters: *      bitbuf                Bitbuffer to be used *      codeNum               Code number to be sent * * Function: *      Sends Unified VLC. *      Code number is first converted to info and length. Info is the info part *      of the codeword and length is the length of the final codeword *      (not info part). Relationship between code number, info and length is * *        codeNum = 2^(len/2) + info - 1 * * Returns: *      Length of the codeword. */int vlcuSendUVLC(bitbuffer_s *bitbuf, unsigned int codeNum){  int tmp;  int info;  int len;  int i;  tmp = (codeNum+1)>>1;  /* Find len/2 = i */  for (i = 0; tmp != 0 && i < 16; i++)    tmp >>= 1;  /* Compute length. Length is always odd number */  len  = 2*i + 1;  /* info = codeNum + 1 - 2^(len/2) */  info = codeNum + 1 - (1<<i);  bibPutBits(bitbuf, info | (1 << (len >> 1)), len);  return len;}/* * vlcuSendFLC: * * Parameters: *      bitbuf                Bitbuffer to be used *      code                  Code to send *      len                   Number of bits to send * * Function: *      Send Fixed LEngth Code. * * Returns: *      Length of the codeword that was sent. * */int vlcuSendFLC(bitbuffer_s *bitbuf, unsigned int codeNum, int len){  return bibPutBits(bitbuf, codeNum, len);}/* * vlcuSendNalUnitStartCodePrefix: * * Parameters: *      bitbuf                Bitbuffer object *      zero_byte             indicate there will be zero byte before the  *                            start_code_prefix_one_3bytes * * Function: *      Write the start code in a byte stream NAL unit * * Returns: *      Number of bits being written */int vlcuSendNalUnitStartCodePrefix(bitbuffer_s *bitbuf, int zeroByte){  int bits = 0;  // write 1 zero byte if requested  if (zeroByte != 0)  {    bibPutByte( bitbuf, 0 );    bits += 8;  }  // write the start_code_prefix_one_3bytes 0x00 0x00 0x01  bibPutByte( bitbuf, 0 );  bibPutByte( bitbuf, 0 );  bibPutByte( bitbuf, 1 );  bits += 24;  return bits;}/* * vlcuSendNalHead: * * Parameters: *      bitbuf                Bitbuffer object *      nal_ref_idc           nal_ref_idc *      nal_type              Nal type * * Function: *      Write the start code in a byte stream NAL unit * * Returns: *      Number of bits being written */int vlcuSendNalHead(bitbuffer_s *bitbuf, int nal_ref_idc, int nal_type){  int nalHeaderByte = 0;  nalHeaderByte |= 0 << 7;              // forbidden bit (1 bit)  nalHeaderByte |= nal_ref_idc << 5;    // nal_ref_idc   (2 bits)  nalHeaderByte |= nal_type;            // nal_ref_idc   (5 bits)  bibPutByte(bitbuf, nalHeaderByte);  return 8;}/* * vlcuSendEndOfSeq * * Parameters: *      bitbuf                Bitbuffer to be used * * Function: *      Send End Of Sequence codeword. * * Returns: *      Number of bits sent. */int vlcuSendEndOfSeq(bitbuffer_s *bitbuf){  return (bibByteAlign(bitbuf));}/* * vlcuGetLuma8x8cbp * * Parameters: *      cbpY                  Coded Block Pattern for 16 4x4 blocks. *                            Order of the 4x4 cbp bits: *                              0  1  4  5 *                              2  3  6  7 *                              8  9 12 13 *                             10 11 14 15 * * Function: *      Create Coded Block Pattern for 8x8 blocks. Each 8x8 block consists of *      four neighboring 4x4 blocks. * * Returns: *      Coded Block Pattern for 8x8 blocks. */int vlcuGetLuma8x8cbp(int cbpY){  int cbp;  cbp  = (cbpY & 0x000F) == 0 ? 0 : (1<<0);  cbp |= (cbpY & 0x00F0) == 0 ? 0 : (1<<1);  cbp |= (cbpY & 0x0F00) == 0 ? 0 : (1<<2);  cbp |= (cbpY & 0xF000) == 0 ? 0 : (1<<3);  return cbp;}/* * vlcuSendCoefLevelVLC0: * * Parameters: *      bitbuf                Bitbuffer object *      coef                  Coefficient * * Function: *      Send CAVLC coefficient level using VLC0 code format * * Returns: *      Number of bits send */int vlcuSendCoefLevelVLC0(bitbuffer_s *bitbuf, int coef){  int len;  int bits;  int absLev;  absLev = abs(coef);  if (absLev <= 7) {    bits = 1;    len = 2*absLev - (coef > 0 ? 1 : 0);  }  else if (absLev <= 15) {    bits = 16 | ((absLev-8)<<1) | (coef < 0 ? 1 : 0);    len = 19;  }  else {    bits = (1<<12) | ((absLev-16)<<1) | (coef < 0 ? 1 : 0);    len = 28;  }  bibPutBits(bitbuf, bits, len);  return len;}/* * vlcuSendCoefLevelVLCN: * * Parameters: *      bitbuf                Bitbuffer object *      tabNum                VLC table number to be used *      coef                  Coefficient * * Function: *      Send CAVLC coefficient level using VLC1-6 code format * * Returns: *      Number of bits sent */int vlcuSendCoefLevelVLCN(bitbuffer_s *bitbuf, int tabNum, int coef){  int len;  int bits;  int absLev;  absLev = abs(coef);  if (absLev <= (15<<(tabNum-1))) {    bits = (1<<tabNum) |           (((absLev-1) & ((1<<(tabNum-1))-1))<<1) |           (coef < 0 ? 1 : 0);    len = ((absLev-1) >> (tabNum-1)) + 1 + tabNum;  }  else {    bits = (1<<12) + ((absLev-(15<<(tabNum-1))-1)<<1) + (coef < 0 ? 1 : 0);    len = 28;  }  bibPutBits(bitbuf, bits, len);  return len;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品一区二区| 欧美一区二区在线观看| 国产麻豆一精品一av一免费| 日韩av在线免费观看不卡| 亚洲国产cao| 亚洲成人午夜电影| 亚洲国产精品一区二区久久恐怖片| 亚洲欧洲日韩在线| 亚洲特级片在线| 亚洲日本乱码在线观看| 一区二区三区电影在线播| 亚洲激情综合网| 亚洲成人av电影| 欧美aⅴ一区二区三区视频| 久久草av在线| 国产成人精品综合在线观看| 不卡的电影网站| 91看片淫黄大片一级在线观看| 色老汉av一区二区三区| 欧美日韩在线播放一区| 日韩欧美国产综合| 久久免费的精品国产v∧| 亚洲国产岛国毛片在线| 亚洲精品久久7777| 美女视频黄a大片欧美| 国产综合久久久久影院| 国产福利一区二区三区视频| proumb性欧美在线观看| 欧美群妇大交群的观看方式| 欧美一区二区三区色| 国产欧美精品一区二区色综合| 国产精品每日更新在线播放网址 | 91精品国产全国免费观看| 日韩欧美一区二区在线视频| 国产午夜精品在线观看| 夜夜精品视频一区二区| 精品在线播放午夜| 91久久久免费一区二区| 日韩精品中文字幕在线一区| 亚洲欧洲无码一区二区三区| 日本欧洲一区二区| 成人性生交大合| 欧美色倩网站大全免费| 久久人人爽爽爽人久久久| 一区二区三区**美女毛片| 看片网站欧美日韩| 欧美色精品在线视频| 国产亚洲一区二区三区| 亚洲第一电影网| www.爱久久.com| 久久精品在线观看| 亚洲成人你懂的| 91小视频免费看| 国产亚洲一区二区三区在线观看| 亚洲va中文字幕| 99久久综合精品| 日韩精品中文字幕在线不卡尤物| 亚洲欧洲精品成人久久奇米网| 久久99日本精品| 在线播放视频一区| 一区二区三区日韩在线观看| 国产精品资源在线观看| 日韩三级视频在线观看| 午夜精品123| 在线精品视频小说1| 久久亚洲影视婷婷| 蜜桃视频一区二区| 欧美一区二区三区影视| 亚洲国产综合视频在线观看| 91在线观看美女| 国产精品国产三级国产| 韩国v欧美v亚洲v日本v| 欧美mv和日韩mv国产网站| 日欧美一区二区| 欧美日韩激情一区二区三区| 亚洲图片欧美综合| 欧美精品一二三四| 亚欧色一区w666天堂| 9191久久久久久久久久久| 午夜精品久久久久久不卡8050| 在线这里只有精品| 亚洲国产aⅴ成人精品无吗| 欧美三级在线播放| 免费三级欧美电影| 26uuu亚洲综合色| 国产精品一级黄| 中文字幕精品—区二区四季| www.亚洲精品| 亚洲精品中文在线观看| 精品视频在线视频| 青青草97国产精品免费观看| 日韩一本二本av| 国产很黄免费观看久久| 国产精品免费久久| 在线免费观看日韩欧美| 奇米影视一区二区三区小说| 精品国产免费视频| 成人免费看的视频| 亚洲综合网站在线观看| 欧美日韩一区二区在线观看 | 蜜臀久久99精品久久久画质超高清| 欧美精品电影在线播放| 九九热在线视频观看这里只有精品| 欧美精品一区二区在线观看| 成人白浆超碰人人人人| 亚洲成人一区二区在线观看| 日韩欧美综合在线| 国产成a人亚洲精| 一区二区三区日韩在线观看| 欧美一卡二卡在线| 成人av在线资源网| 日韩vs国产vs欧美| 国产精品女同一区二区三区| 欧美色区777第一页| 国产传媒欧美日韩成人| 一区二区久久久| 国产午夜亚洲精品羞羞网站| 色屁屁一区二区| 九九视频精品免费| 亚洲不卡一区二区三区| 国产日韩亚洲欧美综合| 69成人精品免费视频| 成人禁用看黄a在线| 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品黑人久久久| 欧美欧美欧美欧美| 成人av在线资源网站| 国产精品自拍一区| 亚洲一卡二卡三卡四卡| 国产欧美一区二区三区沐欲| 91精品国产91综合久久蜜臀| 91视频免费播放| 成人午夜又粗又硬又大| 精品一区二区三区香蕉蜜桃| 日韩精品免费专区| 一区2区3区在线看| 亚洲精品国产a久久久久久| 国产亚洲成av人在线观看导航| 制服丝袜中文字幕亚洲| 欧美性大战久久久久久久蜜臀| 国产成人精品免费看| 狠狠v欧美v日韩v亚洲ⅴ| 日韩精品成人一区二区三区| 一区二区三区四区中文字幕| 国产精品萝li| 国产精品久久久久一区二区三区共| 日韩你懂的在线观看| 欧美精品精品一区| 正在播放亚洲一区| 91精品国产色综合久久ai换脸| 91国偷自产一区二区开放时间 | 91成人免费网站| 91蜜桃传媒精品久久久一区二区 | 国产欧美日韩不卡免费| 精品国产伦理网| 精品国产一区二区国模嫣然| 日韩三级视频中文字幕| 日韩一区二区三区免费观看| 91精品国产91久久久久久一区二区| 欧美三级欧美一级| 欧美色区777第一页| 91精品婷婷国产综合久久| 在线91免费看| 日韩精品一区二区三区视频 | 国内一区二区视频| 国产精品99精品久久免费| 国产乱一区二区| 成人免费视频免费观看| av亚洲精华国产精华精华| 97se亚洲国产综合自在线| 在线免费不卡视频| 日韩精品在线一区二区| 欧美精品一区二区三区在线| 国产欧美一区二区三区沐欲| 亚洲色欲色欲www| 无吗不卡中文字幕| 免费成人在线影院| 国产一区二区按摩在线观看| 不卡一区中文字幕| 91福利在线看| 欧美mv日韩mv国产网站app| 国产日韩精品视频一区| 亚洲午夜羞羞片| 国产精品乡下勾搭老头1| 99久久久久久99| 91精品国产综合久久久久 | 国产成人免费视频精品含羞草妖精| av一本久道久久综合久久鬼色| 欧美日韩中文精品| 国产清纯在线一区二区www| 亚洲色欲色欲www在线观看| 美美哒免费高清在线观看视频一区二区 | 国产成人精品一区二区三区四区 | 蜜臀av性久久久久av蜜臀妖精| 国产精品主播直播| 91成人国产精品| 国产偷国产偷精品高清尤物| 亚洲精品成人精品456| 国产精品一区二区黑丝| 欧美色男人天堂|