6 #ifndef _INC_cVideoBZ_H
7 #define _INC_cVideoBZ_H
16 #include "../Math/cBitArray.h"
17 #include "../Image/cSurface.h"
18 #include "../Geometry/cRectI.h"
33 static const int k_BLOCK_SIZE = 32;
60 return m_Blocks.cx && m_Blocks.cy;
64 return m_Blocks.cx * m_Blocks.cy;
69 rect.left = coord.col * k_BLOCK_SIZE;
70 rect.top = coord.row * k_BLOCK_SIZE;
71 rect.right = (coord.col >= m_Blocks.cx - 1) ? m_Info.
get_Width() : (
rect.left + k_BLOCK_SIZE);
72 rect.bottom = (coord.row >= m_Blocks.cy - 1) ? m_Info.
get_Height() : (
rect.top + k_BLOCK_SIZE);
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define CATTR_PACKED
Definition: GrayCore.h:87
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
UINT32 FOURCC
32 bit code. Also defined in _MMSYSTEM_H
Definition: cFourCC.h:19
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
Definition: cFourCC.h:24
Definition: cAVSink.h:231
Definition: cBitArray.h:28
Definition: cSurfaceBase.h:26
Definition: cSurfaceInfo.h:308
Definition: cSurfaceInfo.h:109
PIXELS_t get_Width() const noexcept
Definition: cSurfaceInfo.h:151
PIXELS_t get_Height() const noexcept
Definition: cSurfaceInfo.h:156
Definition: cSurface.h:21
Definition: cVideoBZ.h:79
cStreamQueue m_CompFrame
holder for the last compressed frame. key or diff. persisted for CompFrame( rpCompRet )
Definition: cVideoBZ.h:89
bool SetBlockDirty(int x, int y)
cSurface m_FrameLast
The last full frame m_Info. (diff against this)
Definition: cVideoBZ.h:85
int UpdateBlockDirtyBits(const cSurfaceBase &frame)
virtual HRESULT CompStart(const cSurfaceInfo &rInfo, OUT cSurfaceBitmapInfo *pbiOut) override
virtual HRESULT CompFrame(const cSurfaceBase &frame, OUT const void *&rpCompRet, OUT size_t &rnSizeRet, OUT bool &rbIsKey) override
cBitArrayStatic m_BlocksDirty
which blocks changed? (any pixels in them) 2d array of m_Blocks
Definition: cVideoBZ.h:88
virtual ~cVideoBZComp(void)
Definition: cVideoBZ.h:106
virtual HRESULT DecompFrame(const void *pCompData, size_t nSizeComp, cSurfaceBase &frame) override
virtual HRESULT DecompStart(const cSurfaceBitmapInfo *pbiInp, cSurfaceInfo *pFrameInfo) override
virtual ~cVideoBZDecomp(void)
Definition: cVideoBZ.h:118
cTimeSys m_tUpdateOldest
When was this last FULLY built/current.
Definition: cVideoBZ.h:131
cArrayStruct< cBlock > m_aBlocks
the blocks making up the current frame.
Definition: cVideoBZ.h:128
cStreamQueue m_CompFrame
holder for the last compressed frame. key or diff. persisted for BuildCompFrame( rpCompRet )
Definition: cVideoBZ.h:130
virtual HRESULT BuildCompFrame(TIMESYS_t tWhenLast, const void *&rpCompRet, size_t &rnSizeRet) override
virtual HRESULT OnHeaderStream(const cAVHeaderStream &head, const void *pForm, size_t nSizeForm) override
cSurface m_FrameLast
Last Full uncompressed frame.
Definition: cVideoBZ.h:129
virtual HRESULT OnFrame(const cAVHeaderFrame &head, const void *pData, size_t nSizeData) override
Definition: cVideoBZ.h:26
static HRESULT GRAYCALL CoordRead(cStreamInput &stmIn, BLOCK_COORD &coord)
int get_BlocksTotal() const noexcept
Definition: cVideoBZ.h:62
cWinSize m_Blocks
Count of blocks = m_FrameSize / k_BLOCK_SIZE.
Definition: cVideoBZ.h:36
UINT m_nFrameNum
Definition: cVideoBZ.h:37
cSurfaceInfo m_Info
i was init to use this format + size. CompStart() or DecompStart()
Definition: cVideoBZ.h:38
bool isReady() const noexcept
Definition: cVideoBZ.h:58
void GetBlockRect(const BLOCK_COORD &coord, cRectI &rect) const noexcept
Definition: cVideoBZ.h:66
static HRESULT GRAYCALL CoordWrite(cStreamOutput &out, const BLOCK_COORD &coord)
UNITTEST_FRIEND(cVideoBZ)
Definition: WinTypes.h:128
Definition: cStream.h:126
Definition: cStreamQueue.h:19
Definition: cTimeSys.h:93
interface const RECTQ_t & rect
Definition: cQuadtree.h:44
UINT32 TIMESYS_t
TIMESYS_t = The normal system tick timer. milli-seconds since start of system/app ?
Definition: cTimeSys.h:27
Definition: cVideoCodec.h:25
Definition: cVideoCodec.h:45
Definition: cVideoBZ.h:123
cTimeSys m_tUpdated
only used by cVideoBZRateController
Definition: cVideoBZ.h:125
Definition: cVideoBZ.h:46
BYTE col
Definition: cVideoBZ.h:49
BYTE row
Definition: cVideoBZ.h:50