53#define GRK_BOX_SIZE 1024
54#define GRK_RESOLUTION_BOX_SIZE (4 + 4 + 10)
55#define JP2_MAX_NUM_UUIDS 128
56#define JP2_MAX_NUM_XML_BOXES 64
68typedef std::function<bool(uint8_t* headerData, uint32_t headerSize)>
BOX_FUNC;
81typedef std::function<uint8_t*(uint32_t* len)>
WRITE_FUNC;
106 memcpy(
uuid, myuuid, 16);
166 uint32_t
read_asoc(
AsocBox* parent, uint8_t** header_data, uint32_t* header_data_size,
168 bool read_asoc(uint8_t* header_data, uint32_t header_data_size);
180 bool read_box_header(
Box* box, uint8_t* p_data, uint32_t* bytesRead, uint64_t availableBytes);
186 bool exec(std::vector<PROCEDURE_FUNC>* procs);
227 std::unordered_map<uint32_t, BOX_FUNC>
header;
250 bool read_jp2h(uint8_t* headerData, uint32_t headerSize);
251 void skip(uint8_t** headerData, uint32_t* headerSize, uint32_t
skip);
254 double calc_res(uint16_t num, uint16_t den, uint8_t exponent);
255 bool read_ihdr(uint8_t* p_image_header_data, uint32_t image_header_size);
256 bool read_res_box(uint32_t*
id, uint32_t* num, uint32_t* den, uint32_t* exponent,
257 uint8_t** p_resolution_data);
258 bool read_res(uint8_t* p_resolution_data, uint32_t resolution_size);
259 bool read_bpc(uint8_t* p_bpc_header_data, uint32_t bpc_header_size);
261 bool read_colr(uint8_t* p_colr_header_data, uint32_t colr_header_size);
263 uint32_t component_mapping_header_size);
264 bool read_palette_clr(uint8_t* p_pclr_header_data, uint32_t pclr_header_size);
283 bool read_ftyp(uint8_t* headerData, uint32_t headerSize);
Stores header and data for an image.
Definition GrkImage.h:54
enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE
JPEG 2000 enumerated color spaces.
ResWindow.
Definition CompressedChunkCache.h:36
const uint32_t JP2_CAPTURE_RES
Resolution box (super-box).
Definition FileFormatJP2Family.h:41
const uint32_t JP2_JP2H
JPX file type.
Definition FileFormatJP2Family.h:33
const uint32_t JP2_XML
Intellectual property box.
Definition FileFormatJP2Family.h:47
const uint32_t JP2_JP2C
Display resolution box.
Definition FileFormatJP2Family.h:45
const uint32_t JP2_UUID
XML box.
Definition FileFormatJP2Family.h:48
const uint32_t JP2_PCLR
Colour specification box.
Definition FileFormatJP2Family.h:37
const uint32_t JP2_LBL
Associated data box.
Definition FileFormatJP2Family.h:50
const uint32_t JP2_IHDR
JP2 header box (super-box).
Definition FileFormatJP2Family.h:34
JP2_STATE
Definition FileFormatJP2Family.h:59
@ JP2_STATE_FILE_TYPE
Definition FileFormatJP2Family.h:62
@ JP2_STATE_SIGNATURE
Definition FileFormatJP2Family.h:61
@ JP2_STATE_CODESTREAM
Definition FileFormatJP2Family.h:64
@ JP2_STATE_NONE
Definition FileFormatJP2Family.h:60
@ JP2_STATE_HEADER
Definition FileFormatJP2Family.h:63
@ JP2_STATE_END_CODESTREAM
Definition FileFormatJP2Family.h:65
const uint32_t JP2_JP2I
Contiguous code stream box.
Definition FileFormatJP2Family.h:46
std::function< uint8_t *(uint32_t *len)> WRITE_FUNC
Definition FileFormatJP2Family.h:81
const uint32_t JP2_ASOC
UUID box.
Definition FileFormatJP2Family.h:49
const uint32_t JP2_DISPLAY_RES
Capture resolution box.
Definition FileFormatJP2Family.h:42
const uint32_t JP2_FTYP
JPEG 2000 signature.
Definition FileFormatJP2Family.h:27
const uint32_t JP2_SIG
JPEG 2000 signature box.
Definition FileFormatJP2Family.h:26
const uint32_t JP2_RREQ
Label box.
Definition FileFormatJP2Family.h:51
const uint32_t JP2_RES
Channel Definition box.
Definition FileFormatJP2Family.h:40
const uint32_t JP2_CDEF
Component Mapping box.
Definition FileFormatJP2Family.h:39
const uint32_t JP2_CMAP
Palette box.
Definition FileFormatJP2Family.h:38
const uint32_t JP2_JP
Definition FileFormatJP2Family.h:25
std::function< bool(uint8_t *headerData, uint32_t headerSize)> BOX_FUNC
Definition FileFormatJP2Family.h:68
const uint32_t JP2_COLR
Bits per component box.
Definition FileFormatJP2Family.h:36
const uint32_t JP2_JP2
File type box.
Definition FileFormatJP2Family.h:28
const uint32_t JP2_JPX
Definition FileFormatJP2Family.h:30
Buffer< uint8_t, AllocatorVanilla > Buffer8
Definition buffer.h:257
const uint32_t JP2_BPCC
Image header box.
Definition FileFormatJP2Family.h:35
const uint32_t JP2_JPH
File type fields.
Definition FileFormatJP2Family.h:29
Association box (defined in ITU 15444-2 Annex M 11.1 ).
Definition FileFormatJP2Family.h:121
std::string label
Definition FileFormatJP2Family.h:135
void dealloc() override
Definition FileFormatJP2Family.h:126
~AsocBox() override
Definition FileFormatJP2Family.h:122
std::vector< AsocBox * > children
Definition FileFormatJP2Family.h:136
Definition FileFormatJP2Family.h:91
Box()
Definition FileFormatJP2Family.h:92
uint32_t type
Definition FileFormatJP2Family.h:94
uint64_t byteCount
Definition FileFormatJP2Family.h:95
uint64_t length
Definition FileFormatJP2Family.h:93
WRITE_FUNC handler
Definition FileFormatJP2Family.h:85
BoxWriteHandler()
Definition FileFormatJP2Family.h:84
uint32_t size_
Definition FileFormatJP2Family.h:87
uint8_t * data_
Definition FileFormatJP2Family.h:86
uint8_t * buf() const
Definition buffer.h:235
virtual void dealloc()
Definition buffer.h:124
Definition FileFormatJP2Family.h:112
uint8_t bpc
Definition FileFormatJP2Family.h:114
ComponentInfo()
Definition FileFormatJP2Family.h:113
Definition FileFormatJP2Family.h:71
bool valid(void)
Definition FileFormatJP2Family.h:73
bool superBox_
Definition FileFormatJP2Family.h:78
BOX_FUNC handler_
Definition FileFormatJP2Family.h:77
FindHandlerInfo(BOX_FUNC handler, bool superBox)
Definition FileFormatJP2Family.h:72
Definition FileFormatJP2Family.h:99
UUIDBox()
Definition FileFormatJP2Family.h:100
UUIDBox(const uint8_t myuuid[16], uint8_t *buf, size_t size)
Definition FileFormatJP2Family.h:104
uint8_t uuid[16]
Definition FileFormatJP2Family.h:108
ICC profile, palette, channel definition.
Decompression parameters.