23#include <vrs/ForwardDefinitions.h>
24#include <vrs/VrsExport.h>
25#include <vrs/WriteFileHandler.h>
59 FirstZstdPreset = ZstdFaster,
60 LastZstdPreset = ZstdMax,
63 CompressedLast = ZstdMax,
76VRS_API
CompressionType toEnum<CompressionType>(
const string& compressionTypeName);
85 static const size_t kMinByteCountForCompression;
100 compress(
const void* data,
size_t dataSize,
CompressionPreset preset,
size_t headerSpace = 0);
113 int startFrame(
size_t frameSize,
CompressionPreset zstdPreset, uint32_t& outSize);
129 uint32_t& inOutCompressedSize,
130 size_t maxCompressedSize = 0);
140 int endFrame(
WriteFileHandler& file, uint32_t& inOutCompressedSize,
size_t maxCompressedSize = 0);
145 return buffer_.data();
148 template <
class HeaderType>
150 return reinterpret_cast<HeaderType*
>(buffer_.data());
156 std::vector<uninitialized_byte> blank;
170 std::unique_ptr<CompressorImpl> impl_;
171 std::vector<uninitialized_byte> buffer_;
Definition Compressor.cpp:131
Helper class to compress data using lz4 or zstd presets.
Definition Compressor.h:83
const void * getData() const
Definition Compressor.h:144
void clear()
Really deallocate the buffer's memory (clear() doesn't do that)
Definition Compressor.h:155
HeaderType * getHeader()
Get the space reserved for a header.
Definition Compressor.h:149
The WriteFileHandler interface adds write operations to the FileHandler interface.
Definition WriteFileHandler.h:43
Definition Compressor.cpp:113
CompressionPreset
VRS Compression setting.
Definition Compressor.h:39
@ Lz4Tight
Slower compression speed, very fast decompression, better compression ratio.
@ Lz4Fast
Fast compression speed, very fast decompression, not great compression ratio.
@ Undefined
when not set explicitly
CompressionType
Type of compression. Used in VRS record headers, so never modify the values.
Definition Record.h:38
Definition Compressor.h:162