22#include <vrs/ForwardDefinitions.h>
23#include <vrs/VrsExport.h>
42 return compressionType_;
45 size_t getRecommendedInputBufferSize()
const;
50 int decompress(
void* destination, uint32_t destinationSize, uint32_t& outReadSize);
57 void* allocateCompressedDataBuffer(
size_t requestSize);
63 return readSize_ - decodedSize_;
85 int initFrame(
FileHandler& file,
size_t& outFrameSize,
size_t& inOutMaxReadSize);
92 int readFrame(
FileHandler& file,
void* dst,
size_t frameSize,
size_t& inOutMaxReadSize);
98 const void* getCompressedData()
const {
99 return compressedBuffer_.data() + decodedSize_;
101 size_t getCompressedDataSize()
const {
102 return readSize_ - decodedSize_;
105 class Lz4Decompressor;
106 std::unique_ptr<Lz4Decompressor> lz4Context_;
107 class ZstdDecompressor;
108 std::unique_ptr<ZstdDecompressor> zstdContext_;
109 std::vector<uint8_t> compressedBuffer_;
111 size_t readSize_ = {};
112 size_t decodedSize_ = {};
113 size_t lastResult_ = {};
Decompressor helper class, to decompresses data at a target location.
Definition Decompressor.h:35
size_t getRemainingCompressedDataBufferSize() const
Definition Decompressor.h:62
Class to abstract VRS file system operations, to enable support for alternate storage methods,...
Definition FileHandler.h:75
Definition Compressor.cpp:113
CompressionType
Type of compression. Used in VRS record headers, so never modify the values.
Definition Record.h:38