Grok  7.6.2
PPMMarker.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2020 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 
24 #include <vector>
25 
26 namespace grk {
27 
28 struct grk_ppx {
29  uint8_t *m_data; /* m_data == nullptr => Zppx not read yet */
30  uint32_t m_data_size;
31 };
32 
33 
34 class PPMMarker {
35 public:
36  PPMMarker();
37  ~PPMMarker();
38 
46  bool read(uint8_t *p_header_data, uint16_t header_size);
47 
52  bool merge(void);
53 
54  std::vector<grk_buf> m_tile_packet_headers;
55 
56 private:
57 
59  uint32_t markers_count;
62 
64  uint8_t *buffer;
65 };
66 
67 } /* namespace grk */
68 
grk::PPMMarker
Definition: PPMMarker.h:34
grk::PPMMarker::markers
grk_ppx * markers
ppm markers data (table indexed by Zppm)
Definition: PPMMarker.h:61
grk::PPMMarker::read
bool read(uint8_t *p_header_data, uint16_t header_size)
Read a PPM marker (Packed headers, main header)
Definition: PPMMarker.cpp:48
grk::grk_ppx
Definition: PPMMarker.h:28
grk::PPMMarker::markers_count
uint32_t markers_count
number of ppm markers (reserved size)
Definition: PPMMarker.h:59
grk::grk_calloc
void * grk_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: MemManager.cpp:111
grk::PPMMarker::PPMMarker
PPMMarker()
Definition: PPMMarker.cpp:27
grk::grk_free
void grk_free(void *ptr)
Deallocates or frees a memory block.
Definition: MemManager.cpp:141
grk::grk_buf
grk_buffer< uint8_t > grk_buf
Definition: util.h:268
grk::PPMMarker::m_tile_packet_headers
std::vector< grk_buf > m_tile_packet_headers
Definition: PPMMarker.h:54
grk::PPMMarker::merge
bool merge(void)
Merges all PPM markers read (Packed headers, main header)
Definition: PPMMarker.cpp:108
grk::grk_ppx::m_data_size
uint32_t m_data_size
Definition: PPMMarker.h:30
grk
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
grk::grk_malloc
void * grk_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: MemManager.cpp:105
grk_includes.h
grk::PPMMarker::buffer
uint8_t * buffer
packet header storage original buffer
Definition: PPMMarker.h:64
grk::PPMMarker::~PPMMarker
~PPMMarker()
Definition: PPMMarker.cpp:32
grk::grk_ppx::m_data
uint8_t * m_data
Definition: PPMMarker.h:29
grk::grk_realloc
void * grk_realloc(void *ptr, size_t new_size)
Reallocate memory blocks.
Definition: MemManager.cpp:135
grk::GRK_ERROR
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57