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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? gifdec.c

?? arm平臺(tái)下的H264編碼和解碼源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* * GIF decoder * Copyright (c) 2003 Fabrice Bellard. * * This library 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 of the License, or (at your option) any later version. * * This library 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 this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "avformat.h"int gif_write(ByteIOContext *pb, AVImageInfo *info);//#define DEBUG#define MAXBITS		12#define	SIZTABLE	(1<<MAXBITS)#define GCE_DISPOSAL_NONE       0#define GCE_DISPOSAL_INPLACE    1#define GCE_DISPOSAL_BACKGROUND 2#define GCE_DISPOSAL_RESTORE    3typedef struct GifState {    int screen_width;    int screen_height;    int bits_per_pixel;    int background_color_index;    int transparent_color_index;    int color_resolution;    uint8_t *image_buf;    int image_linesize;    uint32_t *image_palette;    int pix_fmt;    /* after the frame is displayed, the disposal method is used */    int gce_disposal;    /* delay during which the frame is shown */    int gce_delay;        /* LZW compatible decoder */    ByteIOContext *f;    int eob_reached;    uint8_t *pbuf, *ebuf;    int bbits;    unsigned int bbuf;    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 slot;			/* Last read code */    int fc, oc;    uint8_t *sp;    uint8_t stack[SIZTABLE];    uint8_t suffix[SIZTABLE];    uint16_t prefix[SIZTABLE];    /* aux buffers */    uint8_t global_palette[256 * 3];    uint8_t local_palette[256 * 3];    uint8_t buf[256];} GifState;static const uint8_t gif87a_sig[6] = "GIF87a";static const uint8_t gif89a_sig[6] = "GIF89a";static const uint16_t mask[17] ={    0x0000, 0x0001, 0x0003, 0x0007,    0x000F, 0x001F, 0x003F, 0x007F,    0x00FF, 0x01FF, 0x03FF, 0x07FF,    0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF};/* Probe gif video format or gif image format. The current heuristic   supposes the gif87a is always a single image. For gif89a, we   consider it as a video only if a GCE extension is present in the   first kilobyte. */static int gif_video_probe(AVProbeData * pd){    const uint8_t *p, *p_end;    int bits_per_pixel, has_global_palette, ext_code, ext_len;    int gce_flags, gce_disposal;    if (pd->buf_size < 24 ||	memcmp(pd->buf, gif89a_sig, 6) != 0)        return 0;    p_end = pd->buf + pd->buf_size;    p = pd->buf + 6;    bits_per_pixel = (p[4] & 0x07) + 1;    has_global_palette = (p[4] & 0x80);    p += 7;    if (has_global_palette)        p += (1 << bits_per_pixel) * 3;    for(;;) {        if (p >= p_end)            return 0;        if (*p != '!')            break;        p++;        if (p >= p_end)            return 0;        ext_code = *p++;        if (p >= p_end)            return 0;        ext_len = *p++;        if (ext_code == 0xf9) {            if (p >= p_end)                return 0;            /* if GCE extension found with gce_disposal != 0: it is               likely to be an animation */            gce_flags = *p++;            gce_disposal = (gce_flags >> 2) & 0x7;            if (gce_disposal != 0)                return AVPROBE_SCORE_MAX;            else                return 0;        }        for(;;) {            if (ext_len == 0)                break;            p += ext_len;            if (p >= p_end)                return 0;            ext_len = *p++;        }    }    return 0;}static int gif_image_probe(AVProbeData * pd){    if (pd->buf_size >= 24 &&	(memcmp(pd->buf, gif87a_sig, 6) == 0 ||	 memcmp(pd->buf, gif89a_sig, 6) == 0))	return AVPROBE_SCORE_MAX - 1;    else	return 0;}static void GLZWDecodeInit(GifState * s, int csize){    /* read buffer */    s->eob_reached = 0;    s->pbuf = s->buf;    s->ebuf = s->buf;    s->bbuf = 0;    s->bbits = 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 = 0;    s->sp = s->stack;}/* XXX: optimize */static inline int GetCode(GifState * s){    int c, sizbuf;    uint8_t *ptr;    while (s->bbits < s->cursize) {        ptr = s->pbuf;        if (ptr >= s->ebuf) {            if (!s->eob_reached) {                sizbuf = get_byte(s->f);                s->ebuf = s->buf + sizbuf;                s->pbuf = s->buf;                if (sizbuf > 0) {                    get_buffer(s->f, s->buf, sizbuf);                } else {                    s->eob_reached = 1;                }            }            ptr = s->pbuf;        }        s->bbuf |= ptr[0] << s->bbits;        ptr++;        s->pbuf = ptr;	s->bbits += 8;    }    c = s->bbuf & s->curmask;    s->bbuf >>= s->cursize;    s->bbits -= s->cursize;    return c;}/* NOTE: the algorithm here is inspired from the LZW GIF decoder   written by Steven A. Bennett in 1987. *//* return the number of byte decoded */static int GLZWDecode(GifState * s, uint8_t * buf, int len){    int l, c, code, oc, fc;    uint8_t *sp;    if (s->end_code < 0)        return 0;    l = len;    sp = s->sp;    oc = s->oc;    fc = s->fc;    while (sp > s->stack) {	*buf++ = *(--sp);	if ((--l) == 0)	    goto the_end;    }    for (;;) {	c = GetCode(s);	if (c == s->end_code) {	    s->end_code = -1;	    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;	    while ((c = GetCode(s)) == s->clear_code);	    if (c == s->end_code) {		s->end_code = -1;		break;	    }	    /* test error */	    if (c >= s->slot)		c = 0;	    fc = oc = c;	    *buf++ = c;	    if ((--l) == 0)		break;	} else {	    code = c;	    if (code >= s->slot) {		*sp++ = fc;		code = oc;	    }	    while (code >= s->newcodes) {		*sp++ = s->suffix[code];		code = s->prefix[code];	    }	    *sp++ = code;	    if (s->slot < s->top_slot) {		s->suffix[s->slot] = fc = code;		s->prefix[s->slot++] = oc;		oc = c;	    }	    if (s->slot >= s->top_slot) {		if (s->cursize < MAXBITS) {		    s->top_slot <<= 1;		    s->curmask = mask[++s->cursize];		}	    }	    while (sp > s->stack) {		*buf++ = *(--sp);		if ((--l) == 0)                    goto the_end;	    }	}    }  the_end:    s->sp = sp;    s->oc = oc;    s->fc = fc;    return len - l;}static int gif_read_image(GifState *s){    ByteIOContext *f = s->f;    int left, top, width, height, bits_per_pixel, code_size, flags;    int is_interleaved, has_local_palette, y, x, pass, y1, linesize, n, i;    uint8_t *ptr, *line, *d, *spal, *palette, *sptr, *ptr1;    left = get_le16(f);    top = get_le16(f);    width = get_le16(f);    height = get_le16(f);    flags = get_byte(f);    is_interleaved = flags & 0x40;    has_local_palette = flags & 0x80;    bits_per_pixel = (flags & 0x07) + 1;#ifdef DEBUG    printf("gif: image x=%d y=%d w=%d h=%d\n", left, top, width, height);#endif    if (has_local_palette) {	get_buffer(f, s->local_palette, 3 * (1 << bits_per_pixel));        palette = s->local_palette;    } else {        palette = s->global_palette;        bits_per_pixel = s->bits_per_pixel;    }        /* verify that all the image is inside the screen dimensions */    if (left + width > s->screen_width ||        top + height > s->screen_height)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日一线二线三线suv| 91福利视频网站| 欧美浪妇xxxx高跟鞋交| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲综合成人在线视频| 国产91富婆露脸刺激对白| 91.麻豆视频| 亚洲人成小说网站色在线| 狠狠色狠狠色综合| 91精品国模一区二区三区| 亚洲三级在线免费观看| 成人一级黄色片| 精品国产第一区二区三区观看体验| 亚洲国产另类av| 99re在线精品| 国产精品视频一区二区三区不卡| 激情伊人五月天久久综合| 8v天堂国产在线一区二区| 亚洲精品国产a久久久久久| 成人av动漫在线| 国产欧美日韩在线看| 国产一区二区网址| 日韩欧美精品三级| 日韩1区2区3区| 欧美日本免费一区二区三区| 亚洲一卡二卡三卡四卡| 99久久久国产精品免费蜜臀| 国产精品卡一卡二卡三| 国产91在线看| 国产日韩欧美精品综合| 国产一区二区三区黄视频| 欧美成人在线直播| 免费一级片91| 日韩午夜激情av| 久久黄色级2电影| 日韩一级欧美一级| 久久国产福利国产秒拍| 欧美变态tickle挠乳网站| 免费欧美在线视频| 日韩精品中文字幕一区| 国产中文字幕一区| 国产亚洲欧美一区在线观看| 国产精品影视网| 国产日韩欧美不卡在线| 成人精品视频网站| 亚洲欧美怡红院| 色综合久久久久| 亚洲一区欧美一区| 欧美日韩亚洲综合一区二区三区| 午夜日韩在线电影| 91精品黄色片免费大全| 国内精品视频666| 欧美激情资源网| 99精品偷自拍| 亚洲一区二区三区小说| 欧美三级乱人伦电影| 日韩精品一级二级 | 国产福利精品一区| 中文欧美字幕免费| 91免费视频观看| 亚洲一区二区三区美女| 欧美一区二区成人6969| 国产精品影音先锋| 亚洲另类中文字| 欧美高清激情brazzers| 久久精品国产网站| 欧美—级在线免费片| 91视频观看视频| 亚洲电影一级片| 欧美电视剧免费全集观看| 粉嫩在线一区二区三区视频| 亚洲男人天堂av| 欧美一激情一区二区三区| 韩国欧美国产一区| 综合欧美亚洲日本| 欧美日本韩国一区| 国产精品一区二区三区99| 国产精品色婷婷久久58| 欧美日韩视频在线第一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩欧美在线一区| 91国产视频在线观看| 久久99九九99精品| 亚洲视频在线一区观看| 欧美一区二区视频在线观看2022| 国产不卡视频在线播放| 亚洲一区在线视频观看| 久久久综合网站| 99精品在线观看视频| 日本系列欧美系列| 中文字幕日本不卡| 欧美成人三级在线| 色婷婷综合久久久| 国产一区二区在线观看免费 | 精品美女在线播放| 色综合天天综合网国产成人综合天 | 欧美精品1区2区| 不卡av在线网| 麻豆精品久久精品色综合| 亚洲美女少妇撒尿| 久久综合九色综合97婷婷| 在线视频欧美精品| 国产成人av电影在线| 午夜国产不卡在线观看视频| 欧美国产激情一区二区三区蜜月| 欧美日韩小视频| 不卡的av在线播放| 韩日av一区二区| 亚洲444eee在线观看| 国产精品不卡视频| 精品粉嫩超白一线天av| 欧美日韩综合不卡| 99久久国产综合精品色伊| 久久99精品久久久| 五月激情综合色| 亚洲色图丝袜美腿| 欧美国产综合色视频| 日韩欧美在线网站| 欧美性猛片xxxx免费看久爱| 成人综合在线观看| 久久99最新地址| 首页国产欧美久久| 亚洲在线视频免费观看| 国产精品成人免费| 国产婷婷色一区二区三区| 日韩欧美专区在线| 欧美日韩综合一区| 在线视频中文字幕一区二区| 97久久超碰国产精品电影| 国产a精品视频| 日本sm残虐另类| 91精品在线免费| 91成人看片片| 麻豆精品一二三| 午夜电影网一区| 一区二区三区四区中文字幕| 中文成人av在线| 国产亚洲1区2区3区| 日韩女优av电影| 欧美一区二区三区系列电影| 久久99国产精品尤物| 久久精品一区二区| 欧洲在线/亚洲| 国产一区二区三区国产| 亚洲精品一二三四区| 欧美成人三级电影在线| 91在线看国产| 九九精品一区二区| 亚洲免费伊人电影| 精品成人一区二区三区| 91在线免费视频观看| 久久国产精品99久久久久久老狼| 亚洲欧美在线视频| 日韩久久久久久| 91久久精品一区二区| 国产乱对白刺激视频不卡| 一区二区三区四区乱视频| 久久久久88色偷偷免费| 欧美日韩国产综合一区二区| 国产黄色成人av| 男男视频亚洲欧美| 亚洲男人天堂av| 国产亚洲午夜高清国产拍精品| 欧美日韩国产另类不卡| 99re在线精品| 国产精品1区二区.| 日韩高清在线电影| 一区二区三区鲁丝不卡| 久久精品欧美日韩精品| 91精品久久久久久久91蜜桃 | 欧美电影免费观看高清完整版在| 91麻豆成人久久精品二区三区| 久久er精品视频| 亚洲国产va精品久久久不卡综合| 国产香蕉久久精品综合网| 欧美一区二区三区在线观看视频| 97久久精品人人爽人人爽蜜臀 | 欧美日韩国产精选| 91丨九色丨国产丨porny| 国产精品自拍网站| 日韩电影在线免费观看| 亚洲伊人色欲综合网| 亚洲视频一二三区| 国产日本一区二区| 精品国产乱码久久| 欧美成人在线直播| 欧美肥胖老妇做爰| 欧美日韩国产色站一区二区三区| a4yy欧美一区二区三区| 国产成人福利片| 国产一本一道久久香蕉| 美腿丝袜亚洲综合| 日本美女视频一区二区| 婷婷久久综合九色综合绿巨人 | 国产激情一区二区三区四区| 丝袜国产日韩另类美女| 一区二区三区精品在线| 亚洲男人的天堂在线观看| 国产精品福利av| 中文字幕在线播放不卡一区|