~brian-sidebotham/wxwidgets-cmake/wxpython-2.9.4

« back to all changes in this revision

Viewing changes to src/tiff/libtiff/tif_codec.c

  • Committer: Brian Sidebotham
  • Date: 2013-08-03 14:30:08 UTC
  • Revision ID: brian.sidebotham@gmail.com-20130803143008-c7806tkych1tp6fc
Initial import into Bazaar

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: tif_codec.c 47655 2007-07-22 15:36:51Z VZ $ */
 
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
{
 
104
        const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression);
 
105
 
 
106
        TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
 
107
            "%s compression support is not configured", c->name);
 
108
        return (0);
 
109
}
 
110
 
 
111
static int
 
112
NotConfigured(TIFF* tif, int scheme)
 
113
{
 
114
    (void) scheme;
 
115
    
 
116
    tif->tif_decodestatus = FALSE;
 
117
    tif->tif_setupdecode = _notConfigured;
 
118
    tif->tif_encodestatus = FALSE;
 
119
    tif->tif_setupencode = _notConfigured;
 
120
    return (1);
 
121
}
 
122
 
 
123
/************************************************************************/
 
124
/*                       TIFFIsCODECConfigured()                        */
 
125
/************************************************************************/
 
126
 
 
127
/**
 
128
 * Check whether we have working codec for the specific coding scheme.
 
129
 * 
 
130
 * @return returns 1 if the codec is configured and working. Otherwise
 
131
 * 0 will be returned.
 
132
 */
 
133
 
 
134
int
 
135
TIFFIsCODECConfigured(uint16 scheme)
 
136
{
 
137
        const TIFFCodec* codec = TIFFFindCODEC(scheme);
 
138
 
 
139
        if(codec == NULL) {
 
140
            return 0;
 
141
        }
 
142
        if(codec->init == NULL) {
 
143
            return 0;
 
144
        }
 
145
        if(codec->init != NotConfigured){
 
146
            return 1;
 
147
        }
 
148
        return 0;
 
149
}
 
150