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

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

?? dgif_lib.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************************** *   "Gif-Lib" - Yet another gif library. * * Written by:  Gershon Elber            IBM PC Ver 1.1,    Aug. 1990 ****************************************************************************** * The kernel of the GIF Decoding process can be found here. ****************************************************************************** * History: * 16 Jun 89 - Version 1.0 by Gershon Elber. *  3 Sep 90 - Version 1.1 by Gershon Elber (Support for Gif89, Unique names). *****************************************************************************/#if 1#if defined (__MSDOS__) && !defined(__DJGPP__) && !defined(__GNUC__)#include <io.h>#include <alloc.h>#include <stdlib.h>#include <sys\stat.h>#elif !defined(UNDER_CE)#include <sys/types.h>#include <sys/stat.h>#endif /* __MSDOS__ */#ifndef __MSDOS__#include <stdlib.h>#endif#ifndef UNDER_CE#include <fcntl.h>#else#include "../../../samples/sample_os.h"#endif#include <stdio.h>#include <string.h>#include "gif_lib.h"#include "gif_lib_private.h"#else // ORIGINAL_4.1.4_INCLUDES#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <stdlib.h>#if defined (__MSDOS__) && !defined(__DJGPP__) && !defined(__GNUC__)#include <io.h>#include <alloc.h>#include <sys\stat.h>#else#include <sys/types.h>#include <sys/stat.h>#endif /* __MSDOS__ */#ifdef HAVE_IO_H#include <io.h>#endif#ifdef HAVE_FCNTL_H#include <fcntl.h>#endif /* HAVE_FCNTL_H */#ifdef HAVE_UNISTD_H#include <unistd.h>#endif /* HAVE_UNISTD_H */#include <stdio.h>#include <string.h>#include "gif_lib.h"#include "gif_lib_private.h"#endif //ORIGINAL_4.1.4_INCLUDES#define COMMENT_EXT_FUNC_CODE 0xfe  /* Extension function code for                                       comment. *//* avoid extra function call in case we use fread (TVT) */#define READ(_gif,_buf,_len)                                     \  (((GifFilePrivateType*)_gif->Private)->Read ?                   \    ((GifFilePrivateType*)_gif->Private)->Read(_gif,_buf,_len) : \    fread(_buf,1,_len,((GifFilePrivateType*)_gif->Private)->File))static int DGifGetWord(GifFileType *GifFile, GifWord *Word);static int DGifSetupDecompress(GifFileType *GifFile);static int DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line,                              int LineLen);static int DGifGetPrefixChar(GifPrefixType *Prefix, int Code, int ClearCode);static int DGifDecompressInput(GifFileType *GifFile, int *Code);static int DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf,                             GifByteType *NextByte);#ifndef _GBA_NO_FILEIO/****************************************************************************** * Open a new gif file for read, given by its name. * Returns GifFileType pointer dynamically allocated which serves as the gif * info record. _GifError is cleared if succesfull. *****************************************************************************/GifFileType *DGifOpenFileName(const char *FileName) {    int FileHandle;    GifFileType *GifFile;    if ((FileHandle = open(FileName, O_RDONLY#if defined(__MSDOS__) || defined(_OPEN_BINARY)                           | O_BINARY#endif /* __MSDOS__ || _OPEN_BINARY */         )) == -1) {        _GifError = D_GIF_ERR_OPEN_FAILED;        return NULL;    }    GifFile = DGifOpenFileHandle(FileHandle);    if (GifFile == (GifFileType *)NULL)        close(FileHandle);    return GifFile;}/****************************************************************************** * Update a new gif file, given its file handle. * Returns GifFileType pointer dynamically allocated which serves as the gif * info record. _GifError is cleared if succesfull. *****************************************************************************/GifFileType *DGifOpenFileHandle(int FileHandle) {    unsigned char Buf[GIF_STAMP_LEN + 1];    GifFileType *GifFile;    GifFilePrivateType *Private;    FILE *f;    GifFile = (GifFileType *)malloc(sizeof(GifFileType));    if (GifFile == NULL) {        _GifError = D_GIF_ERR_NOT_ENOUGH_MEM;        return NULL;    }    memset(GifFile, '\0', sizeof(GifFileType));    Private = (GifFilePrivateType *)malloc(sizeof(GifFilePrivateType));    if (Private == NULL) {        _GifError = D_GIF_ERR_NOT_ENOUGH_MEM;        free((char *)GifFile);        return NULL;    }#ifdef __MSDOS__    setmode(FileHandle, O_BINARY);    /* Make sure it is in binary mode. */#endif /* __MSDOS__ */    f = fdopen(FileHandle, "rb");    /* Make it into a stream: */#ifdef __MSDOS__    setvbuf(f, NULL, _IOFBF, GIF_FILE_BUFFER_SIZE);    /* And inc. stream                                                          buffer. */#endif /* __MSDOS__ */    GifFile->Private = (VoidPtr)Private;    Private->FileHandle = FileHandle;    Private->File = f;    Private->FileState = FILE_STATE_READ;    Private->Read = 0;    /* don't use alternate input method (TVT) */    GifFile->UserData = 0;    /* TVT */    /* Lets see if this is a GIF file: */    if (READ(GifFile, Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {        _GifError = D_GIF_ERR_READ_FAILED;        fclose(f);        free((char *)Private);        free((char *)GifFile);        return NULL;    }    /* The GIF Version number is ignored at this time. Maybe we should do     * something more useful with it.  */    Buf[GIF_STAMP_LEN] = 0;    if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) {        _GifError = D_GIF_ERR_NOT_GIF_FILE;        fclose(f);        free((char *)Private);        free((char *)GifFile);        return NULL;    }    if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {        fclose(f);        free((char *)Private);        free((char *)GifFile);        return NULL;    }    _GifError = 0;    return GifFile;}#endif /* _GBA_NO_FILEIO *//****************************************************************************** * GifFileType constructor with user supplied input function (TVT) *****************************************************************************/GifFileType *DGifOpen(void *userData,         InputFunc readFunc) {    unsigned char Buf[GIF_STAMP_LEN + 1];    GifFileType *GifFile;    GifFilePrivateType *Private;    GifFile = (GifFileType *)malloc(sizeof(GifFileType));    if (GifFile == NULL) {        _GifError = D_GIF_ERR_NOT_ENOUGH_MEM;        return NULL;    }    memset(GifFile, '\0', sizeof(GifFileType));    Private = (GifFilePrivateType *)malloc(sizeof(GifFilePrivateType));    if (!Private) {        _GifError = D_GIF_ERR_NOT_ENOUGH_MEM;        free((char *)GifFile);        return NULL;    }    GifFile->Private = (VoidPtr)Private;    Private->FileHandle = 0;    Private->File = 0;    Private->FileState = FILE_STATE_READ;    Private->Read = readFunc;    /* TVT */    GifFile->UserData = userData;    /* TVT */    /* Lets see if this is a GIF file: */    if (READ(GifFile, Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {        _GifError = D_GIF_ERR_READ_FAILED;        free((char *)Private);        free((char *)GifFile);        return NULL;    }    /* The GIF Version number is ignored at this time. Maybe we should do     * something more useful with it. */    Buf[GIF_STAMP_LEN] = 0;    if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) {        _GifError = D_GIF_ERR_NOT_GIF_FILE;        free((char *)Private);        free((char *)GifFile);        return NULL;    }    if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {        free((char *)Private);        free((char *)GifFile);        return NULL;    }    _GifError = 0;    return GifFile;}/****************************************************************************** * This routine should be called before any other DGif calls. Note that * this routine is called automatically from DGif file open routines. *****************************************************************************/intDGifGetScreenDesc(GifFileType * GifFile) {    int i, BitsPerPixel;    GifByteType Buf[3];    GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;    if (!IS_READABLE(Private)) {        /* This file was NOT open for reading: */        _GifError = D_GIF_ERR_NOT_READABLE;        return GIF_ERROR;    }    /* Put the screen descriptor into the file: */    if (DGifGetWord(GifFile, &GifFile->SWidth) == GIF_ERROR ||        DGifGetWord(GifFile, &GifFile->SHeight) == GIF_ERROR)        return GIF_ERROR;    if (READ(GifFile, Buf, 3) != 3) {        _GifError = D_GIF_ERR_READ_FAILED;        return GIF_ERROR;    }    GifFile->SColorResolution = (((Buf[0] & 0x70) + 1) >> 4) + 1;    BitsPerPixel = (Buf[0] & 0x07) + 1;    GifFile->SBackGroundColor = Buf[1];    if (Buf[0] & 0x80) {    /* Do we have global color map? */        GifFile->SColorMap = MakeMapObject(1 << BitsPerPixel, NULL);        if (GifFile->SColorMap == NULL) {            _GifError = D_GIF_ERR_NOT_ENOUGH_MEM;            return GIF_ERROR;        }        /* Get the global color map: */        for (i = 0; i < GifFile->SColorMap->ColorCount; i++) {            if (READ(GifFile, Buf, 3) != 3) {                FreeMapObject(GifFile->SColorMap);                GifFile->SColorMap = NULL;                _GifError = D_GIF_ERR_READ_FAILED;                return GIF_ERROR;            }            GifFile->SColorMap->Colors[i].Red = Buf[0];            GifFile->SColorMap->Colors[i].Green = Buf[1];            GifFile->SColorMap->Colors[i].Blue = Buf[2];        }    } else {        GifFile->SColorMap = NULL;    }    return GIF_OK;}/****************************************************************************** * This routine should be called before any attempt to read an image. *****************************************************************************/intDGifGetRecordType(GifFileType * GifFile,                  GifRecordType * Type) {    GifByteType Buf;    GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;    if (!IS_READABLE(Private)) {        /* This file was NOT open for reading: */        _GifError = D_GIF_ERR_NOT_READABLE;        return GIF_ERROR;    }    if (READ(GifFile, &Buf, 1) != 1) {        _GifError = D_GIF_ERR_READ_FAILED;        return GIF_ERROR;    }    switch (Buf) {      case ',':          *Type = IMAGE_DESC_RECORD_TYPE;          break;      case '!':          *Type = EXTENSION_RECORD_TYPE;          break;      case ';':          *Type = TERMINATE_RECORD_TYPE;          break;      default:          *Type = UNDEFINED_RECORD_TYPE;          _GifError = D_GIF_ERR_WRONG_RECORD;          return GIF_ERROR;    }    return GIF_OK;}/****************************************************************************** * This routine should be called before any attempt to read an image. * Note it is assumed the Image desc. header (',') has been read. *****************************************************************************/intDGifGetImageDesc(GifFileType * GifFile) {    int i, BitsPerPixel;    GifByteType Buf[3];    GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;    SavedImage *sp;    if (!IS_READABLE(Private)) {        /* This file was NOT open for reading: */        _GifError = D_GIF_ERR_NOT_READABLE;        return GIF_ERROR;    }    if (DGifGetWord(GifFile, &GifFile->Image.Left) == GIF_ERROR ||        DGifGetWord(GifFile, &GifFile->Image.Top) == GIF_ERROR ||        DGifGetWord(GifFile, &GifFile->Image.Width) == GIF_ERROR ||

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品男人天堂av| 久久久久国产精品麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 91国产成人在线| 午夜精品免费在线| 欧美成人欧美edvon| 国产精品2024| 一区二区三区日韩欧美| 欧美日韩一区二区三区高清| 免费久久精品视频| 日本一区二区免费在线| 色综合久久久久综合99| 日韩国产在线观看一区| 国产午夜精品一区二区三区视频 | 国产日产欧美一区| 91在线国产福利| 久久精品国内一区二区三区| 日本一区二区三区在线不卡| 在线观看免费一区| 国产一区欧美日韩| 午夜影院久久久| 国产精品天美传媒| 欧美电视剧在线看免费| 色婷婷国产精品| 成人综合在线观看| 看电影不卡的网站| 亚洲v中文字幕| 亚洲丝袜精品丝袜在线| 精品国产精品网麻豆系列| 色综合久久88色综合天天6| 91原创在线视频| 免费观看一级欧美片| 亚洲国产裸拍裸体视频在线观看乱了 | 在线观看视频91| 日韩欧美亚洲国产另类| 宅男在线国产精品| 8x8x8国产精品| 欧美成人女星排行榜| www国产精品av| 国产精品久久久久久久久动漫| 日韩毛片精品高清免费| 亚洲人成小说网站色在线| 国产精品久久久久aaaa| 国产拍欧美日韩视频二区| 一本大道久久精品懂色aⅴ| 国产精品国产馆在线真实露脸| 欧美电影一区二区| 欧美最猛黑人xxxxx猛交| 精品亚洲成a人| 亚洲国产毛片aaaaa无费看| 18成人在线观看| 国产日韩欧美一区二区三区综合| 91精品国产综合久久久蜜臀粉嫩 | 国产精品久久久久久久久免费丝袜| 欧美日韩国产在线播放网站| 成人app网站| 丁香婷婷深情五月亚洲| 蜜桃av噜噜一区| 日本最新不卡在线| 日日夜夜精品视频免费| 亚洲欧美另类图片小说| 青青草原综合久久大伊人精品优势 | 国产精品综合在线视频| 国产精品护士白丝一区av| 欧美日韩高清一区二区不卡| 成人激情综合网站| 国产成人亚洲综合a∨婷婷 | 久久久久88色偷偷免费| 国产一区视频导航| 91精品午夜视频| 国产**成人网毛片九色| 天天影视网天天综合色在线播放| 久久精品网站免费观看| 夜夜精品视频一区二区| 色8久久人人97超碰香蕉987| 亚洲综合清纯丝袜自拍| 色欲综合视频天天天| 在线观看免费亚洲| 日韩一区二区三区电影在线观看| 欧美一区二区成人6969| 久久综合给合久久狠狠狠97色69| 国产精品久久久久三级| 综合分类小说区另类春色亚洲小说欧美| 亚洲国产精品传媒在线观看| 国产精品国产三级国产有无不卡 | 午夜一区二区三区在线观看| 日韩综合一区二区| 成人午夜av电影| 欧美日韩亚洲不卡| 久久毛片高清国产| 亚洲国产综合色| 国产成人精品免费网站| 一本大道av一区二区在线播放| 欧美一区二区三区在| 综合欧美亚洲日本| 奇米在线7777在线精品| 欧美日韩专区在线| 欧美日韩电影一区| 国产日韩欧美a| 夜夜嗨av一区二区三区网页| 日本美女一区二区三区视频| 欧美午夜不卡视频| 精品一区二区三区久久| 国产一区二区在线看| 亚洲高清三级视频| 亚洲日本丝袜连裤袜办公室| 国产亚洲一区二区三区在线观看| 欧美一区中文字幕| 欧美视频一区二区三区四区 | 亚洲h在线观看| ㊣最新国产の精品bt伙计久久| 国产亚洲人成网站| 欧美成人video| 成人v精品蜜桃久久一区| 精品国产三级a在线观看| 亚洲另类春色校园小说| 成人午夜精品一区二区三区| 久久日韩粉嫩一区二区三区| 美女爽到高潮91| 欧美精品一卡两卡| 洋洋av久久久久久久一区| 91视频国产观看| 久久久久久久久蜜桃| 精品一区二区三区av| 日韩午夜av电影| 日本视频一区二区三区| 91麻豆精品国产91久久久久| 亚洲一区二区三区爽爽爽爽爽| 色综合中文综合网| 日韩免费高清av| 日韩国产精品大片| 6080亚洲精品一区二区| 日日骚欧美日韩| 精品乱人伦一区二区三区| 韩国成人在线视频| 久久五月婷婷丁香社区| 国产成人精品影视| 亚洲国产高清在线| 欧美videos中文字幕| 91美女片黄在线观看91美女| 国产日韩v精品一区二区| 免费观看在线色综合| 欧美videossexotv100| 国产盗摄视频一区二区三区| 国产精品久线在线观看| 色综合天天狠狠| 日韩和欧美的一区| 国产欧美中文在线| 色婷婷久久久综合中文字幕 | 国产精品一品二品| 国模一区二区三区白浆| 乱中年女人伦av一区二区| 久久久99精品免费观看| 中文一区一区三区高中清不卡| 国产精品看片你懂得| 1024成人网色www| 97精品久久久久中文字幕| 国产麻豆欧美日韩一区| 欧美日韩一级二级| 欧美肥妇bbw| xnxx国产精品| 国产精品欧美综合在线| 自拍偷拍欧美激情| 亚洲成人av免费| 久久精品国产久精国产爱| 国产成人免费在线| 欧洲视频一区二区| 国产成人在线免费观看| 一区二区三区四区乱视频| 欧美一级在线视频| 色呦呦一区二区三区| 国产在线视视频有精品| 亚洲激情综合网| 久久精品夜色噜噜亚洲a∨| 91高清在线观看| 99视频超级精品| 国产成人午夜高潮毛片| 精品亚洲成a人在线观看| 日日欢夜夜爽一区| 亚洲第一福利一区| 亚洲精品欧美在线| 中文字幕一区二区三区精华液| 欧美一级在线视频| 国产女人aaa级久久久级| 制服丝袜av成人在线看| 欧美久久久一区| 7777精品伊人久久久大香线蕉完整版| 91香蕉视频污在线| 成人app在线| 91在线精品一区二区三区| 99国产精品久久久久久久久久| 国产老肥熟一区二区三区| 国产99久久久国产精品免费看 | 91麻豆精品91久久久久同性| 国产成人精品影视| 成人午夜免费视频| 成人午夜视频网站| 9色porny自拍视频一区二区| 成人18精品视频| 在线观看亚洲精品|