00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __MXCPC_MXPEG_NAMESPACE_H__
00029 #define __MXCPC_MXPEG_NAMESPACE_H__
00030
00031
00032
00033 #include <mxcpc_namespace.h>
00034
00035
00036
00039 namespace mxcpc_mxpeg {
00040
00041 const mxcpc::u8 MarkerId_SOI = 0xd8;
00042 const mxcpc::u8 MarkerId_APP0 = 0xe0;
00043 const mxcpc::u8 MarkerId_DQT = 0xdb;
00044 const mxcpc::u8 MarkerId_SOF0 = 0xc0;
00045 const mxcpc::u8 MarkerId_DHT = 0xc4;
00046 const mxcpc::u8 MarkerId_SOS = 0xda;
00047 const mxcpc::u8 MarkerId_EOI = 0xd9;
00048
00050 typedef struct {
00051 mxcpc::u8 ff;
00052 mxcpc::u8 app0_marker;
00053 mxcpc::u8 len_hi, len_lo;
00054 char id[5];
00055 mxcpc::u8 major_vers, minor_vers;
00056 mxcpc::u8 units;
00057 mxcpc::u8 xdpu_hi, xdpu_lo;
00058 mxcpc::u8 ydpu_hi, ydpu_lo;
00059 mxcpc::u8 thumbnail_x;
00060 mxcpc::u8 thumbnail_y;
00061 }
00062 APP0;
00063
00065 typedef struct {
00066 mxcpc::u8 ff;
00067 mxcpc::u8 marker;
00068 mxcpc::u8 len_hi, len_lo;
00069 mxcpc::u8 data_precision;
00070 mxcpc::u8 y_sz_hi, y_sz_lo;
00071 mxcpc::u8 x_sz_hi, x_sz_lo;
00072 mxcpc::u8 num_components;
00073 struct {
00074 mxcpc::u8 component_id;
00075 mxcpc::u8 sampl_fact;
00076 mxcpc::u8 quant_tbl_no;
00077 }
00078 components[3];
00079 }
00080 SOF0;
00081
00083 typedef struct {
00084 mxcpc::u8 ff;
00085 mxcpc::u8 sos_marker;
00086 mxcpc::u8 sz_hi;
00087 mxcpc::u8 sz_lo;
00088 mxcpc::u8 comps_in_scan;
00089 struct {
00090 mxcpc::u8 comp_id;
00091 mxcpc::u8 td_ta;
00092 }
00093 components[3];
00094 mxcpc::u8 Ss;
00095 mxcpc::u8 Se;
00096 mxcpc::u8 Ah_Al;
00097 }
00098 SOS;
00099
00100 };
00101
00102
00103
00104 #endif // __MXCPC_MXPEG_NAMESPACE_H__
00105