⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cframelist.h

📁 最近在学习directshow, Directshow实务精选的源代码
💻 H
字号:
//
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -