add multiple inclusion guards to headers
[libav.git] / libavcodec / indeo2data.h
CommitLineData
04d7f601 1/*
02c1592f 2 * Intel Indeo 2 codec
04d7f601
DB
3 * copyright (c) 2005 Konstantin Shishkov
4 *
b78e7197
DB
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
04d7f601
DB
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
b78e7197 10 * version 2.1 of the License, or (at your option) any later version.
04d7f601 11 *
b78e7197 12 * FFmpeg is distributed in the hope that it will be useful,
04d7f601
DB
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
b78e7197 18 * License along with FFmpeg; if not, write to the Free Software
04d7f601
DB
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
699b3f99
MR
22#ifndef AVCODEC_INDEO2DATA_H
23#define AVCODEC_INDEO2DATA_H
24
99545457
MR
25#include <stdint.h>
26
856dbbff
MN
27#define IR2_CODES 143
28static const uint16_t ir2_codes[IR2_CODES][2] = {
ef56de32 29#ifdef ALT_BITSTREAM_READER_LE
115329f1
DB
30{0x0000, 3}, {0x0004, 3}, {0x0006, 3}, {0x0001, 5},
31{0x0009, 5}, {0x0019, 5}, {0x000D, 5}, {0x001D, 5},
32{0x0023, 6}, {0x0013, 6}, {0x0033, 6}, {0x000B, 6},
33{0x002B, 6}, {0x001B, 6}, {0x0007, 8}, {0x0087, 8},
34{0x0027, 8}, {0x00A7, 8}, {0x0067, 8}, {0x00E7, 8},
35{0x0097, 8}, {0x0057, 8}, {0x0037, 8}, {0x00B7, 8},
36{0x00F7, 8}, {0x000F, 9}, {0x008F, 9}, {0x018F, 9},
37{0x014F, 9}, {0x00CF, 9}, {0x002F, 9}, {0x012F, 9},
38{0x01AF, 9}, {0x006F, 9}, {0x00EF, 9}, {0x01EF, 9},
39{0x001F, 10}, {0x021F, 10}, {0x011F, 10}, {0x031F, 10},
40{0x009F, 10}, {0x029F, 10}, {0x019F, 10}, {0x039F, 10},
41{0x005F, 10}, {0x025F, 10}, {0x015F, 10}, {0x035F, 10},
42{0x00DF, 10}, {0x02DF, 10}, {0x01DF, 10}, {0x03DF, 10},
43{0x003F, 13}, {0x103F, 13}, {0x083F, 13}, {0x183F, 13},
44{0x043F, 13}, {0x143F, 13}, {0x0C3F, 13}, {0x1C3F, 13},
45{0x023F, 13}, {0x123F, 13}, {0x0A3F, 13}, {0x1A3F, 13},
46{0x063F, 13}, {0x163F, 13}, {0x0E3F, 13}, {0x1E3F, 13},
47{0x013F, 13}, {0x113F, 13}, {0x093F, 13}, {0x193F, 13},
48{0x053F, 13}, {0x153F, 13}, {0x0D3F, 13}, {0x1D3F, 13},
49{0x033F, 13}, {0x133F, 13}, {0x0B3F, 13}, {0x1B3F, 13},
50{0x073F, 13}, {0x173F, 13}, {0x0F3F, 13}, {0x1F3F, 13},
51{0x00BF, 13}, {0x10BF, 13}, {0x08BF, 13}, {0x18BF, 13},
52{0x04BF, 13}, {0x14BF, 13}, {0x0CBF, 13}, {0x1CBF, 13},
53{0x02BF, 13}, {0x12BF, 13}, {0x0ABF, 13}, {0x1ABF, 13},
54{0x06BF, 13}, {0x16BF, 13}, {0x0EBF, 13}, {0x1EBF, 13},
55{0x01BF, 13}, {0x11BF, 13}, {0x09BF, 13}, {0x19BF, 13},
56{0x05BF, 13}, {0x15BF, 13}, {0x0DBF, 13}, {0x1DBF, 13},
57{0x03BF, 13}, {0x13BF, 13}, {0x0BBF, 13}, {0x1BBF, 13},
58{0x07BF, 13}, {0x17BF, 13}, {0x0FBF, 13}, {0x1FBF, 13},
59{0x007F, 14}, {0x207F, 14}, {0x107F, 14}, {0x307F, 14},
60{0x087F, 14}, {0x287F, 14}, {0x187F, 14}, {0x387F, 14},
61{0x047F, 14}, {0x247F, 14}, {0x147F, 14}, {0x0002, 3},
62{0x0011, 5}, {0x0005, 5}, {0x0015, 5}, {0x0003, 6},
63{0x003B, 6}, {0x0047, 8}, {0x00C7, 8}, {0x0017, 8},
64{0x00D7, 8}, {0x0077, 8}, {0x010F, 9}, {0x004F, 9},
ef56de32
MN
65{0x01CF, 9}, {0x00AF, 9}, {0x016F, 9},
66#else
856dbbff
MN
67 {0x0000, 3}, {0x0001, 3}, {0x0003, 3}, {0x0010, 5},
68 {0x0012, 5}, {0x0013, 5}, {0x0016, 5}, {0x0017, 5},
69 {0x0031, 6}, {0x0032, 6}, {0x0033, 6}, {0x0034, 6},
70 {0x0035, 6}, {0x0036, 6}, {0x00E0, 8}, {0x00E1, 8},
71 {0x00E4, 8}, {0x00E5, 8}, {0x00E6, 8}, {0x00E7, 8},
72 {0x00E9, 8}, {0x00EA, 8}, {0x00EC, 8}, {0x00ED, 8},
73 {0x00EF, 8}, {0x01E0, 9}, {0x01E2, 9}, {0x01E3, 9},
74 {0x01E5, 9}, {0x01E6, 9}, {0x01E8, 9}, {0x01E9, 9},
75 {0x01EB, 9}, {0x01EC, 9}, {0x01EE, 9}, {0x01EF, 9},
76 {0x03E0, 10}, {0x03E1, 10}, {0x03E2, 10}, {0x03E3, 10},
77 {0x03E4, 10}, {0x03E5, 10}, {0x03E6, 10}, {0x03E7, 10},
78 {0x03E8, 10}, {0x03E9, 10}, {0x03EA, 10}, {0x03EB, 10},
79 {0x03EC, 10}, {0x03ED, 10}, {0x03EE, 10}, {0x03EF, 10},
80 {0x1F80, 13}, {0x1F81, 13}, {0x1F82, 13}, {0x1F83, 13},
81 {0x1F84, 13}, {0x1F85, 13}, {0x1F86, 13}, {0x1F87, 13},
82 {0x1F88, 13}, {0x1F89, 13}, {0x1F8A, 13}, {0x1F8B, 13},
83 {0x1F8C, 13}, {0x1F8D, 13}, {0x1F8E, 13}, {0x1F8F, 13},
84 {0x1F90, 13}, {0x1F91, 13}, {0x1F92, 13}, {0x1F93, 13},
85 {0x1F94, 13}, {0x1F95, 13}, {0x1F96, 13}, {0x1F97, 13},
86 {0x1F98, 13}, {0x1F99, 13}, {0x1F9A, 13}, {0x1F9B, 13},
87 {0x1F9C, 13}, {0x1F9D, 13}, {0x1F9E, 13}, {0x1F9F, 13},
88 {0x1FA0, 13}, {0x1FA1, 13}, {0x1FA2, 13}, {0x1FA3, 13},
89 {0x1FA4, 13}, {0x1FA5, 13}, {0x1FA6, 13}, {0x1FA7, 13},
90 {0x1FA8, 13}, {0x1FA9, 13}, {0x1FAA, 13}, {0x1FAB, 13},
91 {0x1FAC, 13}, {0x1FAD, 13}, {0x1FAE, 13}, {0x1FAF, 13},
92 {0x1FB0, 13}, {0x1FB1, 13}, {0x1FB2, 13}, {0x1FB3, 13},
93 {0x1FB4, 13}, {0x1FB5, 13}, {0x1FB6, 13}, {0x1FB7, 13},
94 {0x1FB8, 13}, {0x1FB9, 13}, {0x1FBA, 13}, {0x1FBB, 13},
95 {0x1FBC, 13}, {0x1FBD, 13}, {0x1FBE, 13}, {0x1FBF, 13},
96 {0x3F80, 14}, {0x3F81, 14}, {0x3F82, 14}, {0x3F83, 14},
97 {0x3F84, 14}, {0x3F85, 14}, {0x3F86, 14}, {0x3F87, 14},
98 {0x3F88, 14}, {0x3F89, 14}, {0x3F8A, 14}, {0x0002, 3},
99 {0x0011, 5}, {0x0014, 5}, {0x0015, 5}, {0x0030, 6},
100 {0x0037, 6}, {0x00E2, 8}, {0x00E3, 8}, {0x00E8, 8},
101 {0x00EB, 8}, {0x00EE, 8}, {0x01E1, 9}, {0x01E4, 9},
102 {0x01E7, 9}, {0x01EA, 9}, {0x01ED, 9}
ef56de32 103#endif
856dbbff
MN
104};
105
106static const uint8_t ir2_luma_table[256] = {
107 0x80, 0x80, 0x84, 0x84, 0x7C, 0x7C, 0x7F, 0x85,
108 0x81, 0x7B, 0x85, 0x7F, 0x7B, 0x81, 0x8C, 0x8C,
109 0x74, 0x74, 0x83, 0x8D, 0x7D, 0x73, 0x8D, 0x83,
110 0x73, 0x7D, 0x77, 0x89, 0x89, 0x77, 0x89, 0x77,
115329f1 111 0x77, 0x89, 0x8C, 0x95, 0x74, 0x6B, 0x95, 0x8C,
856dbbff 112 0x6B, 0x74, 0x7C, 0x90, 0x84, 0x70, 0x90, 0x7C,
115329f1 113 0x70, 0x84, 0x96, 0x96, 0x6A, 0x6A, 0x82, 0x98,
856dbbff 114 0x7E, 0x68, 0x98, 0x82, 0x68, 0x7E, 0x97, 0xA2,
115329f1 115 0x69, 0x5E, 0xA2, 0x97, 0x5E, 0x69, 0xA2, 0xA2,
856dbbff 116 0x5E, 0x5E, 0x8B, 0xA3, 0x75, 0x5D, 0xA3, 0x8B,
115329f1 117 0x5D, 0x75, 0x71, 0x95, 0x8F, 0x6B, 0x95, 0x71,
856dbbff 118 0x6B, 0x8F, 0x78, 0x9D, 0x88, 0x63, 0x9D, 0x78,
115329f1 119 0x63, 0x88, 0x7F, 0xA7, 0x81, 0x59, 0xA7, 0x7F,
856dbbff 120 0x59, 0x81, 0xA4, 0xB1, 0x5C, 0x4F, 0xB1, 0xA4,
115329f1 121 0x4F, 0x5C, 0x96, 0xB1, 0x6A, 0x4F, 0xB1, 0x96,
856dbbff 122 0x4F, 0x6A, 0xB2, 0xB2, 0x4E, 0x4E, 0x65, 0x9B,
115329f1 123 0x9B, 0x65, 0x9B, 0x65, 0x65, 0x9B, 0x89, 0xB4,
856dbbff 124 0x77, 0x4C, 0xB4, 0x89, 0x4C, 0x77, 0x6A, 0xA3,
115329f1 125 0x96, 0x5D, 0xA3, 0x6A, 0x5D, 0x96, 0x73, 0xAC,
856dbbff 126 0x8D, 0x54, 0xAC, 0x73, 0x54, 0x8D, 0xB4, 0xC3,
115329f1 127 0x4C, 0x3D, 0xC3, 0xB4, 0x3D, 0x4C, 0xA4, 0xC3,
856dbbff 128 0x5C, 0x3D, 0xC3, 0xA4, 0x3D, 0x5C, 0xC4, 0xC4,
115329f1 129 0x3C, 0x3C, 0x96, 0xC6, 0x6A, 0x3A, 0xC6, 0x96,
856dbbff 130 0x3A, 0x6A, 0x7C, 0xBA, 0x84, 0x46, 0xBA, 0x7C,
115329f1 131 0x46, 0x84, 0x5B, 0xAB, 0xA5, 0x55, 0xAB, 0x5B,
856dbbff 132 0x55, 0xA5, 0x63, 0xB4, 0x9D, 0x4C, 0xB4, 0x63,
115329f1 133 0x4C, 0x9D, 0x86, 0xCA, 0x7A, 0x36, 0xCA, 0x86,
856dbbff 134 0x36, 0x7A, 0xB6, 0xD7, 0x4A, 0x29, 0xD7, 0xB6,
115329f1 135 0x29, 0x4A, 0xC8, 0xD7, 0x38, 0x29, 0xD7, 0xC8,
856dbbff 136 0x29, 0x38, 0xA4, 0xD8, 0x5C, 0x28, 0xD8, 0xA4,
115329f1 137 0x28, 0x5C, 0x6C, 0xC1, 0x94, 0x3F, 0xC1, 0x6C,
856dbbff
MN
138 0x3F, 0x94, 0xD9, 0xD9, 0x27, 0x27, 0x80, 0x80
139};
699b3f99
MR
140
141#endif