41 if(!compressor.
compress(data, size))
return nullptr;
51 if(!inf.
inflate(data, size))
return nullptr;
62 void* converted = malloc(targetSize);
63 double multiplier = 1.0 * (2^8) / (2^32);
65 for(
int i=0; i<targetSize; i++) {
68 int byte0 = ((
char*)data)[i*4 + 3];
69 int byte1 = ((
char*)data)[i*4 + 2];
70 int byte2 = ((
char*)data)[i*4 + 1];
71 int byte3 = ((
char*)data)[i*4 + 0];
72 unsigned int val = byte0 << 24 | (byte1 & 0xFF) << 16 | (byte2 & 0xFF) << 8 | (byte3 & 0xFF);
73 ((
unsigned char*)converted)[i] = (
unsigned char)((
double)val / multiplier);
81 void* converted = malloc(targetSize);
82 double multiplier = 1.0 * (2^8) / (2^16);
84 for(
int i=0; i<targetSize; i++) {
89 int byte0 = ((
char*)data)[i*2 + 0];
90 int byte1 = ((
char*)data)[i*2 + 1];
91 unsigned int val = byte0 << 8 | (byte1 & 0xFF);
92 ((
unsigned char*)converted)[i] = (
unsigned char)((
double)val / multiplier);
102 void* converted = malloc(texSize);
104 for(
int i=0; i<texSize; i++) {
106 unsigned char b = ((
const unsigned char*)data)[i*2];
107 ((
unsigned char*)converted)[i] = b;
126 return [texWidth, texHeight](
const void* data,
size_t size){
134 if(
auto r = buf.
getRef()) {
141 emptyBuffer(buf, [func](
const void* data,
size_t size){
142 auto inflatedFrameRef =
inflate(data, size);
144 if(!inflatedFrameRef) {
149 func(inflatedFrameRef->data(), inflatedFrameRef->size());
bool inflate(const void *data, size_t size)
Performs decompression on the provided data package.
Definition: Inflater.cpp:48
void clear()
Clear the buffer (doesn't trigger the output callback)
Definition: Buffer.h:52
A read-only wrapper around a data block of a specified size.
Definition: Frame.h:36
const void * getData() const
Returns a pointer to the inflated package data (will be NULL when no inflation is performed or after ...
Definition: Inflater.h:47
FrameRef inflate(const void *data, size_t size)
Definition: libs/DepthStream/src/functional.h:49
int getSize()
Definition: Compressor.h:33
size_t size()
Definition: Frame.h:78
Inflates ("decompresses") a package ("frame") of data compressed using zlib doCompression.
Definition: Inflater.h:29
contains all classes and functions of the DepthStream library.
Definition: Buffer.h:22
size_t getSize() const
Returns the inflated size of the last inflate operation.
Definition: Inflater.h:44
void emptyAndInflateBuffer(Buffer &buf, Frame::InputFunc func)
Definition: libs/DepthStream/src/functional.h:140
std::function< void(const void *, size_t)> InputFunc
Definition: Frame.h:40
std::function< FrameRef(const void *, size_t)> grayscale8bitConverter(int texWidth, int texHeight)
Generates converter lambda for specified width/height.
Definition: libs/DepthStream/src/functional.h:125
FrameRef convert_16bit_to_8bit(size_t targetSize, const void *data)
Definition: libs/DepthStream/src/functional.h:80
Compressed a package (frame) of data using zlib compression.
Definition: Compressor.h:29
FrameRef convert_32bit_to_8bit(size_t targetSize, const void *data)
Definition: libs/DepthStream/src/functional.h:61
bool compress(const void *data, size_t size)
Definition: Compressor.cpp:25
virtual FrameRef getRef()
Definition: Buffer.h:38
const void * data()
Definition: Frame.h:75
FrameRef compress(const void *data, size_t size)
Definition: libs/DepthStream/src/functional.h:39
std::shared_ptr< Frame > FrameRef
Definition: Frame.h:25
void emptyBuffer(Buffer &buf, Frame::InputFunc func)
Definition: libs/DepthStream/src/functional.h:133
static FrameRef refWithData(void *data, size_t size)
Initializes a Frame with owned data ("adopts" the provided data)
Definition: Frame.h:51
Manages a reference to a Frame instance.
Definition: Buffer.h:29
const void * getData()
Definition: Compressor.h:32
FrameRef convertTo8bitGrayscaleData(size_t texSize, const void *data)
Definition: libs/DepthStream/src/functional.h:101
static FrameRef refToExternalData(const void *data, size_t size)
Initializes a frame with external data.
Definition: Frame.h:46