Grok 12.0.1
FileFormatDecompress.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2024 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 *
17 * This source code incorporates work covered by the BSD 2-clause license.
18 * Please see the LICENSE file in the root directory for details.
19 *
20 */
21
22#pragma once
23
24namespace grk
25{
27
29{
30 public:
32 virtual ~FileFormatDecompress();
33 bool readHeader(grk_header_info* header_info);
34 GrkImage* getImage(uint16_t tileIndex);
35 GrkImage* getImage(void);
38 bool decompress(grk_plugin_tile* tile);
39 bool decompressTile(uint16_t tileIndex);
40 bool end(void);
41 bool postProcess(void);
42 bool preProcess(void);
44
45 private:
46 grk_color* getColour(void);
49 bool readHeaderProcedureImpl(void);
51 BufferedStream* stream);
73 void serializeAsoc(AsocBox* asoc, grk_asoc* serial_asocs, uint32_t* num_asocs, uint32_t level);
74 std::map<uint32_t, BOX_FUNC> header;
75 std::map<uint32_t, BOX_FUNC> img_header;
76
81};
82
83} // namespace grk
Definition CodeStreamDecompress.h:38
Definition FileFormatDecompress.h:29
bool read_ihdr(uint8_t *p_image_header_data, uint32_t image_header_size)
Definition FileFormatDecompress.cpp:608
bool read_jp2h(uint8_t *headerData, uint32_t header_size)
Reads the Jpeg2000 file Header box - JP2 Header box (warning, this is a super box).
Definition FileFormatDecompress.cpp:1273
uint32_t jp2_state
Definition FileFormatDecompress.h:80
bool preProcess(void)
Definition FileFormatDecompress.cpp:287
bool read_bpc(uint8_t *p_bpc_header_data, uint32_t bpc_header_size)
Definition FileFormatDecompress.cpp:790
FileFormatDecompress(BufferedStream *stream)
Definition FileFormatDecompress.cpp:26
bool read_channel_definition(uint8_t *p_cdef_header_data, uint32_t cdef_header_size)
Definition FileFormatDecompress.cpp:815
bool read_res_box(uint32_t *id, uint32_t *num, uint32_t *den, uint32_t *exponent, uint8_t **p_resolution_data)
Definition FileFormatDecompress.cpp:727
bool read_palette_clr(uint8_t *p_pclr_header_data, uint32_t pclr_header_size)
Definition FileFormatDecompress.cpp:1090
AsocBox root_asoc
Definition FileFormatDecompress.h:78
bool readHeader(grk_header_info *header_info)
Main header reading function handler.
Definition FileFormatDecompress.cpp:114
std::map< uint32_t, BOX_FUNC > header
Definition FileFormatDecompress.h:74
void serializeAsoc(AsocBox *asoc, grk_asoc *serial_asocs, uint32_t *num_asocs, uint32_t level)
Definition FileFormatDecompress.cpp:71
void init(grk_decompress_core_params *p_param)
Set up decompressor function handler.
Definition FileFormatDecompress.cpp:270
double calc_res(uint16_t num, uint16_t den, uint8_t exponent)
Definition FileFormatDecompress.cpp:720
const BOX_FUNC find_handler(uint32_t id)
Definition FileFormatDecompress.cpp:1158
bool decompressTile(uint16_t tileIndex)
Definition FileFormatDecompress.cpp:314
std::map< uint32_t, BOX_FUNC > img_header
Definition FileFormatDecompress.h:75
virtual ~FileFormatDecompress()
Definition FileFormatDecompress.cpp:46
bool read_uuid(uint8_t *headerData, uint32_t header_size)
Definition FileFormatDecompress.cpp:695
bool decompress(grk_plugin_tile *tile)
Definition FileFormatDecompress.cpp:275
bool read_ftyp(uint8_t *headerData, uint32_t header_size)
Reads a a FTYP box - File type box.
Definition FileFormatDecompress.cpp:1218
const BOX_FUNC img_find_handler(uint32_t id)
Finds the image execution function related to the given box id.
Definition FileFormatDecompress.cpp:1170
bool postProcess(void)
Definition FileFormatDecompress.cpp:310
bool read_colr(uint8_t *p_colr_header_data, uint32_t colr_header_size)
Definition FileFormatDecompress.cpp:920
bool read_res(uint8_t *p_resolution_data, uint32_t resolution_size)
Definition FileFormatDecompress.cpp:751
bool readHeaderProcedureImpl(void)
Definition FileFormatDecompress.cpp:403
uint32_t read_asoc(AsocBox *parent, uint8_t **header_data, uint32_t *header_data_size, uint32_t asocSize)
Definition FileFormatDecompress.cpp:324
bool read_component_mapping(uint8_t *component_mapping_header_data, uint32_t component_mapping_header_size)
Definition FileFormatDecompress.cpp:1044
grk_color * getColour(void)
Definition FileFormatDecompress.cpp:106
bool read_xml(uint8_t *p_xml_data, uint32_t xml_size)
Definition FileFormatDecompress.cpp:680
CodeStreamDecompress * codeStream
Definition FileFormatDecompress.h:79
bool setDecompressRegion(grk_rect_single region)
Definition FileFormatDecompress.cpp:265
void dump(uint32_t flag, FILE *outputFileStream)
Definition FileFormatDecompress.cpp:399
bool read_box_hdr(FileFormatBox *box, uint32_t *p_number_bytes_read, bool codeStreamBoxWasRead, BufferedStream *stream)
Definition FileFormatDecompress.cpp:553
bool read_jp(uint8_t *headerData, uint32_t header_size)
Reads a JPEG 2000 file signature box.
Definition FileFormatDecompress.cpp:1183
bool read_box(FileFormatBox *box, uint8_t *p_data, uint32_t *p_number_bytes_read, uint64_t p_box_max_size)
Definition FileFormatDecompress.cpp:1315
GrkImage * getImage(void)
Definition FileFormatDecompress.cpp:102
bool headerError_
Definition FileFormatDecompress.h:77
JPEG 2000 file format reader/writer.
Definition FileFormat.h:133
Definition GrkImage.h:24
Copyright (C) 2016-2024 Grok Image Compression Inc.
Definition ICacheable.h:20
void grk_read(const uint8_t *buffer, TYPE *value, uint32_t numBytes)
Definition BufferedStream.h:239
std::function< bool(uint8_t *headerData, uint32_t header_size) BOX_FUNC)
Definition FileFormatDecompress.h:26
Association box info.
Definition grok.h:359
ICC profile, palette, channel definition.
Definition grok.h:346
Core decompression parameters.
Definition grok.h:558
Header info.
Definition grok.h:388
Plugin tile.
Definition grok.h:808
Association box (defined in ITU 15444-2 Annex M 11.1 )
Definition FileFormat.h:97
Definition BufferedStream.h:35
Definition FileFormat.h:81
Definition CodeStream.h:115
Definition geometry.h:102