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

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

?? gifdec.c

?? arm平臺下的H264編碼和解碼源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
        return -EINVAL;    /* build the palette */    if (s->pix_fmt == PIX_FMT_RGB24) {        line = av_malloc(width);        if (!line)            return -ENOMEM;    } else {        n = (1 << bits_per_pixel);        spal = palette;        for(i = 0; i < n; i++) {            s->image_palette[i] = (0xff << 24) |                 (spal[0] << 16) | (spal[1] << 8) | (spal[2]);            spal += 3;        }        for(; i < 256; i++)            s->image_palette[i] = (0xff << 24);        /* handle transparency */        if (s->transparent_color_index >= 0)            s->image_palette[s->transparent_color_index] = 0;        line = NULL;    }    /* now get the image data */    s->f = f;    code_size = get_byte(f);    GLZWDecodeInit(s, code_size);    /* read all the image */    linesize = s->image_linesize;    ptr1 = s->image_buf + top * linesize + (left * 3);    ptr = ptr1;    pass = 0;    y1 = 0;    for (y = 0; y < height; y++) {        if (s->pix_fmt == PIX_FMT_RGB24) {            /* transcode to RGB24 */            GLZWDecode(s, line, width);            d = ptr;            sptr = line;            for(x = 0; x < width; x++) {                spal = palette + sptr[0] * 3;                d[0] = spal[0];                d[1] = spal[1];                d[2] = spal[2];                d += 3;                sptr++;            }        } else {            GLZWDecode(s, ptr, width);        }        if (is_interleaved) {            switch(pass) {            default:            case 0:            case 1:                y1 += 8;                ptr += linesize * 8;                if (y1 >= height) {                    y1 = 4;                    if (pass == 0)                         ptr = ptr1 + linesize * 4;                    else                        ptr = ptr1 + linesize * 2;                    pass++;                }                break;            case 2:                y1 += 4;                ptr += linesize * 4;                if (y1 >= height) {                    y1 = 1;                    ptr = ptr1 + linesize;                    pass++;                }                break;            case 3:                y1 += 2;                ptr += linesize * 2;                break;            }        } else {            ptr += linesize;        }    }    av_free(line);        /* read the garbage data until end marker is found */    while (!s->eob_reached)        GetCode(s);    return 0;}static int gif_read_extension(GifState *s){    ByteIOContext *f = s->f;    int ext_code, ext_len, i, gce_flags, gce_transparent_index;    /* extension */    ext_code = get_byte(f);    ext_len = get_byte(f);#ifdef DEBUG    printf("gif: ext_code=0x%x len=%d\n", ext_code, ext_len);#endif    switch(ext_code) {    case 0xf9:        if (ext_len != 4)            goto discard_ext;        s->transparent_color_index = -1;        gce_flags = get_byte(f);        s->gce_delay = get_le16(f);        gce_transparent_index = get_byte(f);        if (gce_flags & 0x01)            s->transparent_color_index = gce_transparent_index;        else            s->transparent_color_index = -1;        s->gce_disposal = (gce_flags >> 2) & 0x7;#ifdef DEBUG        printf("gif: gce_flags=%x delay=%d tcolor=%d disposal=%d\n",                gce_flags, s->gce_delay,                s->transparent_color_index, s->gce_disposal);#endif        ext_len = get_byte(f);        break;    }            /* NOTE: many extension blocks can come after */ discard_ext:    while (ext_len != 0) {        for (i = 0; i < ext_len; i++)            get_byte(f);        ext_len = get_byte(f);#ifdef DEBUG        printf("gif: ext_len1=%d\n", ext_len);#endif    }    return 0;}static int gif_read_header1(GifState *s){    ByteIOContext *f = s->f;    uint8_t sig[6];    int ret, v, n;    int has_global_palette;    /* read gif signature */    ret = get_buffer(f, sig, 6);    if (ret != 6)	return -1;    if (memcmp(sig, gif87a_sig, 6) != 0 &&	memcmp(sig, gif89a_sig, 6) != 0)	return -1;    /* read screen header */    s->transparent_color_index = -1;    s->screen_width = get_le16(f);    s->screen_height = get_le16(f);    v = get_byte(f);    s->color_resolution = ((v & 0x70) >> 4) + 1;    has_global_palette = (v & 0x80);    s->bits_per_pixel = (v & 0x07) + 1;    s->background_color_index = get_byte(f);    get_byte(f);		/* ignored */#ifdef DEBUG    printf("gif: screen_w=%d screen_h=%d bpp=%d global_palette=%d\n",	   s->screen_width, s->screen_height, s->bits_per_pixel,	   has_global_palette);#endif    if (has_global_palette) {	n = 1 << s->bits_per_pixel;	get_buffer(f, s->global_palette, n * 3);    }    return 0;}static int gif_parse_next_image(GifState *s){    ByteIOContext *f = s->f;    int ret, code;    for (;;) {	code = url_fgetc(f);#ifdef DEBUG	printf("gif: code=%02x '%c'\n", code, code);#endif	switch (code) {	case ',':	    if (gif_read_image(s) < 0)		return -EIO;	    ret = 0;	    goto the_end;	case ';':	    /* end of image */	    ret = -EIO;	    goto the_end;	case '!':            if (gif_read_extension(s) < 0)                return -EIO;	    break;	case EOF:	default:	    /* error or errneous EOF */	    ret = -EIO;	    goto the_end;	}    }  the_end:    return ret;}static int gif_read_header(AVFormatContext * s1,			   AVFormatParameters * ap){    GifState *s = s1->priv_data;    ByteIOContext *f = &s1->pb;    AVStream *st;    s->f = f;    if (gif_read_header1(s) < 0)        return -1;        /* allocate image buffer */    s->image_linesize = s->screen_width * 3;    s->image_buf = av_malloc(s->screen_height * s->image_linesize);    if (!s->image_buf)        return -ENOMEM;    s->pix_fmt = PIX_FMT_RGB24;    /* now we are ready: build format streams */    st = av_new_stream(s1, 0);    if (!st)	return -1;    st->codec.codec_type = CODEC_TYPE_VIDEO;    st->codec.codec_id = CODEC_ID_RAWVIDEO;    st->codec.frame_rate = 5;    st->codec.frame_rate_base = 1;    /* XXX: check if screen size is always valid */    st->codec.width = s->screen_width;    st->codec.height = s->screen_height;    st->codec.pix_fmt = PIX_FMT_RGB24;    return 0;}static int gif_read_packet(AVFormatContext * s1,			   AVPacket * pkt){    GifState *s = s1->priv_data;    int ret;    ret = gif_parse_next_image(s);    if (ret < 0)        return ret;    /* XXX: avoid copying */    if (av_new_packet(pkt, s->screen_width * s->screen_height * 3)) {	return -EIO;    }    pkt->stream_index = 0;    memcpy(pkt->data, s->image_buf, s->screen_width * s->screen_height * 3);    return 0;}static int gif_read_close(AVFormatContext *s1){    GifState *s = s1->priv_data;    av_free(s->image_buf);    return 0;}/* read gif as image */static int gif_read(ByteIOContext *f,                     int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque){    GifState s1, *s = &s1;    AVImageInfo info1, *info = &info1;    int ret;    memset(s, 0, sizeof(GifState));    s->f = f;    if (gif_read_header1(s) < 0)        return -1;    info->width = s->screen_width;    info->height = s->screen_height;    info->pix_fmt = PIX_FMT_PAL8;    ret = alloc_cb(opaque, info);    if (ret)        return ret;    s->image_buf = info->pict.data[0];    s->image_linesize = info->pict.linesize[0];    s->image_palette = (uint32_t *)info->pict.data[1];    if (gif_parse_next_image(s) < 0)        return -1;    return 0;}AVInputFormat gif_iformat ={    "gif",    "gif format",    sizeof(GifState),    gif_video_probe,    gif_read_header,    gif_read_packet,    gif_read_close,};AVImageFormat gif_image_format = {    "gif",    "gif",    gif_image_probe,    gif_read,    (1 << PIX_FMT_PAL8),    gif_write,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲特级片在线| 亚洲柠檬福利资源导航| 欧美乱熟臀69xxxxxx| 国产精品综合在线视频| 六月丁香综合在线视频| 艳妇臀荡乳欲伦亚洲一区| 日本一区二区成人在线| 欧美xxxx老人做受| 欧美日韩你懂得| 欧美亚洲丝袜传媒另类| 欧美中文一区二区三区| 国产99精品视频| 日本不卡一二三区黄网| 久久国产婷婷国产香蕉| 成人福利视频网站| 欧美电视剧免费观看| 国产精品天天看| 麻豆一区二区在线| 日本黄色一区二区| 中文一区二区完整视频在线观看| 亚洲一区二区在线免费观看视频| 免费观看久久久4p| 欧美日韩成人综合| 亚洲婷婷综合久久一本伊一区| 美女国产一区二区| 欧美亚洲愉拍一区二区| 国产亚洲欧美日韩俺去了| 午夜电影一区二区三区| 91在线无精精品入口| 久久久久久久久久久黄色| 中文av一区二区| 亚洲高清免费在线| 国产成人免费视频精品含羞草妖精| 国产精品亚洲第一区在线暖暖韩国 | 午夜精品成人在线视频| 蜜桃视频在线观看一区二区| 日韩在线一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 成人免费精品视频| 欧美一区二区三区影视| 国产精品久99| 黑人精品欧美一区二区蜜桃 | 中文字幕精品一区二区精品绿巨人 | 国产精品污网站| 青青国产91久久久久久| 99精品国产99久久久久久白柏| 欧美人与性动xxxx| 国产精品国产馆在线真实露脸 | 国产欧美日韩视频在线观看| 亚洲一区中文日韩| av中文字幕一区| 久久精品亚洲乱码伦伦中文| 日韩va欧美va亚洲va久久| 91麻豆免费看| 国产精品久久久久久户外露出 | 丝袜a∨在线一区二区三区不卡| 国产老肥熟一区二区三区| 欧美一级理论片| 日日夜夜精品视频免费| 色哟哟国产精品| 亚洲女爱视频在线| 91免费小视频| 夜夜亚洲天天久久| 欧美体内she精高潮| 一区二区三区精品在线| 在线观看视频一区二区欧美日韩| 亚洲免费视频成人| 91极品美女在线| 日韩不卡一区二区三区| 日韩精品专区在线| 国产一区二区免费视频| 国产精品久久国产精麻豆99网站| 成人免费毛片a| 亚洲另类春色校园小说| 欧美日本一区二区在线观看| 亚洲高清免费在线| 精品欧美一区二区久久| 国产99精品视频| 亚洲国产中文字幕在线视频综合| 欧美色欧美亚洲另类二区| 日韩国产欧美三级| 国产日韩欧美高清| 色婷婷精品大在线视频| 日韩精品乱码av一区二区| 久久综合久久综合久久| 色婷婷av一区二区三区大白胸| 久久精品国产一区二区三| 欧美人体做爰大胆视频| 黄页视频在线91| 亚洲综合色区另类av| 精品国产乱码久久久久久浪潮| 91麻豆国产福利在线观看| 日韩专区在线视频| 亚洲婷婷综合色高清在线| 久久久av毛片精品| 欧美挠脚心视频网站| 不卡一二三区首页| 久久精品国产亚洲一区二区三区| 国产精品视频yy9299一区| 日韩一级片在线播放| 91国在线观看| 国产91露脸合集magnet| 视频一区在线播放| 亚洲综合在线免费观看| 日韩毛片视频在线看| 欧美激情在线一区二区| 久久婷婷色综合| 久久免费午夜影院| 欧美成va人片在线观看| 日韩午夜激情视频| 欧美日本韩国一区| 欧美一区二区私人影院日本| 欧美美女喷水视频| 欧美精选午夜久久久乱码6080| 欧美日韩中文国产| 欧美日韩综合在线| 制服丝袜亚洲精品中文字幕| 欧美日韩在线不卡| 日韩欧美中文一区| 日韩女优视频免费观看| 日韩视频一区在线观看| 精品日韩一区二区三区| 精品国产乱码91久久久久久网站| 日韩丝袜美女视频| 国产欧美综合色| 国产精品的网站| 五月婷婷另类国产| 久久av老司机精品网站导航| 国产精品77777竹菊影视小说| 不卡的av在线| 欧美伊人久久久久久午夜久久久久| 91精品国产91久久久久久一区二区| 欧美一级国产精品| 国产精品乱码一区二区三区软件| 亚洲精品精品亚洲| 国产一区二区在线观看免费| 色综合久久88色综合天天| 欧美不卡在线视频| 亚洲国产日韩a在线播放性色| 激情丁香综合五月| 欧美天堂一区二区三区| 中文字幕av免费专区久久| 午夜精品aaa| 在线视频国内一区二区| 欧美国产国产综合| 美女高潮久久久| 欧美日韩国产综合一区二区三区| 国产欧美综合色| 看电影不卡的网站| 欧美一区二区在线视频| 亚洲一区二区高清| av影院午夜一区| 国产午夜亚洲精品羞羞网站| 毛片av一区二区三区| 欧美日韩午夜精品| 亚洲一区二区免费视频| 在线观看区一区二| 国产精品超碰97尤物18| 国产91精品在线观看| 久久九九国产精品| 国产精品18久久久久| 精品精品国产高清a毛片牛牛 | 国产精品网曝门| 99国产欧美另类久久久精品| 亚洲欧美在线视频| 91视频在线看| 亚洲成人一二三| 7777女厕盗摄久久久| 美女一区二区视频| 久久婷婷国产综合精品青草| 国产精品一区二区久激情瑜伽| 国产校园另类小说区| 成人免费电影视频| 亚洲精品日韩综合观看成人91| 欧美性受极品xxxx喷水| 美洲天堂一区二卡三卡四卡视频| 日韩欧美在线123| 国产盗摄一区二区三区| 亚洲天堂网中文字| 欧美精品在线一区二区三区| 国产精品影视在线观看| 亚洲欧洲精品成人久久奇米网| 欧美天堂一区二区三区| 理论电影国产精品| 亚洲三级理论片| 精品久久国产字幕高潮| 99re亚洲国产精品| 玖玖九九国产精品| 一区二区三区四区在线免费观看 | 亚洲成人动漫av| 欧美国产日本韩| 日韩欧美黄色影院| 欧美高清视频一二三区 | 国产成人自拍高清视频在线免费播放 | 久草这里只有精品视频| 午夜久久电影网| 日韩国产精品久久久久久亚洲| 亚洲一区欧美一区| 一区二区不卡在线播放| 一区二区理论电影在线观看|