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

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

?? inftrees.c

?? linux下MPEG編解碼庫文件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2002 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h  */#include "zutil.h"#include "inftrees.h"#if !defined(BUILDFIXED) && !defined(STDC)#  define BUILDFIXED   /* non ANSI compilers may not accept inffixed.h */#endifconst char inflate_copyright[] =   " inflate 1.1.4 Copyright 1995-2002 Mark Adler ";/*  If you use the zlib library in a product, an acknowledgment is welcome  in the documentation of your product. If for some reason you cannot  include such an acknowledgment, I would appreciate that you keep this  copyright string in the executable of your product. */struct internal_state  {int dummy;}; /* for buggy compilers *//* simplify the use of the inflate_huft type with some defines */#define exop word.what.Exop#define bits word.what.Bitslocal int huft_build OF((    uIntf *,            /* code lengths in bits */    uInt,               /* number of codes */    uInt,               /* number of "simple" codes */    const uIntf *,      /* list of base values for non-simple codes */    const uIntf *,      /* list of extra bits for non-simple codes */    inflate_huft * FAR*,/* result: starting table */    uIntf *,            /* maximum lookup bits (returns actual) */    inflate_huft *,     /* space for trees */    uInt *,             /* hufts used in space */    uIntf * ));         /* space for values *//* Tables for deflate from PKZIP's appnote.txt. */local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};        /* see note #13 above about 258 */local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */        0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,        3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,        8193, 12289, 16385, 24577};local const uInt cpdext[30] = { /* Extra bits for distance codes */        0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,        7, 7, 8, 8, 9, 9, 10, 10, 11, 11,        12, 12, 13, 13};/*   Huffman code decoding is performed using a multi-level table lookup.   The fastest way to decode is to simply build a lookup table whose   size is determined by the longest code.  However, the time it takes   to build this table can also be a factor if the data being decoded   is not very long.  The most common codes are necessarily the   shortest codes, so those codes dominate the decoding time, and hence   the speed.  The idea is you can have a shorter table that decodes the   shorter, more probable codes, and then point to subsidiary tables for   the longer codes.  The time it costs to decode the longer codes is   then traded against the time it takes to make longer tables.   This results of this trade are in the variables lbits and dbits   below.  lbits is the number of bits the first level table for literal/   length codes can decode in one step, and dbits is the same thing for   the distance codes.  Subsequent tables are also less than or equal to   those sizes.  These values may be adjusted either when all of the   codes are shorter than that, in which case the longest code length in   bits is used, or when the shortest code is *longer* than the requested   table size, in which case the length of the shortest code in bits is   used.   There are two different values for the two tables, since they code a   different number of possibilities each.  The literal/length table   codes 286 possible values, or in a flat code, a little over eight   bits.  The distance table codes 30 possible values, or a little less   than five bits, flat.  The optimum values for speed end up being   about one bit more than those, so lbits is 8+1 and dbits is 5+1.   The optimum values may differ though from machine to machine, and   possibly even between compilers.  Your mileage may vary. *//* If BMAX needs to be larger than 16, then h and x[] should be uLong. */#define BMAX 15         /* maximum bit length of any code */local int huft_build(b, n, s, d, e, t, m, hp, hn, v)uIntf *b;               /* code lengths in bits (all assumed <= BMAX) */uInt n;                 /* number of codes (assumed <= 288) */uInt s;                 /* number of simple-valued codes (0..s-1) */const uIntf *d;         /* list of base values for non-simple codes */const uIntf *e;         /* list of extra bits for non-simple codes */inflate_huft * FAR *t;  /* result: starting table */uIntf *m;               /* maximum lookup bits, returns actual */inflate_huft *hp;       /* space for trees */uInt *hn;               /* hufts used in space */uIntf *v;               /* working area: values in order of bit length *//* Given a list of code lengths and a maximum table size, make a set of   tables to decode that set of codes.  Return Z_OK on success, Z_BUF_ERROR   if the given code set is incomplete (the tables are still built in this   case), or Z_DATA_ERROR if the input is invalid. */{  uInt a;                       /* counter for codes of length k */  uInt c[BMAX+1];               /* bit length count table */  uInt f;                       /* i repeats in table every f entries */  int g;                        /* maximum code length */  int h;                        /* table level */  register uInt i;              /* counter, current code */  register uInt j;              /* counter */  register int k;               /* number of bits in current code */  int l;                        /* bits per table (returned in m) */  uInt mask;                    /* (1 << w) - 1, to avoid cc -O bug on HP */  register uIntf *p;            /* pointer into c[], b[], or v[] */  inflate_huft *q;              /* points to current table */  struct inflate_huft_s r;      /* table entry for structure assignment */  inflate_huft *u[BMAX];        /* table stack */  register int w;               /* bits before this table == (l * h) */  uInt x[BMAX+1];               /* bit offsets, then code stack */  uIntf *xp;                    /* pointer into x */  int y;                        /* number of dummy codes added */  uInt z;                       /* number of entries in current table */  /* Generate counts for each bit length */  p = c;#define C0 *p++ = 0;#define C2 C0 C0 C0 C0#define C4 C2 C2 C2 C2  C4                            /* clear c[]--assume BMAX+1 is 16 */  p = b;  i = n;  do {    c[*p++]++;                  /* assume all entries <= BMAX */  } while (--i);  if (c[0] == n)                /* null input--all zero length codes */  {    *t = (inflate_huft *)Z_NULL;    *m = 0;    return Z_OK;  }  /* Find minimum and maximum length, bound *m by those */  l = *m;  for (j = 1; j <= BMAX; j++)    if (c[j])      break;  k = j;                        /* minimum code length */  if ((uInt)l < j)    l = j;  for (i = BMAX; i; i--)    if (c[i])      break;  g = i;                        /* maximum code length */  if ((uInt)l > i)    l = i;  *m = l;  /* Adjust last length count to fill out codes, if needed */  for (y = 1 << j; j < i; j++, y <<= 1)    if ((y -= c[j]) < 0)      return Z_DATA_ERROR;  if ((y -= c[i]) < 0)    return Z_DATA_ERROR;  c[i] += y;  /* Generate starting offsets into the value table for each length */  x[1] = j = 0;  p = c + 1;  xp = x + 2;  while (--i) {                 /* note that i == g from above */    *xp++ = (j += *p++);  }  /* Make a table of values in order of bit lengths */  p = b;  i = 0;  do {    if ((j = *p++) != 0)      v[x[j]++] = i;  } while (++i < n);  n = x[g];                     /* set n to length of v */  /* Generate the Huffman codes and for each, make the table entries */  x[0] = i = 0;                 /* first Huffman code is zero */  p = v;                        /* grab values in bit order */  h = -1;                       /* no tables yet--level -1 */  w = -l;                       /* bits decoded == (l * h) */  u[0] = (inflate_huft *)Z_NULL;        /* just to keep compilers happy */  q = (inflate_huft *)Z_NULL;   /* ditto */  z = 0;                        /* ditto */  /* go through the bit lengths (k already is bits in shortest code) */  for (; k <= g; k++)  {    a = c[k];    while (a--)    {      /* here i is the Huffman code of length k bits for value *p */      /* make tables up to required level */      while (k > w + l)      {        h++;        w += l;                 /* previous table always l bits */        /* compute minimum size table less than or equal to l bits */        z = g - w;        z = z > (uInt)l ? l : z;        /* table size upper limit */        if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */        {                       /* too few codes for k-w bit table */          f -= a + 1;           /* deduct codes from patterns left */          xp = c + k;          if (j < z)            while (++j < z)     /* try smaller tables up to z bits */            {              if ((f <<= 1) <= *++xp)                break;          /* enough codes to use up j bits */              f -= *xp;         /* else deduct codes from patterns */            }        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品综合| 日韩激情一区二区| 国产精品二区一区二区aⅴ污介绍| 久久久精品影视| 成人欧美一区二区三区在线播放| 亚洲人成小说网站色在线| 午夜国产不卡在线观看视频| 青青草国产精品97视觉盛宴| 国产成人在线视频播放| 色播五月激情综合网| 日韩一区二区不卡| 国产精品色一区二区三区| 亚洲a一区二区| 国产一区二区三区最好精华液| 99精品国产一区二区三区不卡| 欧美日韩黄视频| 中文字幕成人av| 美女在线视频一区| 色94色欧美sute亚洲线路一ni| 精品国产一区二区三区四区四| 国产精品乱码一区二区三区软件| 亚洲一区二区三区自拍| 国产激情偷乱视频一区二区三区| 欧美性生活影院| 中文字幕免费不卡| 久久99久久久久久久久久久| 一本色道**综合亚洲精品蜜桃冫| 久久九九久精品国产免费直播| 一二三四区精品视频| 国产精品18久久久久久vr| 一本到不卡免费一区二区| 久久一日本道色综合| 一区二区三区国产豹纹内裤在线| 国产在线看一区| 91精品免费在线观看| 玉足女爽爽91| 91啪在线观看| 中文字幕制服丝袜一区二区三区 | 九九热在线视频观看这里只有精品| 国内精品久久久久影院薰衣草| 在线视频亚洲一区| 久久久国际精品| 国产成人在线视频网址| 日韩精品在线看片z| 午夜亚洲国产au精品一区二区| 成人av在线电影| 久久精品欧美日韩精品| 日韩精品亚洲一区二区三区免费| 色婷婷综合久久久| 国产情人综合久久777777| 肉肉av福利一精品导航| 色婷婷av一区| 亚洲三级理论片| 丁香网亚洲国际| 精品区一区二区| 日本女人一区二区三区| 欧美日韩精品一区二区三区蜜桃| 亚洲免费资源在线播放| 色呦呦国产精品| 午夜成人在线视频| 91精品国产手机| 麻豆高清免费国产一区| 日韩亚洲欧美高清| 国产永久精品大片wwwapp| 精品国产乱码久久久久久久久| 久久se这里有精品| 欧美国产国产综合| 91亚洲精品久久久蜜桃| 亚洲大型综合色站| 日韩欧美一级二级三级| 国产露脸91国语对白| 国产欧美精品一区二区色综合| 99精品国产视频| 视频一区在线播放| 日韩免费电影网站| 成人妖精视频yjsp地址| 亚洲男人电影天堂| 欧美日高清视频| 国产一二三精品| 亚洲欧美激情一区二区| 欧美老肥妇做.爰bbww视频| 六月丁香婷婷色狠狠久久| 国产日韩欧美电影| 欧美日韩一区中文字幕| 看片网站欧美日韩| 中文字幕一区二区在线观看| 色猫猫国产区一区二在线视频| 亚洲高清免费在线| 国产欧美精品一区二区色综合 | 精品一区免费av| 最新欧美精品一区二区三区| 欧美精品777| 成人app网站| 老司机午夜精品99久久| 中文字幕一区视频| 精品少妇一区二区三区日产乱码| 成人免费毛片片v| 日本最新不卡在线| 亚洲欧美在线视频| 欧美大片日本大片免费观看| 97久久超碰国产精品电影| 奇米影视一区二区三区| 中文字幕在线不卡视频| 欧美大黄免费观看| 色哟哟日韩精品| 国产99精品国产| 麻豆国产欧美日韩综合精品二区| 国产亚洲一区字幕| 不卡av免费在线观看| 狂野欧美性猛交blacked| 亚洲综合免费观看高清完整版| wwwwww.欧美系列| 欧美一区二区三区人| 91麻豆精品一区二区三区| 国产精品资源在线| 人人精品人人爱| 亚洲国产成人av| 亚洲另类中文字| 国产精品国产三级国产普通话蜜臀| 精品免费一区二区三区| 8v天堂国产在线一区二区| 色婷婷精品大在线视频 | 午夜影院在线观看欧美| 综合电影一区二区三区| 日本一区二区成人| 久久综合网色—综合色88| 欧美图片一区二区三区| 91免费观看视频在线| 成人精品高清在线| 国产盗摄女厕一区二区三区| 日本vs亚洲vs韩国一区三区二区| 亚洲另类一区二区| 国产精品乱人伦一区二区| 久久久久久亚洲综合| 日韩欧美一级二级| 日韩精品专区在线影院重磅| 欧美一区二区在线看| 日韩亚洲欧美综合| 欧美成人r级一区二区三区| 日韩一卡二卡三卡国产欧美| 在线播放国产精品二区一二区四区| 在线观看欧美日本| 欧美伊人久久久久久久久影院 | 韩国成人在线视频| 国产精品12区| av日韩在线网站| 91网站最新地址| 欧美视频中文一区二区三区在线观看 | 精品一二三四在线| 激情综合网激情| 国产精品影音先锋| 99r国产精品| 欧美视频完全免费看| 日韩欧美中文字幕公布| 精品国免费一区二区三区| 久久亚洲精品小早川怜子| 国产精品每日更新在线播放网址| 日韩美女视频一区二区| 亚洲第一二三四区| 国内精品免费在线观看| 成人avav在线| 欧美一区二区在线免费播放| 国产午夜亚洲精品羞羞网站| 一色桃子久久精品亚洲| 亚洲综合精品久久| 美女视频网站黄色亚洲| 国产电影一区在线| 欧美性猛交xxxxxx富婆| 欧美电影精品一区二区| 亚洲视频综合在线| 日韩电影一二三区| 菠萝蜜视频在线观看一区| 欧美日韩国产系列| 国产日本欧洲亚洲| 视频一区欧美精品| 成人av在线资源网站| 欧美色图天堂网| 亚洲国产成人私人影院tom| 性感美女久久精品| 成人性生交大合| 欧美一区二区三区系列电影| 亚洲国产高清aⅴ视频| 调教+趴+乳夹+国产+精品| 国产91精品精华液一区二区三区| 在线观看一区二区精品视频| 日韩免费性生活视频播放| 亚洲色图视频网| 黑人巨大精品欧美一区| 91色九色蝌蚪| 国产色综合久久| 毛片av一区二区三区| 色婷婷精品久久二区二区蜜臂av| 久久先锋影音av| 亚洲图片欧美综合| 国产乱子轮精品视频| 欧美一区二区三区在线观看 | 国产成人一区在线| 91精品国产综合久久香蕉麻豆| 一二三区精品视频| 欧美日韩一区在线观看|