libopenh264enc: Return a more sensible error code in some init failure paths
[ffmpeg.git] / libavcodec / tiff.h
1 /*
2  * TIFF tables
3  * Copyright (c) 2006 Konstantin Shishkov
4  *
5  * This file is part of Libav.
6  *
7  * Libav is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * Libav is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with Libav; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 /**
23  * @file
24  * TIFF tables
25  * @author Konstantin Shishkov
26  */
27
28 #ifndef AVCODEC_TIFF_H
29 #define AVCODEC_TIFF_H
30
31 #include <stdint.h>
32
33 /** abridged list of TIFF tags */
34 enum TiffTags {
35     TIFF_SUBFILE            = 0xfe,
36     TIFF_WIDTH              = 0x100,
37     TIFF_HEIGHT,
38     TIFF_BPP,
39     TIFF_COMPR,
40     TIFF_PHOTOMETRIC        = 0x106,
41     TIFF_FILL_ORDER         = 0x10A,
42     TIFF_STRIP_OFFS         = 0x111,
43     TIFF_SAMPLES_PER_PIXEL  = 0x115,
44     TIFF_ROWSPERSTRIP       = 0x116,
45     TIFF_STRIP_SIZE,
46     TIFF_XRES               = 0x11A,
47     TIFF_YRES               = 0x11B,
48     TIFF_PLANAR             = 0x11C,
49     TIFF_XPOS               = 0x11E,
50     TIFF_YPOS               = 0x11F,
51     TIFF_T4OPTIONS          = 0x124,
52     TIFF_T6OPTIONS,
53     TIFF_RES_UNIT           = 0x128,
54     TIFF_SOFTWARE_NAME      = 0x131,
55     TIFF_PREDICTOR          = 0x13D,
56     TIFF_PAL                = 0x140,
57     TIFF_YCBCR_COEFFICIENTS = 0x211,
58     TIFF_YCBCR_SUBSAMPLING  = 0x212,
59     TIFF_YCBCR_POSITIONING  = 0x213,
60     TIFF_REFERENCE_BW       = 0x214,
61 };
62
63 /** list of TIFF compression types */
64 enum TiffCompr {
65     TIFF_RAW = 1,
66     TIFF_CCITT_RLE,
67     TIFF_G3,
68     TIFF_G4,
69     TIFF_LZW,
70     TIFF_JPEG,
71     TIFF_NEWJPEG,
72     TIFF_ADOBE_DEFLATE,
73     TIFF_PACKBITS = 0x8005,
74     TIFF_DEFLATE  = 0x80B2,
75     TIFF_LZMA     = 0x886D,
76 };
77
78 enum TiffTypes {
79     TIFF_BYTE = 1,
80     TIFF_STRING,
81     TIFF_SHORT,
82     TIFF_LONG,
83     TIFF_RATIONAL,
84 };
85
86 enum TiffPhotometric {
87     TIFF_PHOTOMETRIC_NONE       = -1,
88     TIFF_PHOTOMETRIC_WHITE_IS_ZERO,      /* mono or grayscale, 0 is white */
89     TIFF_PHOTOMETRIC_BLACK_IS_ZERO,      /* mono or grayscale, 0 is black */
90     TIFF_PHOTOMETRIC_RGB,                /* RGB or RGBA*/
91     TIFF_PHOTOMETRIC_PALETTE,            /* Uses a palette */
92     TIFF_PHOTOMETRIC_ALPHA_MASK,         /* Transparency mask */
93     TIFF_PHOTOMETRIC_SEPARATED,          /* CMYK or some other ink set */
94     TIFF_PHOTOMETRIC_YCBCR,              /* YCbCr */
95     TIFF_PHOTOMETRIC_CIE_LAB    = 8,     /* 1976 CIE L*a*b* */
96     TIFF_PHOTOMETRIC_ICC_LAB,            /* ICC L*a*b* */
97     TIFF_PHOTOMETRIC_ITU_LAB,            /* ITU L*a*b* */
98     TIFF_PHOTOMETRIC_CFA        = 32803, /* Color Filter Array (DNG) */
99     TIFF_PHOTOMETRIC_LOG_L      = 32844, /* CIE Log2(L) */
100     TIFF_PHOTOMETRIC_LOG_LUV,            /* CIE Log L*u*v* */
101     TIFF_PHOTOMETRIC_LINEAR_RAW = 34892, /* Linear Raw (DNG) */
102 };
103
104 /** sizes of various TIFF field types (string size = 100)*/
105 static const uint8_t type_sizes[6] = {
106     0, 1, 100, 2, 4, 8
107 };
108
109 #endif /* AVCODEC_TIFF_H */