17 template<std::
unsigned_
integral P>
class PixelOperations;
24 ZMBVEncoder(
unsigned width,
unsigned height,
unsigned bpp);
30 ZMBV_FORMAT_16BPP = 6,
34 void setupBuffers(
unsigned bpp);
35 [[nodiscard]]
unsigned neededSize()
const;
36 template<std::
unsigned_
integral P>
void addFullFrame(
const PixelFormat& pixelFormat,
unsigned& workUsed);
37 template<std::
unsigned_
integral P>
void addXorFrame (
const PixelFormat& pixelFormat,
unsigned& workUsed);
38 template<std::
unsigned_
integral P> [[nodiscard]]
unsigned possibleBlock(
int vx,
int vy,
unsigned offset);
39 template<std::
unsigned_
integral P> [[nodiscard]]
unsigned compareBlock(
int vx,
int vy,
unsigned offset);
40 template<std::
unsigned_
integral P>
void addXorBlock(
42 unsigned offset,
unsigned& workUsed);
43 [[nodiscard]]
const void* getScaledLine(
FrameSource* frame,
unsigned y,
void* workBuf)
const;
56 const unsigned height;
Interface for getting lines from a video frame.
std::span< const uint8_t > compressFrame(bool keyFrame, FrameSource *frame)
static constexpr const char CODEC_4CC[5]
ZMBVEncoder(unsigned width, unsigned height, unsigned bpp)
This file implemented 3 utility functions: