cframelist.h

来自「最近在学习directshow, Directshow实务精选的源代码」· C头文件 代码 · 共 43 行

H
43
字号
//
// CFrameList.h
//

#ifndef __H_CFrameList__
#define __H_CFrameList__

// Only suitable for fix-sized frames.
// Only when all buffers are filled, outer users can get buffered frame out.
// Add the latest frame to the bottom, and the top frame will be overrided.

class CFrameList
{
private:
	long     mFrameSize;         // In bytes
	long     mMaxFrameCount;     // Frames stored in the list
	long     mLastFrameOffset;   // Start position of the last frame
	long     mFrameCounter;

	CCritSec    mSyncBuffer; 
	BYTE *      mFrameBuffer;

	BOOL        mReachEnd;       // No more samples will be received
	long        mIndexWhenEndReached;

private:
	__inline void MoveOneFrameUp(void);

public:
	CFrameList(long inFrameSize, long inMaxCount);
	~CFrameList();

	void AddFrame(BYTE * inFrame);
	void GetFrame(PBYTE * outFrame);
	void ReleaseFrame(void);
	BOOL IsFrameBufferFull(void);

	void SetReachEnd(BOOL inIsEnd);

	void Flush(void);
};

#endif // __H_CFrameList__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?