aarch64: Add assembly support for -fsanitize=hwaddress tagged globals.
[libav.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 */