Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright (C) 2010-2013 Bluecherry, LLC <https://www.bluecherrydvr.com>
0004  *
0005  * Original author:
0006  * Ben Collins <bcollins@ubuntu.com>
0007  *
0008  * Additional work by:
0009  * John Brooks <john.brooks@bluecherry.net>
0010  */
0011 
0012 #ifndef __SOLO6X10_JPEG_H
0013 #define __SOLO6X10_JPEG_H
0014 
0015 static const u8 jpeg_header[] = {
0016     0xff, 0xd8, 0xff, 0xfe, 0x00, 0x0d, 0x42, 0x6c,
0017     0x75, 0x65, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79,
0018     0x20, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x20, 0x16,
0019     0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c, 0x1a, 0x1c,
0020     0x24, 0x22, 0x20, 0x26, 0x30, 0x50, 0x34, 0x30,
0021     0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a, 0x3a, 0x50,
0022     0x74, 0x66, 0x7a, 0x78, 0x72, 0x66, 0x70, 0x6e,
0023     0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88, 0xae, 0x8a,
0024     0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae, 0xbe, 0xc4,
0025     0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2, 0xf2, 0xe0,
0026     0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6, 0xff, 0xdb,
0027     0x00, 0x43, 0x01, 0x22, 0x24, 0x24, 0x30, 0x2a,
0028     0x30, 0x5e, 0x34, 0x34, 0x5e, 0xc6, 0x84, 0x70,
0029     0x84, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0030     0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0031     0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0032     0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0033     0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0034     0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0035     0xc6, 0xc6, 0xc6, 0xff, 0xc4, 0x01, 0xa2, 0x00,
0036     0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
0037     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0038     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0039     0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01,
0040     0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04,
0041     0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, 0x02, 0x03,
0042     0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41,
0043     0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14,
0044     0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1,
0045     0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62,
0046     0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19,
0047     0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34,
0048     0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44,
0049     0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
0050     0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64,
0051     0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74,
0052     0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84,
0053     0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93,
0054     0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2,
0055     0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa,
0056     0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
0057     0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
0058     0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0059     0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5,
0060     0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3,
0061     0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01,
0062     0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0063     0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0064     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0065     0x08, 0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01,
0066     0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,
0067     0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02,
0068     0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12,
0069     0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32,
0070     0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, 0xb1, 0xc1,
0071     0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72,
0072     0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1,
0073     0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29,
0074     0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43,
0075     0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53,
0076     0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63,
0077     0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73,
0078     0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82,
0079     0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
0080     0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
0081     0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
0082     0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0083     0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,
0084     0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5,
0085     0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, 0xe3, 0xe4,
0086     0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3,
0087     0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff,
0088     0xc0, 0x00, 0x11, 0x08, 0x00, 0xf0, 0x02, 0xc0,
0089     0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03,
0090     0x11, 0x01, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01,
0091     0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00
0092 };
0093 
0094 /* This is the byte marker for the start of SOF0: 0xffc0 marker */
0095 #define SOF0_START  575
0096 
0097 /* This is the byte marker for the start of the DQT */
0098 #define DQT_START   17
0099 #define DQT_LEN     138
0100 static const u8 jpeg_dqt[4][DQT_LEN] = {
0101     {
0102         0xff, 0xdb, 0x00, 0x43, 0x00,
0103         0x08, 0x06, 0x06, 0x07, 0x06, 0x05, 0x08, 0x07,
0104         0x07, 0x07, 0x09, 0x09, 0x08, 0x0a, 0x0c, 0x14,
0105         0x0d, 0x0c, 0x0b, 0x0b, 0x0c, 0x19, 0x12, 0x13,
0106         0x0f, 0x14, 0x1d, 0x1a, 0x1f, 0x1e, 0x1d, 0x1a,
0107         0x1c, 0x1c, 0x20, 0x24, 0x2e, 0x27, 0x20, 0x22,
0108         0x2c, 0x23, 0x1c, 0x1c, 0x28, 0x37, 0x29, 0x2c,
0109         0x30, 0x31, 0x34, 0x34, 0x34, 0x1f, 0x27, 0x39,
0110         0x3d, 0x38, 0x32, 0x3c, 0x2e, 0x33, 0x34, 0x32,
0111         0xff, 0xdb, 0x00, 0x43, 0x01,
0112         0x09, 0x09, 0x09, 0x0c, 0x0b, 0x0c, 0x18, 0x0d,
0113         0x0d, 0x18, 0x32, 0x21, 0x1c, 0x21, 0x32, 0x32,
0114         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0115         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0116         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0117         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0118         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0119         0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32
0120     }, {
0121         0xff, 0xdb, 0x00, 0x43, 0x00,
0122         0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e,
0123         0x0d, 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28,
0124         0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25,
0125         0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33,
0126         0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44,
0127         0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57,
0128         0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71,
0129         0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63,
0130         0xff, 0xdb, 0x00, 0x43, 0x01,
0131         0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a,
0132         0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 0x63, 0x63,
0133         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
0134         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
0135         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
0136         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
0137         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
0138         0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63
0139     }, {
0140         0xff, 0xdb, 0x00, 0x43, 0x00,
0141         0x20, 0x16, 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c,
0142         0x1a, 0x1c, 0x24, 0x22, 0x20, 0x26, 0x30, 0x50,
0143         0x34, 0x30, 0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a,
0144         0x3a, 0x50, 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66,
0145         0x70, 0x6e, 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88,
0146         0xae, 0x8a, 0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae,
0147         0xbe, 0xc4, 0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2,
0148         0xf2, 0xe0, 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6,
0149         0xff, 0xdb, 0x00, 0x43, 0x01,
0150         0x22, 0x24, 0x24, 0x30, 0x2a, 0x30, 0x5e, 0x34,
0151         0x34, 0x5e, 0xc6, 0x84, 0x70, 0x84, 0xc6, 0xc6,
0152         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0153         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0154         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0155         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0156         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
0157         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6
0158     }, {
0159         0xff, 0xdb, 0x00, 0x43, 0x00,
0160         0x30, 0x21, 0x24, 0x2a, 0x24, 0x1e, 0x30, 0x2a,
0161         0x27, 0x2a, 0x36, 0x33, 0x30, 0x39, 0x48, 0x78,
0162         0x4e, 0x48, 0x42, 0x42, 0x48, 0x93, 0x69, 0x6f,
0163         0x57, 0x78, 0xae, 0x99, 0xb7, 0xb4, 0xab, 0x99,
0164         0xa8, 0xa5, 0xc0, 0xd8, 0xff, 0xea, 0xc0, 0xcc,
0165         0xff, 0xcf, 0xa5, 0xa8, 0xf0, 0xff, 0xf3, 0xff,
0166         0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xe7, 0xff,
0167         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0168         0xff, 0xdb, 0x00, 0x43, 0x01,
0169         0x33, 0x36, 0x36, 0x48, 0x3f, 0x48, 0x8d, 0x4e,
0170         0x4e, 0x8d, 0xff, 0xc6, 0xa8, 0xc6, 0xff, 0xff,
0171         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0172         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0173         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0174         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0175         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0176         0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
0177     }
0178 };
0179 
0180 #endif /* __SOLO6X10_JPEG_H */