LTP GCOV extension - code coverage report
Current view: directory - frmts/gtiff/libtiff - tif_codec.c
Test: gdal_filtered.info
Date: 2010-07-12 Instrumented lines: 21
Code covered: 33.3 % Executed lines: 7

       1                 : /* $Id: tif_codec.c,v 1.14 2010-03-10 18:56:48 bfriesen Exp $ */
       2                 : 
       3                 : /*
       4                 :  * Copyright (c) 1988-1997 Sam Leffler
       5                 :  * Copyright (c) 1991-1997 Silicon Graphics, Inc.
       6                 :  *
       7                 :  * Permission to use, copy, modify, distribute, and sell this software and 
       8                 :  * its documentation for any purpose is hereby granted without fee, provided
       9                 :  * that (i) the above copyright notices and this permission notice appear in
      10                 :  * all copies of the software and related documentation, and (ii) the names of
      11                 :  * Sam Leffler and Silicon Graphics may not be used in any advertising or
      12                 :  * publicity relating to the software without the specific, prior written
      13                 :  * permission of Sam Leffler and Silicon Graphics.
      14                 :  * 
      15                 :  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
      16                 :  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
      17                 :  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
      18                 :  * 
      19                 :  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
      20                 :  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
      21                 :  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
      22                 :  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
      23                 :  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
      24                 :  * OF THIS SOFTWARE.
      25                 :  */
      26                 : 
      27                 : /*
      28                 :  * TIFF Library
      29                 :  *
      30                 :  * Builtin Compression Scheme Configuration Support.
      31                 :  */
      32                 : #include "tiffiop.h"
      33                 : 
      34                 : static int NotConfigured(TIFF*, int);
      35                 : 
      36                 : #ifndef LZW_SUPPORT
      37                 : #define TIFFInitLZW NotConfigured
      38                 : #endif
      39                 : #ifndef PACKBITS_SUPPORT
      40                 : #define TIFFInitPackBits NotConfigured
      41                 : #endif
      42                 : #ifndef THUNDER_SUPPORT
      43                 : #define TIFFInitThunderScan NotConfigured
      44                 : #endif
      45                 : #ifndef NEXT_SUPPORT
      46                 : #define TIFFInitNeXT NotConfigured
      47                 : #endif
      48                 : #ifndef JPEG_SUPPORT
      49                 : #define TIFFInitJPEG NotConfigured
      50                 : #endif
      51                 : #ifndef OJPEG_SUPPORT
      52                 : #define TIFFInitOJPEG NotConfigured
      53                 : #endif
      54                 : #ifndef CCITT_SUPPORT
      55                 : #define TIFFInitCCITTRLE NotConfigured
      56                 : #define TIFFInitCCITTRLEW NotConfigured
      57                 : #define TIFFInitCCITTFax3 NotConfigured
      58                 : #define TIFFInitCCITTFax4 NotConfigured
      59                 : #endif
      60                 : #ifndef JBIG_SUPPORT
      61                 : #define TIFFInitJBIG NotConfigured
      62                 : #endif
      63                 : #ifndef ZIP_SUPPORT
      64                 : #define TIFFInitZIP NotConfigured
      65                 : #endif
      66                 : #ifndef PIXARLOG_SUPPORT
      67                 : #define TIFFInitPixarLog NotConfigured
      68                 : #endif
      69                 : #ifndef LOGLUV_SUPPORT
      70                 : #define TIFFInitSGILog NotConfigured
      71                 : #endif
      72                 : 
      73                 : /*
      74                 :  * Compression schemes statically built into the library.
      75                 :  */
      76                 : #ifdef VMS
      77                 : const TIFFCodec _TIFFBuiltinCODECS[] = {
      78                 : #else
      79                 : TIFFCodec _TIFFBuiltinCODECS[] = {
      80                 : #endif
      81                 :     { "None",   COMPRESSION_NONE, TIFFInitDumpMode },
      82                 :     { "LZW",    COMPRESSION_LZW,  TIFFInitLZW },
      83                 :     { "PackBits", COMPRESSION_PACKBITS, TIFFInitPackBits },
      84                 :     { "ThunderScan",  COMPRESSION_THUNDERSCAN,TIFFInitThunderScan },
      85                 :     { "NeXT",   COMPRESSION_NEXT, TIFFInitNeXT },
      86                 :     { "JPEG",   COMPRESSION_JPEG, TIFFInitJPEG },
      87                 :     { "Old-style JPEG", COMPRESSION_OJPEG,  TIFFInitOJPEG },
      88                 :     { "CCITT RLE",  COMPRESSION_CCITTRLE, TIFFInitCCITTRLE },
      89                 :     { "CCITT RLE/W",  COMPRESSION_CCITTRLEW,  TIFFInitCCITTRLEW },
      90                 :     { "CCITT Group 3",  COMPRESSION_CCITTFAX3,  TIFFInitCCITTFax3 },
      91                 :     { "CCITT Group 4",  COMPRESSION_CCITTFAX4,  TIFFInitCCITTFax4 },
      92                 :     { "ISO JBIG", COMPRESSION_JBIG, TIFFInitJBIG },
      93                 :     { "Deflate",  COMPRESSION_DEFLATE,  TIFFInitZIP },
      94                 :     { "AdobeDeflate",   COMPRESSION_ADOBE_DEFLATE , TIFFInitZIP }, 
      95                 :     { "PixarLog", COMPRESSION_PIXARLOG, TIFFInitPixarLog },
      96                 :     { "SGILog",   COMPRESSION_SGILOG, TIFFInitSGILog },
      97                 :     { "SGILog24", COMPRESSION_SGILOG24, TIFFInitSGILog },
      98                 :     { NULL,             0,                      NULL }
      99                 : };
     100                 : 
     101                 : static int
     102                 : _notConfigured(TIFF* tif)
     103               0 : {
     104               0 :   const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression);
     105                 :         char compression_code[20];
     106                 :         
     107               0 :         sprintf( compression_code, "%d", tif->tif_dir.td_compression );
     108               0 :   TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
     109                 :                      "%s compression support is not configured", 
     110                 :                      c ? c->name : compression_code );
     111               0 :   return (0);
     112                 : }
     113                 : 
     114                 : static int
     115                 : NotConfigured(TIFF* tif, int scheme)
     116               0 : {
     117                 :   (void) scheme;
     118                 : 
     119               0 :   tif->tif_fixuptags = _notConfigured;
     120               0 :   tif->tif_decodestatus = FALSE;
     121               0 :   tif->tif_setupdecode = _notConfigured;
     122               0 :   tif->tif_encodestatus = FALSE;
     123               0 :   tif->tif_setupencode = _notConfigured;
     124               0 :   return (1);
     125                 : }
     126                 : 
     127                 : /************************************************************************/
     128                 : /*                       TIFFIsCODECConfigured()                        */
     129                 : /************************************************************************/
     130                 : 
     131                 : /**
     132                 :  * Check whether we have working codec for the specific coding scheme.
     133                 :  *
     134                 :  * @return returns 1 if the codec is configured and working. Otherwise
     135                 :  * 0 will be returned.
     136                 :  */
     137                 : 
     138                 : int
     139                 : TIFFIsCODECConfigured(uint16 scheme)
     140            6926 : {
     141            6926 :   const TIFFCodec* codec = TIFFFindCODEC(scheme);
     142                 : 
     143            6926 :   if(codec == NULL) {
     144               0 :     return 0;
     145                 :   }
     146            6926 :   if(codec->init == NULL) {
     147               0 :     return 0;
     148                 :   }
     149            6926 :   if(codec->init != NotConfigured){
     150            6534 :     return 1;
     151                 :   }
     152             392 :   return 0;
     153                 : }
     154                 : 
     155                 : /*
     156                 :  * Local Variables:
     157                 :  * mode: c
     158                 :  * c-basic-offset: 8
     159                 :  * fill-column: 78
     160                 :  * End:
     161                 :  */

Generated by: LTP GCOV extension version 1.5