35 #define JP2_JP 0x6a502020
36 #define JP2_FTYP 0x66747970
37 #define JP2_JP2H 0x6a703268
38 #define JP2_IHDR 0x69686472
39 #define JP2_COLR 0x636f6c72
40 #define JP2_JP2C 0x6a703263
41 #define JP2_PCLR 0x70636c72
42 #define JP2_CMAP 0x636d6170
43 #define JP2_CDEF 0x63646566
44 #define JP2_DTBL 0x6474626c
45 #define JP2_BPCC 0x62706363
46 #define JP2_JP2 0x6a703220
47 #define JP2_RES 0x72657320
48 #define JP2_CAPTURE_RES 0x72657363
49 #define JP2_DISPLAY_RES 0x72657364
50 #define JP2_JP2I 0x6a703269
51 #define JP2_XML 0x786d6c20
52 #define JP2_UUID 0x75756964
53 #define JP2_UINF 0x75696e66
54 #define JP2_ULST 0x756c7374
55 #define JP2_URL 0x75726c20
56 #define JP2_ASOC 0x61736f63
57 #define JP2_LBL 0x6c626c20
60 #define JP2_MAX_NUM_UUIDS 128
61 const uint8_t
IPTC_UUID[16] = { 0x33, 0xC7, 0xA4, 0xD2, 0xB8, 0x1D, 0x47, 0x23,
62 0xA0, 0xBA, 0xF1, 0xA3, 0xE0, 0x97, 0xAD, 0x38 };
63 const uint8_t
XMP_UUID[16] = { 0xBE, 0x7A, 0xCF, 0xCB, 0x97, 0xA9, 0x42, 0xE8,
64 0x9C, 0x71, 0x99, 0x94, 0x91, 0xE3, 0xAF, 0xAC };
127 for (
int i = 0; i < 16; ++i)
141 uint8_t* (*handler)(
FileFormat *fileFormat, uint32_t *data_size);
182 bool compress_tile(uint16_t tile_index, uint8_t *p_data, uint64_t data_size);
185 void dump(uint32_t flag, FILE *out_stream);
192 uint8_t **header_data,
193 uint32_t *header_data_size,
198 bool read_ihdr( uint8_t *p_image_header_data,uint32_t image_header_size);
199 uint8_t*
write_ihdr( uint32_t *p_nb_bytes_written);
201 bool read_xml( uint8_t *p_xml_data, uint32_t xml_size);
202 uint8_t*
write_xml( uint32_t *p_nb_bytes_written);
203 bool read_uuid( uint8_t *p_header_data,uint32_t header_size);
204 double calc_res(uint16_t num, uint16_t den, uint8_t exponent);
205 bool read_res_box(uint32_t *
id, uint32_t *num, uint32_t *den,
206 uint32_t *exponent, uint8_t **p_resolution_data);
207 bool read_res( uint8_t *p_resolution_data,
208 uint32_t resolution_size);
209 void find_cf(
double x, uint32_t *num, uint32_t *den);
210 void write_res_box(
double resx,
double resy, uint32_t box_id,
211 uint8_t **current_res_ptr);
212 uint8_t*
write_res( uint32_t *p_nb_bytes_written);
213 uint8_t*
write_bpc( uint32_t *p_nb_bytes_written);
214 bool read_bpc( uint8_t *p_bpc_header_data,uint32_t bpc_header_size);
218 uint32_t cdef_header_size);
219 uint8_t*
write_colr( uint32_t *p_nb_bytes_written);
220 bool read_colr( uint8_t *p_colr_header_data,
221 uint32_t colr_header_size);
225 uint32_t component_mapping_header_size);
228 bool read_palette_clr( uint8_t *p_pclr_header_data, uint32_t pclr_header_size);
234 bool exec( std::vector<jp2_procedure> *procs) ;
237 bool read_jp( uint8_t *p_header_data,uint32_t header_size);
238 bool read_ftyp( uint8_t *p_header_data, uint32_t header_size) ;
240 bool read_jp2h( uint8_t *p_header_data, uint32_t header_size);
242 uint32_t *p_number_bytes_read, uint64_t p_box_max_size);
Definition: GrkImage.h:11
GRK_ENUM_COLOUR_SPACE
Definition: grok.h:331
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: BitIO.cpp:23
const uint8_t IPTC_UUID[16]
Definition: FileFormat.h:61
JP2_STATE
Definition: FileFormat.h:66
@ JP2_STATE_UNKNOWN
Definition: FileFormat.h:73
@ JP2_STATE_FILE_TYPE
Definition: FileFormat.h:69
@ JP2_STATE_SIGNATURE
Definition: FileFormat.h:68
@ JP2_STATE_CODESTREAM
Definition: FileFormat.h:71
@ JP2_STATE_NONE
Definition: FileFormat.h:67
@ JP2_STATE_HEADER
Definition: FileFormat.h:70
@ JP2_STATE_END_CODESTREAM
Definition: FileFormat.h:72
bool(* jp2_procedure)(FileFormat *fileFormat)
Definition: FileFormat.h:147
const uint8_t XMP_UUID[16]
Definition: FileFormat.h:63
JP2_IMG_STATE
Definition: FileFormat.h:76
@ JP2_IMG_STATE_UNKNOWN
Definition: FileFormat.h:77
@ JP2_IMG_STATE_NONE
Definition: FileFormat.h:77
Code stream index info.
Definition: grok.h:1161
Code stream info v2.
Definition: grok.h:1104
Compress parameters.
Definition: grok.h:446
Core decompress parameters.
Definition: grok.h:687
Plugin tile.
Definition: grok.h:1254
Association box (defined in ITU 15444-2 Annex M 11.1 )
Definition: FileFormat.h:103
std::string label
Definition: FileFormat.h:114
virtual ~AsocBox() override
Definition: FileFormat.h:104
void dealloc() override
Definition: FileFormat.h:107
std::vector< AsocBox * > children
Definition: FileFormat.h:115
Definition: FileFormat.h:135
bool(* handler)(FileFormat *fileFormat, uint8_t *p_header_data, uint32_t header_size)
Definition: FileFormat.h:137
uint32_t id
Definition: FileFormat.h:136
Definition: FileFormat.h:140
uint32_t m_size
Definition: FileFormat.h:143
uint8_t * m_data
Definition: FileFormat.h:142
Byte input-output stream.
Definition: BufferedStream.h:38
Definition: CodeStream.h:163
Component.
Definition: FileFormat.h:94
uint8_t bpc
Definition: FileFormat.h:97
ComponentInfo()
Definition: FileFormat.h:95
Definition: CodeStream.h:119
UUID.
Definition: FileFormat.h:121
UUIDBox(const uint8_t myuuid[16], uint8_t *buf, size_t size, bool owns)
Definition: FileFormat.h:125
UUIDBox()
Definition: FileFormat.h:122
uint8_t uuid[16]
Definition: FileFormat.h:130
virtual void dealloc()
Definition: util.h:259
uint8_t * buf
Definition: util.h:304
ICC profile, palette, channel definition.
Definition: grok.h:611