Lines Matching refs:GifFile
35 static int DGifGetWord(GifFileType *GifFile, GifWord *Word);
36 static int DGifSetupDecompress(GifFileType *GifFile);
37 static int DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line,
40 static int DGifDecompressInput(GifFileType *GifFile, int *Code);
41 static int DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf,
53 GifFileType *GifFile; in DGifOpenFileName() local
61 GifFile = DGifOpenFileHandle(FileHandle, Error); in DGifOpenFileName()
62 return GifFile; in DGifOpenFileName()
74 GifFileType *GifFile; in DGifOpenFileHandle() local
78 GifFile = (GifFileType *)malloc(sizeof(GifFileType)); in DGifOpenFileHandle()
79 if (GifFile == NULL) { in DGifOpenFileHandle()
86 /*@i1@*/memset(GifFile, '\0', sizeof(GifFileType)); in DGifOpenFileHandle()
89 GifFile->SavedImages = NULL; in DGifOpenFileHandle()
90 GifFile->SColorMap = NULL; in DGifOpenFileHandle()
97 free((char *)GifFile); in DGifOpenFileHandle()
110 GifFile->Private = (void *)Private; in DGifOpenFileHandle()
115 GifFile->UserData = NULL; /* TVT */ in DGifOpenFileHandle()
120 if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) { in DGifOpenFileHandle()
125 free((char *)GifFile); in DGifOpenFileHandle()
136 free((char *)GifFile); in DGifOpenFileHandle()
140 if (DGifGetScreenDesc(GifFile) == GIF_ERROR) { in DGifOpenFileHandle()
143 free((char *)GifFile); in DGifOpenFileHandle()
147 GifFile->Error = 0; in DGifOpenFileHandle()
152 return GifFile; in DGifOpenFileHandle()
162 GifFileType *GifFile; in DGifOpen() local
165 GifFile = (GifFileType *)malloc(sizeof(GifFileType)); in DGifOpen()
166 if (GifFile == NULL) { in DGifOpen()
172 memset(GifFile, '\0', sizeof(GifFileType)); in DGifOpen()
175 GifFile->SavedImages = NULL; in DGifOpen()
176 GifFile->SColorMap = NULL; in DGifOpen()
182 free((char *)GifFile); in DGifOpen()
187 GifFile->Private = (void *)Private; in DGifOpen()
193 GifFile->UserData = userData; /* TVT */ in DGifOpen()
197 if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) { in DGifOpen()
201 free((char *)GifFile); in DGifOpen()
211 free((char *)GifFile); in DGifOpen()
215 if (DGifGetScreenDesc(GifFile) == GIF_ERROR) { in DGifOpen()
217 free((char *)GifFile); in DGifOpen()
223 GifFile->Error = 0; in DGifOpen()
228 return GifFile; in DGifOpen()
236 DGifGetScreenDesc(GifFileType *GifFile) in DGifGetScreenDesc() argument
241 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetScreenDesc()
245 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetScreenDesc()
250 if (DGifGetWord(GifFile, &GifFile->SWidth) == GIF_ERROR || in DGifGetScreenDesc()
251 DGifGetWord(GifFile, &GifFile->SHeight) == GIF_ERROR) in DGifGetScreenDesc()
254 if (READ(GifFile, Buf, 3) != 3) { in DGifGetScreenDesc()
255 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetScreenDesc()
256 GifFreeMapObject(GifFile->SColorMap); in DGifGetScreenDesc()
257 GifFile->SColorMap = NULL; in DGifGetScreenDesc()
260 GifFile->SColorResolution = (((Buf[0] & 0x70) + 1) >> 4) + 1; in DGifGetScreenDesc()
263 GifFile->SBackGroundColor = Buf[1]; in DGifGetScreenDesc()
264 GifFile->AspectByte = Buf[2]; in DGifGetScreenDesc()
268 GifFile->SColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL); in DGifGetScreenDesc()
269 if (GifFile->SColorMap == NULL) { in DGifGetScreenDesc()
270 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; in DGifGetScreenDesc()
275 GifFile->SColorMap->SortFlag = SortFlag; in DGifGetScreenDesc()
276 for (i = 0; i < GifFile->SColorMap->ColorCount; i++) { in DGifGetScreenDesc()
278 if (READ(GifFile, Buf, 3) != 3) { in DGifGetScreenDesc()
279 GifFreeMapObject(GifFile->SColorMap); in DGifGetScreenDesc()
280 GifFile->SColorMap = NULL; in DGifGetScreenDesc()
281 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetScreenDesc()
284 GifFile->SColorMap->Colors[i].Red = Buf[0]; in DGifGetScreenDesc()
285 GifFile->SColorMap->Colors[i].Green = Buf[1]; in DGifGetScreenDesc()
286 GifFile->SColorMap->Colors[i].Blue = Buf[2]; in DGifGetScreenDesc()
289 GifFile->SColorMap = NULL; in DGifGetScreenDesc()
299 DGifGetRecordType(GifFileType *GifFile, GifRecordType* Type) in DGifGetRecordType() argument
302 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetRecordType()
306 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetRecordType()
311 if (READ(GifFile, &Buf, 1) != 1) { in DGifGetRecordType()
312 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetRecordType()
328 GifFile->Error = D_GIF_ERR_WRONG_RECORD; in DGifGetRecordType()
340 DGifGetImageDesc(GifFileType *GifFile) in DGifGetImageDesc() argument
344 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetImageDesc()
349 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetImageDesc()
353 if (DGifGetWord(GifFile, &GifFile->Image.Left) == GIF_ERROR || in DGifGetImageDesc()
354 DGifGetWord(GifFile, &GifFile->Image.Top) == GIF_ERROR || in DGifGetImageDesc()
355 DGifGetWord(GifFile, &GifFile->Image.Width) == GIF_ERROR || in DGifGetImageDesc()
356 DGifGetWord(GifFile, &GifFile->Image.Height) == GIF_ERROR) in DGifGetImageDesc()
358 if (READ(GifFile, Buf, 1) != 1) { in DGifGetImageDesc()
359 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetImageDesc()
360 GifFreeMapObject(GifFile->Image.ColorMap); in DGifGetImageDesc()
361 GifFile->Image.ColorMap = NULL; in DGifGetImageDesc()
365 GifFile->Image.Interlace = (Buf[0] & 0x40) ? true : false; in DGifGetImageDesc()
368 if (GifFile->Image.ColorMap) { in DGifGetImageDesc()
369 GifFreeMapObject(GifFile->Image.ColorMap); in DGifGetImageDesc()
370 GifFile->Image.ColorMap = NULL; in DGifGetImageDesc()
376 GifFile->Image.ColorMap = GifMakeMapObject(1 << BitsPerPixel, NULL); in DGifGetImageDesc()
377 if (GifFile->Image.ColorMap == NULL) { in DGifGetImageDesc()
378 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; in DGifGetImageDesc()
383 for (i = 0; i < GifFile->Image.ColorMap->ColorCount; i++) { in DGifGetImageDesc()
385 if (READ(GifFile, Buf, 3) != 3) { in DGifGetImageDesc()
386 GifFreeMapObject(GifFile->Image.ColorMap); in DGifGetImageDesc()
387 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetImageDesc()
388 GifFile->Image.ColorMap = NULL; in DGifGetImageDesc()
391 GifFile->Image.ColorMap->Colors[i].Red = Buf[0]; in DGifGetImageDesc()
392 GifFile->Image.ColorMap->Colors[i].Green = Buf[1]; in DGifGetImageDesc()
393 GifFile->Image.ColorMap->Colors[i].Blue = Buf[2]; in DGifGetImageDesc()
397 if (GifFile->SavedImages) { in DGifGetImageDesc()
399 (SavedImage *)reallocarray(GifFile->SavedImages, in DGifGetImageDesc()
400 (GifFile->ImageCount + 1), sizeof(SavedImage)); in DGifGetImageDesc()
402 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; in DGifGetImageDesc()
405 GifFile->SavedImages = new_saved_images; in DGifGetImageDesc()
407 if ((GifFile->SavedImages = in DGifGetImageDesc()
409 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; in DGifGetImageDesc()
414 sp = &GifFile->SavedImages[GifFile->ImageCount]; in DGifGetImageDesc()
415 memcpy(&sp->ImageDesc, &GifFile->Image, sizeof(GifImageDesc)); in DGifGetImageDesc()
416 if (GifFile->Image.ColorMap != NULL) { in DGifGetImageDesc()
418 GifFile->Image.ColorMap->ColorCount, in DGifGetImageDesc()
419 GifFile->Image.ColorMap->Colors); in DGifGetImageDesc()
421 GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; in DGifGetImageDesc()
429 GifFile->ImageCount++; in DGifGetImageDesc()
431 Private->PixelCount = (long)GifFile->Image.Width * in DGifGetImageDesc()
432 (long)GifFile->Image.Height; in DGifGetImageDesc()
435 return DGifSetupDecompress(GifFile); in DGifGetImageDesc()
442 DGifGetLine(GifFileType *GifFile, GifPixelType *Line, int LineLen) in DGifGetLine() argument
445 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private; in DGifGetLine()
449 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetLine()
454 LineLen = GifFile->Image.Width; in DGifGetLine()
457 GifFile->Error = D_GIF_ERR_DATA_TOO_BIG; in DGifGetLine()
461 if (DGifDecompressLine(GifFile, Line, LineLen) == GIF_OK) { in DGifGetLine()
469 if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR) in DGifGetLine()
482 DGifGetPixel(GifFileType *GifFile, GifPixelType Pixel) in DGifGetPixel() argument
485 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private; in DGifGetPixel()
489 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetPixel()
494 GifFile->Error = D_GIF_ERR_DATA_TOO_BIG; in DGifGetPixel()
498 if (DGifDecompressLine(GifFile, &Pixel, 1) == GIF_OK) { in DGifGetPixel()
506 if (DGifGetCodeNext(GifFile, &Dummy) == GIF_ERROR) in DGifGetPixel()
523 DGifGetExtension(GifFileType *GifFile, int *ExtCode, GifByteType **Extension) in DGifGetExtension() argument
526 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetExtension()
530 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetExtension()
535 if (READ(GifFile, &Buf, 1) != 1) { in DGifGetExtension()
536 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetExtension()
541 return DGifGetExtensionNext(GifFile, Extension); in DGifGetExtension()
550 DGifGetExtensionNext(GifFileType *GifFile, GifByteType ** Extension) in DGifGetExtensionNext() argument
553 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetExtensionNext()
555 if (READ(GifFile, &Buf, 1) != 1) { in DGifGetExtensionNext()
556 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetExtensionNext()
563 if (READ(GifFile, &((*Extension)[1]), Buf) != Buf) { in DGifGetExtensionNext()
564 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetExtensionNext()
600 int DGifSavedExtensionToGCB(GifFileType *GifFile, in DGifSavedExtensionToGCB() argument
605 if (ImageIndex < 0 || ImageIndex > GifFile->ImageCount - 1) in DGifSavedExtensionToGCB()
613 for (i = 0; i < GifFile->SavedImages[ImageIndex].ExtensionBlockCount; i++) { in DGifSavedExtensionToGCB()
614 ExtensionBlock *ep = &GifFile->SavedImages[ImageIndex].ExtensionBlocks[i]; in DGifSavedExtensionToGCB()
626 DGifCloseFile(GifFileType *GifFile, int *ErrorCode) in DGifCloseFile() argument
630 if (GifFile == NULL || GifFile->Private == NULL) in DGifCloseFile()
633 if (GifFile->Image.ColorMap) { in DGifCloseFile()
634 GifFreeMapObject(GifFile->Image.ColorMap); in DGifCloseFile()
635 GifFile->Image.ColorMap = NULL; in DGifCloseFile()
638 if (GifFile->SColorMap) { in DGifCloseFile()
639 GifFreeMapObject(GifFile->SColorMap); in DGifCloseFile()
640 GifFile->SColorMap = NULL; in DGifCloseFile()
643 if (GifFile->SavedImages) { in DGifCloseFile()
644 GifFreeSavedImages(GifFile); in DGifCloseFile()
645 GifFile->SavedImages = NULL; in DGifCloseFile()
648 GifFreeExtensions(&GifFile->ExtensionBlockCount, &GifFile->ExtensionBlocks); in DGifCloseFile()
650 Private = (GifFilePrivateType *) GifFile->Private; in DGifCloseFile()
656 free((char *)GifFile->Private); in DGifCloseFile()
657 free(GifFile); in DGifCloseFile()
664 free((char *)GifFile->Private); in DGifCloseFile()
665 free(GifFile); in DGifCloseFile()
669 free((char *)GifFile->Private); in DGifCloseFile()
670 free(GifFile); in DGifCloseFile()
680 DGifGetWord(GifFileType *GifFile, GifWord *Word) in DGifGetWord() argument
685 if (READ(GifFile, c, 2) != 2) { in DGifGetWord()
686 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetWord()
702 DGifGetCode(GifFileType *GifFile, int *CodeSize, GifByteType **CodeBlock) in DGifGetCode() argument
704 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetCode()
708 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetCode()
714 return DGifGetCodeNext(GifFile, CodeBlock); in DGifGetCode()
723 DGifGetCodeNext(GifFileType *GifFile, GifByteType **CodeBlock) in DGifGetCodeNext() argument
726 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetCodeNext()
730 if (READ(GifFile, &Buf, 1) != 1) { in DGifGetCodeNext()
731 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetCodeNext()
740 if (READ(GifFile, &((*CodeBlock)[1]), Buf) != Buf) { in DGifGetCodeNext()
741 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifGetCodeNext()
757 DGifSetupDecompress(GifFileType *GifFile) in DGifSetupDecompress() argument
762 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifSetupDecompress()
765 if (READ(GifFile, &CodeSize, 1) < 1) { /* Read Code size from file. */ in DGifSetupDecompress()
772 GifFile->Error = D_GIF_ERR_READ_FAILED; /* somewhat bogus error code */ in DGifSetupDecompress()
802 DGifDecompressLine(GifFileType *GifFile, GifPixelType *Line, int LineLen) in DGifDecompressLine() argument
808 GifFilePrivateType *Private = (GifFilePrivateType *) GifFile->Private; in DGifDecompressLine()
829 if (DGifDecompressInput(GifFile, &CrntCode) == GIF_ERROR) in DGifDecompressLine()
836 GifFile->Error = D_GIF_ERR_EOF_TOO_SOON; in DGifDecompressLine()
889 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; in DGifDecompressLine()
949 DGifGetLZCodes(GifFileType *GifFile, int *Code) in DGifGetLZCodes() argument
952 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifGetLZCodes()
956 GifFile->Error = D_GIF_ERR_NOT_READABLE; in DGifGetLZCodes()
960 if (DGifDecompressInput(GifFile, Code) == GIF_ERROR) in DGifGetLZCodes()
966 if (DGifGetCodeNext(GifFile, &CodeBlock) == GIF_ERROR) in DGifGetLZCodes()
988 DGifDecompressInput(GifFileType *GifFile, int *Code) in DGifDecompressInput() argument
997 GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; in DGifDecompressInput()
1003 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; in DGifDecompressInput()
1009 if (DGifBufferedInput(GifFile, Private->Buf, &NextByte) == GIF_ERROR) { in DGifDecompressInput()
1042 DGifBufferedInput(GifFileType *GifFile, GifByteType *Buf, GifByteType *NextByte) in DGifBufferedInput() argument
1047 if (READ(GifFile, Buf, 1) != 1) { in DGifBufferedInput()
1048 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifBufferedInput()
1056 GifFile->Error = D_GIF_ERR_IMAGE_DEFECT; in DGifBufferedInput()
1059 if (READ(GifFile, &Buf[1], Buf[0]) != Buf[0]) { in DGifBufferedInput()
1060 GifFile->Error = D_GIF_ERR_READ_FAILED; in DGifBufferedInput()
1080 DGifSlurp(GifFileType *GifFile) in DGifSlurp() argument
1088 GifFile->ExtensionBlocks = NULL; in DGifSlurp()
1089 GifFile->ExtensionBlockCount = 0; in DGifSlurp()
1092 if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR) in DGifSlurp()
1097 if (DGifGetImageDesc(GifFile) == GIF_ERROR) in DGifSlurp()
1100 sp = &GifFile->SavedImages[GifFile->ImageCount - 1]; in DGifSlurp()
1131 if (DGifGetLine(GifFile, in DGifSlurp()
1138 if (DGifGetLine(GifFile,sp->RasterBits,ImageSize)==GIF_ERROR) in DGifSlurp()
1142 if (GifFile->ExtensionBlocks) { in DGifSlurp()
1143 sp->ExtensionBlocks = GifFile->ExtensionBlocks; in DGifSlurp()
1144 sp->ExtensionBlockCount = GifFile->ExtensionBlockCount; in DGifSlurp()
1146 GifFile->ExtensionBlocks = NULL; in DGifSlurp()
1147 GifFile->ExtensionBlockCount = 0; in DGifSlurp()
1152 if (DGifGetExtension(GifFile,&ExtFunction,&ExtData) == GIF_ERROR) in DGifSlurp()
1156 if (GifAddExtensionBlock(&GifFile->ExtensionBlockCount, in DGifSlurp()
1157 &GifFile->ExtensionBlocks, in DGifSlurp()
1163 if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) in DGifSlurp()
1167 if (GifAddExtensionBlock(&GifFile->ExtensionBlockCount, in DGifSlurp()
1168 &GifFile->ExtensionBlocks, in DGifSlurp()
1184 if (GifFile->ImageCount == 0) { in DGifSlurp()
1185 GifFile->Error = D_GIF_ERR_NO_IMAG_DSCR; in DGifSlurp()