26typedef std::function<bool(uint8_t* headerData, uint16_t header_size)>
MARKER_FUNC;
62 void dump(uint32_t flag, FILE* outputFileStream);
109 void addMarker(uint16_t
id, uint64_t pos, uint32_t len);
117 bool read_mct(uint8_t* headerData, uint16_t header_size);
125 bool read_mcc(uint8_t* headerData, uint16_t header_size);
133 bool read_mco(uint8_t* headerData, uint16_t header_size);
142 bool read_cbd(uint8_t* headerData, uint16_t header_size);
149 bool read_rgn(uint8_t* headerData, uint16_t header_size);
162 bool read_siz(uint8_t* headerData, uint16_t header_size);
169 bool read_cap(uint8_t* headerData, uint16_t header_size);
177 bool read_com(uint8_t* headerData, uint16_t header_size);
185 bool read_cod(uint8_t* headerData, uint16_t header_size);
192 bool read_poc(uint8_t* headerData, uint16_t header_size);
200 bool read_crg(uint8_t* headerData, uint16_t header_size);
207 bool read_tlm(uint8_t* headerData, uint16_t header_size);
215 bool read_plm(uint8_t* headerData, uint16_t header_size);
223 bool read_plt(uint8_t* headerData, uint16_t header_size);
231 bool read_ppm(uint8_t* headerData, uint16_t header_size);
239 bool read_ppt(uint8_t* headerData, uint16_t header_size);
247 bool read_sot(uint8_t* headerData, uint16_t header_size);
255 bool read_SPCod_SPCoc(uint16_t compno, uint8_t* headerData, uint16_t* header_size);
267 bool read_SQcd_SQcc(
bool fromQCC, uint16_t compno, uint8_t* headerData, uint16_t* header_size);
289 bool read_coc(uint8_t* headerData, uint16_t header_size);
296 bool read_qcd(uint8_t* headerData, uint16_t header_size);
304 bool read_qcc(uint8_t* headerData, uint16_t header_size);
CodeStreamInfo * getCodeStreamInfo(void)
Definition CodeStreamDecompress.cpp:141
void addMarker(uint16_t id, uint64_t pos, uint32_t len)
Add main header marker information.
Definition CodeStreamDecompress.cpp:617
std::map< uint16_t, marker_handler * > marker_map
Definition CodeStreamDecompress.h:317
void dump_image_header(GrkImage *image, bool dev_dump_flag, FILE *outputFileStream)
Dump an image header structure.
Definition CodeStreamDecompress.cpp:1085
bool decompressTiles(void)
Definition CodeStreamDecompress.cpp:454
bool isDecodingTilePartHeader()
Definition CodeStreamDecompress.cpp:145
bool findNextSOT(TileProcessor *tileProcessor)
Definition CodeStreamDecompress.cpp:860
GrkImage * outputImage_
Definition CodeStreamDecompress.h:325
bool headerRead_
Definition CodeStreamDecompress.h:322
void dump_MH_info(FILE *outputFileStream)
Definition CodeStreamDecompress.cpp:1075
bool read_plm(uint8_t *headerData, uint16_t header_size)
Reads a PLM marker (Packet length, main header marker)
Definition CodeStreamDecompress_Markers.cpp:476
bool needsHeaderRead(void)
Definition CodeStreamDecompress.cpp:111
bool setDecompressRegion(grk_rect_double region)
Definition CodeStreamDecompress.cpp:244
bool merge_ppm(CodingParams *p_cp)
Merges all PPM markers read (Packed headers, main header)
Definition CodeStreamDecompress_Markers.cpp:515
void init(grk_decompress_core_params *p_param)
Definition CodeStreamDecompress.cpp:353
bool createOutputImage(void)
Definition CodeStreamDecompress.cpp:759
GrkImage * getImage(void)
Definition CodeStreamDecompress.cpp:162
bool read_soc()
Reads a SOC marker (Start of Codestream)
Definition CodeStreamDecompress_Markers.cpp:1852
bool process_marker(const marker_handler *marker_handler, uint16_t marker_size)
Definition CodeStreamDecompress.cpp:889
void dump(uint32_t flag, FILE *outputFileStream)
Definition CodeStreamDecompress.cpp:1041
bool decompress(grk_plugin_tile *tile)
Definition CodeStreamDecompress.cpp:366
bool read_rgn(uint8_t *headerData, uint16_t header_size)
Reads a RGN marker (Region Of Interest)
Definition CodeStreamDecompress_Markers.cpp:675
bool read_mco(uint8_t *headerData, uint16_t header_size)
Reads a MCO marker (Multiple Component Transform Ordering)
Definition CodeStreamDecompress_Markers.cpp:725
void * ioUserData
Definition CodeStreamDecompress.h:328
bool read_ppm(uint8_t *headerData, uint16_t header_size)
Reads a PPM marker (Packed headers, main header)
Definition CodeStreamDecompress_Markers.cpp:502
bool expectSOD_
Definition CodeStreamDecompress.h:319
bool read_cap(uint8_t *headerData, uint16_t header_size)
Reads a CAP marker.
Definition CodeStreamDecompress_Markers.cpp:1881
bool readHeaderProcedure(void)
Definition CodeStreamDecompress.cpp:630
bool read_mcc(uint8_t *headerData, uint16_t header_size)
Reads a MCC marker (Multiple Component Collection)
Definition CodeStreamDecompress_Markers.cpp:1197
void dump_image_comp_header(grk_image_comp *comp, bool dev_dump_flag, FILE *outputFileStream)
Dump a component image header structure.
Definition CodeStreamDecompress.cpp:1116
bool read_crg(uint8_t *headerData, uint16_t header_size)
Reads a CRG marker (Component registration)
Definition CodeStreamDecompress_Markers.cpp:448
bool read_cod(uint8_t *headerData, uint16_t header_size)
Reads a COD marker (Coding Style defaults)
Definition CodeStreamDecompress_Markers.cpp:1608
bool read_com(uint8_t *headerData, uint16_t header_size)
Reads a COM marker (comments)
Definition CodeStreamDecompress_Markers.cpp:1944
bool read_SPCod_SPCoc(uint16_t compno, uint8_t *headerData, uint16_t *header_size)
Reads a SPCod or SPCoc element, i.e.
Definition CodeStreamDecompress_Markers.cpp:1052
bool read_qcd(uint8_t *headerData, uint16_t header_size)
Reads a QCD marker (Quantization defaults)
Definition CodeStreamDecompress_Markers.cpp:1759
void dump_tile_info(TileCodingParams *default_tile, uint32_t numcomps, FILE *outputFileStream)
Definition CodeStreamDecompress.cpp:983
std::vector< GrkImage * > getAllImages(void)
Definition CodeStreamDecompress.cpp:158
bool read_cbd(uint8_t *headerData, uint16_t header_size)
Reads a CBD marker (Component bit depth definition)
Definition CodeStreamDecompress_Markers.cpp:851
void setExpectSOD()
Definition CodeStreamDecompress.cpp:115
DecompressorState decompressorState_
Definition CodeStreamDecompress.h:318
uint16_t curr_marker_
Definition CodeStreamDecompress.h:320
CodeStreamDecompress(BufferedStream *stream)
Definition CodeStreamDecompress.cpp:26
bool read_plt(uint8_t *headerData, uint16_t header_size)
Reads a PLT marker (Packet length, tile-part header)
Definition CodeStreamDecompress_Markers.cpp:489
uint8_t * marker_scratch_
Definition CodeStreamDecompress.h:323
bool decompressTile()
Definition CodeStreamDecompress.cpp:779
DecompressorState * getDecompressorState(void)
Definition CodeStreamDecompress.cpp:149
bool read_short(uint16_t *val)
Definition CodeStreamDecompress.cpp:916
uint16_t getCurrentMarker(void)
Definition CodeStreamDecompress.cpp:622
bool copy_default_tcp(void)
Definition CodeStreamDecompress.cpp:606
bool readHeaderProcedureImpl(void)
Definition CodeStreamDecompress.cpp:644
bool read_qcc(uint8_t *headerData, uint16_t header_size)
Reads a QCC marker (Quantization component)
Definition CodeStreamDecompress_Markers.cpp:1801
bool postProcess(void)
Definition CodeStreamDecompress.cpp:964
bool readMarker(void)
Definition CodeStreamDecompress.cpp:937
bool read_ppt(uint8_t *headerData, uint16_t header_size)
Reads a PPT marker (Packed packet headers, tile-part header)
Definition CodeStreamDecompress_Markers.cpp:526
bool add_mct(TileCodingParams *p_tcp, GrkImage *p_image, uint32_t index)
Definition CodeStreamDecompress_Markers.cpp:772
grk_io_register_reclaim_callback grkRegisterReclaimCallback_
Definition CodeStreamDecompress.h:329
TileCodingParams * get_current_decode_tcp(void)
Definition CodeStreamDecompress.cpp:136
bool parseTileParts(bool *can_decode_tile_data)
Definition CodeStreamDecompress_Markers.cpp:124
bool merge_ppt(TileCodingParams *p_tcp)
Merges all PPT markers read (Packed headers, tile-part header)
Definition CodeStreamDecompress_Markers.cpp:607
bool read_siz(uint8_t *headerData, uint16_t header_size)
Reads a SIZ marker (image and tile size)
Definition CodeStreamDecompress_Markers.cpp:1924
TileCache * tileCache_
Definition CodeStreamDecompress.h:326
GrkImage * getCompositeImage()
Definition CodeStreamDecompress.cpp:119
bool preProcess(void)
Definition CodeStreamDecompress.cpp:960
const marker_handler * get_marker_handler(uint16_t id)
Reads the lookup table containing all the marker, status and action, and returns the handler associat...
Definition CodeStreamDecompress.cpp:926
bool read_SQcd_SQcc(bool fromQCC, uint16_t compno, uint8_t *headerData, uint16_t *header_size)
Reads a SQcd or SQcc element, i.e.
Definition CodeStreamDecompress_Markers.cpp:904
bool decompressExec()
Definition CodeStreamDecompress.cpp:748
bool read_coc(uint8_t *headerData, uint16_t header_size)
Reads a COC marker (Coding Style Component)
Definition CodeStreamDecompress_Markers.cpp:1713
virtual ~CodeStreamDecompress()
Definition CodeStreamDecompress.cpp:101
bool read_tlm(uint8_t *headerData, uint16_t header_size)
Reads a TLM marker (Tile Length Marker)
Definition CodeStreamDecompress_Markers.cpp:898
bool decompressValidation(void)
Definition CodeStreamDecompress.cpp:882
bool endOfCodeStream(void)
Definition CodeStreamDecompress.cpp:449
bool readCurrentMarkerBody(uint16_t *markerSize)
Definition CodeStreamDecompress_Markers.cpp:80
TileProcessor * allocateProcessor(uint16_t tile_index)
Definition CodeStreamDecompress.cpp:123
bool read_sot(uint8_t *headerData, uint16_t header_size)
Read SOT (Start of tile part) marker.
Definition CodeStreamDecompress_Markers.cpp:662
bool read_poc(uint8_t *headerData, uint16_t header_size)
Reads a POC marker (Progression Order Change)
Definition CodeStreamDecompress_Markers.cpp:351
bool headerError_
Definition CodeStreamDecompress.h:321
uint16_t marker_scratch_size_
Definition CodeStreamDecompress.h:324
bool readHeader(grk_header_info *header_info)
Definition CodeStreamDecompress.cpp:166
grk_io_pixels_callback ioBufferCallback
Definition CodeStreamDecompress.h:327
GrkImage * getHeaderImage(void)
Definition CodeStreamDecompress.cpp:626
bool readSOTorEOC(void)
Definition CodeStreamDecompress_Markers.cpp:66
bool read_mct(uint8_t *headerData, uint16_t header_size)
Reads a MCT marker (Multiple Component Transform)
Definition CodeStreamDecompress_Markers.cpp:1440
bool read_unk(void)
Definition CodeStreamDecompress_Markers.cpp:1564
bool checkForIllegalTilePart(void)
Definition CodeStreamDecompress.cpp:846
CodeStream(BufferedStream *stream)
Definition CodeStream.cpp:25
Definition TileCache.h:36
void(* grk_io_register_reclaim_callback)(grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
Grok IO register reclaim callback.
Definition grok.h:489
bool(* grk_io_pixels_callback)(uint32_t worker_id, grk_io_buf buffer, void *user_data)
Grok IO pixels callback.
Definition grok.h:499
Copyright (C) 2016-2025 Grok Image Compression Inc.
Definition ICacheable.h:20
grk_rect< double > grk_rect_double
Definition geometry.h:64
std::function< bool(uint8_t *headerData, uint16_t header_size)> MARKER_FUNC
Definition CodeStreamDecompress.h:26
Definition BufferedStream.h:35
Definition LengthCache.h:70
Coding parameters.
Definition CodingParams.h:245
Definition CodingParams.h:310
Definition CodeStream.h:115
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:122
Definition TileProcessor.h:77
Definition CodeStreamDecompress.h:28
uint32_t states
value of the state when the marker can appear
Definition CodeStreamDecompress.h:33
uint16_t id
marker value
Definition CodeStreamDecompress.h:31
marker_handler(uint16_t ID, uint32_t flags, MARKER_FUNC f)
Definition CodeStreamDecompress.h:29
MARKER_FUNC func
Definition CodeStreamDecompress.h:34
Core decompression parameters.