Grok 20.3.2
StripDecompressor.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 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
18#pragma once
19
20#include <cstdint>
21#include <atomic>
22#include <functional>
23
24namespace grk
25{
26
27struct ITileProcessor;
28
33{
34 static constexpr uint32_t outputStripHeight =
35 64; // configurable strip height at highest resolution
36};
37
38// callback invoked for each completed output strip
40 std::function<void(uint32_t row0, uint32_t numRows, const void* rowData, uint32_t rowStride)>;
41
50{
51public:
52 StripDecompressor(ITileProcessor* tp, uint16_t compno, uint8_t prec, std::atomic_bool& success,
53 StripConfig config = {});
55
56 bool decompress();
57 bool decompressStream(StripOutputCallback outputCallback);
58
59private:
61 uint16_t compno_;
62 uint8_t prec_;
63 std::atomic_bool& success_;
65};
66
67} // namespace grk
bool decompressStream(StripOutputCallback outputCallback)
Definition StripDecompressor.cpp:39
StripConfig config_
Definition StripDecompressor.h:64
bool decompress()
Definition StripDecompressor.cpp:34
uint16_t compno_
Definition StripDecompressor.h:61
StripDecompressor(ITileProcessor *tp, uint16_t compno, uint8_t prec, std::atomic_bool &success, StripConfig config={})
Definition StripDecompressor.cpp:25
std::atomic_bool & success_
Definition StripDecompressor.h:63
ITileProcessor * tp_
Definition StripDecompressor.h:60
uint8_t prec_
Definition StripDecompressor.h:62
ResWindow.
Definition CompressedChunkCache.h:36
std::function< void(uint32_t row0, uint32_t numRows, const void *rowData, uint32_t rowStride)> StripOutputCallback
Definition StripDecompressor.h:39
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37
Configuration for strip-based decompression.
Definition StripDecompressor.h:33
static constexpr uint32_t outputStripHeight
Definition StripDecompressor.h:34