2 * Copyright (C) 2010-2013 Bluecherry, LLC <http://www.bluecherrydvr.com>
5 * Ben Collins <bcollins@ubuntu.com>
8 * John Brooks <john.brooks@bluecherry.net>
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #ifndef __SOLO6X10_JPEG_H
26 #define __SOLO6X10_JPEG_H
28 static const unsigned char jpeg_header[] = {
29 0xff, 0xd8, 0xff, 0xfe, 0x00, 0x0d, 0x42, 0x6c,
30 0x75, 0x65, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79,
31 0x20, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x20, 0x16,
32 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c, 0x1a, 0x1c,
33 0x24, 0x22, 0x20, 0x26, 0x30, 0x50, 0x34, 0x30,
34 0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a, 0x3a, 0x50,
35 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66, 0x70, 0x6e,
36 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88, 0xae, 0x8a,
37 0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae, 0xbe, 0xc4,
38 0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2, 0xf2, 0xe0,
39 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6, 0xff, 0xdb,
40 0x00, 0x43, 0x01, 0x22, 0x24, 0x24, 0x30, 0x2a,
41 0x30, 0x5e, 0x34, 0x34, 0x5e, 0xc6, 0x84, 0x70,
42 0x84, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
43 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
44 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
45 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
46 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
47 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
48 0xc6, 0xc6, 0xc6, 0xff, 0xc4, 0x01, 0xa2, 0x00,
49 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
50 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
52 0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01,
53 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04,
54 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, 0x02, 0x03,
55 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41,
56 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14,
57 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1,
58 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62,
59 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19,
60 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34,
61 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44,
62 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
63 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64,
64 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74,
65 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84,
66 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93,
67 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2,
68 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa,
69 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
70 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
71 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
72 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5,
73 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3,
74 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01,
75 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
76 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
77 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
78 0x08, 0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01,
79 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,
80 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02,
81 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12,
82 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32,
83 0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, 0xb1, 0xc1,
84 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72,
85 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1,
86 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29,
87 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43,
88 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53,
89 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63,
90 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73,
91 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82,
92 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
93 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
94 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
95 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
96 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,
97 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5,
98 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, 0xe3, 0xe4,
99 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3,
100 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff,
101 0xc0, 0x00, 0x11, 0x08, 0x00, 0xf0, 0x02, 0xc0,
102 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03,
103 0x11, 0x01, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01,
104 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00
107 /* This is the byte marker for the start of SOF0: 0xffc0 marker */
108 #define SOF0_START 575
110 /* This is the byte marker for the start of the DQT */
113 const unsigned char jpeg_dqt[4][DQT_LEN] = {
115 0xff, 0xdb, 0x00, 0x43, 0x00,
116 0x08, 0x06, 0x06, 0x07, 0x06, 0x05, 0x08, 0x07,
117 0x07, 0x07, 0x09, 0x09, 0x08, 0x0a, 0x0c, 0x14,
118 0x0d, 0x0c, 0x0b, 0x0b, 0x0c, 0x19, 0x12, 0x13,
119 0x0f, 0x14, 0x1d, 0x1a, 0x1f, 0x1e, 0x1d, 0x1a,
120 0x1c, 0x1c, 0x20, 0x24, 0x2e, 0x27, 0x20, 0x22,
121 0x2c, 0x23, 0x1c, 0x1c, 0x28, 0x37, 0x29, 0x2c,
122 0x30, 0x31, 0x34, 0x34, 0x34, 0x1f, 0x27, 0x39,
123 0x3d, 0x38, 0x32, 0x3c, 0x2e, 0x33, 0x34, 0x32,
124 0xff, 0xdb, 0x00, 0x43, 0x01,
125 0x09, 0x09, 0x09, 0x0c, 0x0b, 0x0c, 0x18, 0x0d,
126 0x0d, 0x18, 0x32, 0x21, 0x1c, 0x21, 0x32, 0x32,
127 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
128 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
129 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
130 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
131 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
132 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32
134 0xff, 0xdb, 0x00, 0x43, 0x00,
135 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e,
136 0x0d, 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28,
137 0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25,
138 0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33,
139 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44,
140 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57,
141 0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71,
142 0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63,
143 0xff, 0xdb, 0x00, 0x43, 0x01,
144 0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a,
145 0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 0x63, 0x63,
146 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
147 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
148 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
149 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
150 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
151 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63
153 0xff, 0xdb, 0x00, 0x43, 0x00,
154 0x20, 0x16, 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c,
155 0x1a, 0x1c, 0x24, 0x22, 0x20, 0x26, 0x30, 0x50,
156 0x34, 0x30, 0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a,
157 0x3a, 0x50, 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66,
158 0x70, 0x6e, 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88,
159 0xae, 0x8a, 0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae,
160 0xbe, 0xc4, 0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2,
161 0xf2, 0xe0, 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6,
162 0xff, 0xdb, 0x00, 0x43, 0x01,
163 0x22, 0x24, 0x24, 0x30, 0x2a, 0x30, 0x5e, 0x34,
164 0x34, 0x5e, 0xc6, 0x84, 0x70, 0x84, 0xc6, 0xc6,
165 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
166 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
167 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
168 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
169 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
170 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6
172 0xff, 0xdb, 0x00, 0x43, 0x00,
173 0x30, 0x21, 0x24, 0x2a, 0x24, 0x1e, 0x30, 0x2a,
174 0x27, 0x2a, 0x36, 0x33, 0x30, 0x39, 0x48, 0x78,
175 0x4e, 0x48, 0x42, 0x42, 0x48, 0x93, 0x69, 0x6f,
176 0x57, 0x78, 0xae, 0x99, 0xb7, 0xb4, 0xab, 0x99,
177 0xa8, 0xa5, 0xc0, 0xd8, 0xff, 0xea, 0xc0, 0xcc,
178 0xff, 0xcf, 0xa5, 0xa8, 0xf0, 0xff, 0xf3, 0xff,
179 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xe7, 0xff,
180 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
181 0xff, 0xdb, 0x00, 0x43, 0x01,
182 0x33, 0x36, 0x36, 0x48, 0x3f, 0x48, 0x8d, 0x4e,
183 0x4e, 0x8d, 0xff, 0xc6, 0xa8, 0xc6, 0xff, 0xff,
184 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
185 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
186 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
187 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
188 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
189 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
193 #endif /* __SOLO6X10_JPEG_H */