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