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

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

?? lzw.c.svn-base

?? ffmpeg最新源碼
?? SVN-BASE
字號:
/* * LZW decoder * Copyright (c) 2003 Fabrice Bellard. * Copyright (c) 2006 Konstantin Shishkov. * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *//** * @file lzw.c * @brief LZW decoding routines * @author Fabrice Bellard * Modified for use in TIFF by Konstantin Shishkov */#include "avcodec.h"#include "lzw.h"#define LZW_MAXBITS                 12#define LZW_SIZTABLE                (1<<LZW_MAXBITS)static const uint16_t mask[17] ={    0x0000, 0x0001, 0x0003, 0x0007,    0x000F, 0x001F, 0x003F, 0x007F,    0x00FF, 0x01FF, 0x03FF, 0x07FF,    0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF};struct LZWState {    const uint8_t *pbuf, *ebuf;    int bbits;    unsigned int bbuf;    int mode;                   ///< Decoder mode    int cursize;                ///< The current code size    int curmask;    int codesize;    int clear_code;    int end_code;    int newcodes;               ///< First available code    int top_slot;               ///< Highest code for current size    int extra_slot;    int slot;                   ///< Last read code    int fc, oc;    uint8_t *sp;    uint8_t stack[LZW_SIZTABLE];    uint8_t suffix[LZW_SIZTABLE];    uint16_t prefix[LZW_SIZTABLE];    int bs;                     ///< current buffer size for GIF};/* get one code from stream */static int lzw_get_code(struct LZWState * s){    int c;    if(s->mode == FF_LZW_GIF) {        while (s->bbits < s->cursize) {            if (!s->bs) {                s->bs = *s->pbuf++;            }            s->bbuf |= (*s->pbuf++) << s->bbits;            s->bbits += 8;            s->bs--;        }        c = s->bbuf;        s->bbuf >>= s->cursize;    } else { // TIFF        while (s->bbits < s->cursize) {            s->bbuf = (s->bbuf << 8) | (*s->pbuf++);            s->bbits += 8;        }        c = s->bbuf >> (s->bbits - s->cursize);    }    s->bbits -= s->cursize;    return c & s->curmask;}const uint8_t* ff_lzw_cur_ptr(LZWState *p){    return ((struct LZWState*)p)->pbuf;}void ff_lzw_decode_tail(LZWState *p){    struct LZWState *s = (struct LZWState *)p;    if(s->mode == FF_LZW_GIF) {        while(s->pbuf < s->ebuf && s->bs>0){            s->pbuf += s->bs;            s->bs = *s->pbuf++;        }    }else        s->pbuf= s->ebuf;}av_cold void ff_lzw_decode_open(LZWState **p){    *p = av_mallocz(sizeof(struct LZWState));}av_cold void ff_lzw_decode_close(LZWState **p){    av_freep(p);}/** * Initialize LZW decoder * @param s LZW context * @param csize initial code size in bits * @param buf input data * @param buf_size input data size * @param mode decoder working mode - either GIF or TIFF */int ff_lzw_decode_init(LZWState *p, int csize, const uint8_t *buf, int buf_size, int mode){    struct LZWState *s = (struct LZWState *)p;    if(csize < 1 || csize > LZW_MAXBITS)        return -1;    /* read buffer */    s->pbuf = buf;    s->ebuf = s->pbuf + buf_size;    s->bbuf = 0;    s->bbits = 0;    s->bs = 0;    /* decoder */    s->codesize = csize;    s->cursize = s->codesize + 1;    s->curmask = mask[s->cursize];    s->top_slot = 1 << s->cursize;    s->clear_code = 1 << s->codesize;    s->end_code = s->clear_code + 1;    s->slot = s->newcodes = s->clear_code + 2;    s->oc = s->fc = -1;    s->sp = s->stack;    s->mode = mode;    s->extra_slot = s->mode == FF_LZW_TIFF;    return 0;}/** * Decode given number of bytes * NOTE: the algorithm here is inspired from the LZW GIF decoder *  written by Steven A. Bennett in 1987. * * @param s LZW context * @param buf output buffer * @param len number of bytes to decode * @return number of bytes decoded */int ff_lzw_decode(LZWState *p, uint8_t *buf, int len){    int l, c, code, oc, fc;    uint8_t *sp;    struct LZWState *s = (struct LZWState *)p;    if (s->end_code < 0)        return 0;    l = len;    sp = s->sp;    oc = s->oc;    fc = s->fc;    for (;;) {        while (sp > s->stack) {            *buf++ = *(--sp);            if ((--l) == 0)                goto the_end;        }        c = lzw_get_code(s);        if (c == s->end_code) {            break;        } else if (c == s->clear_code) {            s->cursize = s->codesize + 1;            s->curmask = mask[s->cursize];            s->slot = s->newcodes;            s->top_slot = 1 << s->cursize;            fc= oc= -1;        } else {            code = c;            if (code == s->slot && fc>=0) {                *sp++ = fc;                code = oc;            }else if(code >= s->slot)                break;            while (code >= s->newcodes) {                *sp++ = s->suffix[code];                code = s->prefix[code];            }            *sp++ = code;            if (s->slot < s->top_slot && oc>=0) {                s->suffix[s->slot] = code;                s->prefix[s->slot++] = oc;            }            fc = code;            oc = c;            if (s->slot >= s->top_slot - s->extra_slot) {                if (s->cursize < LZW_MAXBITS) {                    s->top_slot <<= 1;                    s->curmask = mask[++s->cursize];                }            }        }    }    s->end_code = -1;  the_end:    s->sp = sp;    s->oc = oc;    s->fc = fc;    return len - l;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4438x成人网最大色成网站| 一区二区三区产品免费精品久久75| 在线一区二区视频| 成人国产精品免费| 成人性视频网站| 国产成人免费9x9x人网站视频| 国产一区二区视频在线播放| 久草在线在线精品观看| 经典三级在线一区| 极品美女销魂一区二区三区免费| 精品在线播放免费| 国产最新精品精品你懂的| 国产一区二区三区四区五区入口| 国精产品一区一区三区mba桃花| 国产一区91精品张津瑜| 国产经典欧美精品| 成人av一区二区三区| 91蝌蚪porny| 国产午夜精品久久久久久久 | 日韩欧美国产综合| 欧美一区二区三区在线电影| 欧美成人vr18sexvr| 国产视频一区在线播放| 亚洲精品你懂的| 青青草成人在线观看| 国产在线麻豆精品观看| 97精品国产露脸对白| 9191成人精品久久| 久久久久久一二三区| 亚洲精品视频一区| 久久99国产精品成人| 91丨国产丨九色丨pron| 7777精品久久久大香线蕉| 久久精品夜夜夜夜久久| 樱花草国产18久久久久| 国产在线播放一区二区三区| 色综合天天做天天爱| 精品久久久久久久久久久久久久久| 中国av一区二区三区| 视频一区视频二区中文字幕| 成人一区二区三区在线观看| 91精品国产一区二区三区| 国产精品久久久久影院老司| 欧美96一区二区免费视频| 成人精品在线视频观看| 欧美一级理论片| 亚洲日本韩国一区| 国产美女视频91| 欧美日韩精品一二三区| 亚洲视频综合在线| 国产在线视频一区二区三区| 欧美日韩一区三区四区| 国产精品美女久久久久久久久久久 | 久久精品男人天堂av| 夜夜嗨av一区二区三区四季av| 欧美日韩国产精品成人| 国产视频亚洲色图| 日本欧美肥老太交大片| 色悠久久久久综合欧美99| 国产亚洲欧美一级| 久久国产精品区| 69精品人人人人| 亚洲伊人伊色伊影伊综合网| www.亚洲在线| 国产亚洲一本大道中文在线| 久久国产综合精品| 在线播放日韩导航| 天天综合色天天综合| 欧美综合一区二区| 亚洲男同性恋视频| 99久久免费精品高清特色大片| 久久久九九九九| 国产一区二区h| 亚洲精品在线免费观看视频| 美日韩黄色大片| 91精品国产乱码久久蜜臀| 亚洲高清视频中文字幕| 欧美特级限制片免费在线观看| 亚洲另类色综合网站| 色激情天天射综合网| 尤物av一区二区| 欧美日韩三级一区| 首页亚洲欧美制服丝腿| 欧美一二区视频| 精品亚洲成a人| 日本一区二区动态图| www.在线成人| 亚洲国产精品久久久久婷婷884| 欧美性大战xxxxx久久久| 一区二区三区不卡视频在线观看 | av激情亚洲男人天堂| 国产精品高潮呻吟久久| 不卡视频在线观看| 一区二区三区色| 91精品国产综合久久婷婷香蕉| 日本不卡视频在线| 久久亚洲精华国产精华液| 国产激情一区二区三区| 亚洲色大成网站www久久九九| 一本到三区不卡视频| 亚洲123区在线观看| 日韩精品一区国产麻豆| 盗摄精品av一区二区三区| 亚洲免费色视频| 欧美一级电影网站| 成人av网站大全| 日本午夜一本久久久综合| 精品国产乱码久久久久久久久| 高潮精品一区videoshd| 亚洲一区二区精品3399| 日韩欧美中文字幕公布| 成人自拍视频在线| 日韩中文字幕亚洲一区二区va在线| 精品国产乱码久久久久久夜甘婷婷| 成人深夜福利app| 亚洲成人激情综合网| 国产日韩欧美一区二区三区乱码| 一本色道久久加勒比精品| 精品亚洲aⅴ乱码一区二区三区| 亚洲女同ⅹxx女同tv| 精品捆绑美女sm三区| 在线亚洲人成电影网站色www| 欧美日韩亚洲不卡| 顶级嫩模精品视频在线看| 天堂av在线一区| 亚洲欧美日韩国产另类专区| 精品福利一二区| 8v天堂国产在线一区二区| 成人午夜免费av| 国内精品第一页| 舔着乳尖日韩一区| 一区二区三区中文免费| 2022国产精品视频| 欧美一区二区观看视频| 日本伦理一区二区| 成人ar影院免费观看视频| 激情欧美日韩一区二区| 日本va欧美va欧美va精品| 亚洲精品欧美激情| 国产精品伦一区二区三级视频| 欧美一级搡bbbb搡bbbb| 欧美日韩精品福利| 91极品视觉盛宴| 成人国产精品免费观看视频| 国产成人精品网址| 国产一区二三区| 精品一区二区三区欧美| 蜜桃视频免费观看一区| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美另类久久久精品| 欧美极品aⅴ影院| 精品国产伦一区二区三区观看方式| 欧美精品18+| 日韩午夜中文字幕| 91精品国产福利在线观看| 欧美一区永久视频免费观看| 4438亚洲最大| 精品国精品自拍自在线| 26uuu色噜噜精品一区二区| 精品国产第一区二区三区观看体验| 日韩精品一区二区三区swag| 日韩片之四级片| 久久久亚洲国产美女国产盗摄 | 麻豆成人av在线| 日韩国产精品久久久久久亚洲| 午夜一区二区三区视频| 天堂影院一区二区| 麻豆成人免费电影| 久久国产综合精品| 国产成人午夜99999| 91在线小视频| 欧美日韩国产美| 精品区一区二区| 天堂va蜜桃一区二区三区漫画版| 日本不卡一区二区三区高清视频| 麻豆国产欧美日韩综合精品二区| 国产成人福利片| 日本高清成人免费播放| 91精品国产综合久久精品图片| 精品欧美一区二区久久| 中文乱码免费一区二区| 亚洲一区二区在线播放相泽| 日本不卡123| 91在线精品秘密一区二区| 欧美日韩色综合| 国产欧美日韩不卡免费| 亚洲综合丁香婷婷六月香| 久久国产精品露脸对白| 99精品久久99久久久久| 6080yy午夜一二三区久久| 国产午夜精品久久久久久免费视 | 久久97超碰国产精品超碰| 972aa.com艺术欧美| 91精品在线免费| 国产精品乱子久久久久| 免费看欧美女人艹b| 99久久精品国产一区| 日韩一本二本av| 亚洲人成网站在线| 精品亚洲成a人在线观看|