Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[cascardo/linux.git] / drivers / staging / media / solo6x10 / solo6x10-jpeg.h
1 /*
2  * Copyright (C) 2010-2013 Bluecherry, LLC <http://www.bluecherrydvr.com>
3  *
4  * Original author:
5  * Ben Collins <bcollins@ubuntu.com>
6  *
7  * Additional work by:
8  * John Brooks <john.brooks@bluecherry.net>
9  *
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.
14  *
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.
19  *
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.
23  */
24
25 #ifndef __SOLO6X10_JPEG_H
26 #define __SOLO6X10_JPEG_H
27
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
105 };
106
107 /* This is the byte marker for the start of SOF0: 0xffc0 marker */
108 #define SOF0_START      575
109
110 /* This is the byte marker for the start of the DQT */
111 #define DQT_START       17
112 #define DQT_LEN         138
113 const unsigned char jpeg_dqt[4][DQT_LEN] = {
114         {
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
133         }, {
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
152         }, {
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
171         }, {
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
190         }
191 };
192
193 #endif /* __SOLO6X10_JPEG_H */