![]() |
Gray C++ Libraries
0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
|
#include <cVideoFS.h>
Public Member Functions | |
cVideoFSComp (int nBlockX=k_BLOCK_DEF, int nBlockY=k_BLOCK_DEF) | |
cVideoFSComp (const cVideoFSComp ©this) | |
virtual | ~cVideoFSComp () |
virtual HRESULT | CompStart (const cSurfaceInfo &rInfo, cSurfaceBitmapInfo *pbiOut) override |
virtual HRESULT | CompFrame (const cSurfaceBase &frame, OUT const void *&rpCompRet, OUT size_t &rnSizeRet, OUT bool &rbIsKey) override |
![]() | |
virtual | ~IVideoCompress () |
virtual void | CompEnd () |
virtual AV_QUALITY_t | get_CompQuality () const |
Protected Member Functions | |
void | SetBlockDirty (int x, int y) |
void | UpdateBlockDirtyBits (const cSurfaceBase &frame) |
size_t | AddImageBlock (BYTE *pComp, INT_PTR nCompSizeMax, int row, int col) |
![]() | |
cVideoFS (int nBlockX=k_BLOCK_DEF, int nBlockY=k_BLOCK_DEF) | |
~cVideoFS () | |
void | UpdateBlockParams () |
BYTE * | BuildCompFrameHeader (BYTE *pComp) const |
bool | isReady () const noexcept |
int | get_BlocksTotal () const noexcept |
void | GetBlockRect (int col, int row, cRectI &rect) const noexcept |
UNITTEST_FRIEND (cVideoFS) | |
Protected Attributes | |
cNewPtr< cColor888 > | m_FrameLast |
The last full frame m_FrameSize. (diff against this) More... | |
cBitArrayStatic | m_BlocksDirty |
are any of the pixels in the block changed? 2d array of m_Blocks More... | |
cHeapBlock | m_CompFrame |
holder for the last compressed frame. key or diff. persisted for CompFrame( rpCompRet ) More... | |
Additional Inherited Members | |
![]() | |
cWinSize | m_BlockSize |
Preconfigured size of the dirty block in pixels. (arbitrary 16..256, multiple of 16) More... | |
cWinSize | m_FrameSize |
total size in pixels in Frame. More... | |
cWinSize | m_Blocks |
Count of blocks = m_FrameSize / m_BlockSize. More... | |
UINT | m_nFrameNum |
frame number in video stream so far. More... | |
cArrayVal< cColor888 > | m_BlockTmp |
space to hold a block for (de)compression. m_BlockSize More... | |
![]() | |
static const int | k_BLOCK_DEF = 32 |
static const FOURCC | k_Form = ((DWORD)(BYTE)( 'F' ) | ((DWORD)(BYTE)( 'S' ) << 8) | ((DWORD)(BYTE)( 'V' ) << 16) | ((DWORD)(BYTE)( '1' ) << 24 )) |
the Adobe Flash 'screenshare' compressor. FOURCC(fsv1)
GrayLib::cVideoFSComp::cVideoFSComp | ( | int | nBlockX = k_BLOCK_DEF , |
int | nBlockY = k_BLOCK_DEF |
||
) |
GrayLib::cVideoFSComp::cVideoFSComp | ( | const cVideoFSComp & | copythis | ) |
|
virtual |
|
protected |
Take the image block from m_FrameLast and compress to pComp in m_CompFrame nCompSizeMax = sanity check on my buffer size.
|
overridevirtual |
IVideoCompress compress a single frame into the stream.
Implements GrayLib::IVideoCompress.
|
overridevirtual |
IVideoCompress Must call this again if the image size changes or the block size changes.
size of the frame.
Implements GrayLib::IVideoCompress.
|
protected |
Mark this block is changed. x,y = pixels.
|
protected |
Discover which pixels/blocks have changed and copy them into the m_FrameLast
|
protected |
are any of the pixels in the block changed? 2d array of m_Blocks
|
protected |
holder for the last compressed frame. key or diff. persisted for CompFrame( rpCompRet )
The last full frame m_FrameSize. (diff against this)