//
// AV8Buffer.h
#ifndef __AV8BUFFER_H__
#define __AV8BUFFER_H__
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
//#include "mpegdef.h"
//#include "mpgutil.h"
#define WM_READYSEND WM_USER+15
//
// CAV8Buffer
class CAV8Buffer : public CObject
{
public:
CAV8Buffer(DWORD dwBlock, DWORD dwByte);
virtual ~CAV8Buffer();
private:
DWORD m_dwBlock;
DWORD m_dwByte;
DWORD *m_pdwIndex; // 数据流缓冲区索引
DWORD *m_pdwLength; // 数据流缓冲区长度
BOOL *m_pbFull; // 数据流缓冲区满标志
LPSTR *m_plpArray; // 数据流缓冲区指针
LONG m_lEmptyBlock;
BOOL Flag;
public:
DWORD PushIn(LPSTR lpData, DWORD dwLength);
DWORD PopOut(LPSTR lpData, DWORD dwLength);
void Stop () { Flag = false; };
void ClearAll();
private:
LONG QueryEmpty();
void OrderAll(DWORD dwTheLast);
};
#endif // __AV8BUFFER_H__
// The End ///