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

📄 avireader.h

📁 播放被H264_AAC所压缩的avi文件的播放器。
💻 H
字号:
// AviReader.h: interface for the CAviReader class.
//
//////////////////////////////////////////////////////////////////////
#pragma once

#define VIDEO_BUFFER_MAX_SIZE	100000
#define AUDIO_BUFFER_MAX_SIZE	2000

#include "AviHeadInfo.h"

//##ModelId=4753BE280232
class CAviReader  
{
public:
	//##ModelId=4753BE280233
	CAviReader();
	//##ModelId=4753BE280242
	virtual ~CAviReader();

//Operaters:
public:
	//##ModelId=4753BE280244
	int		OpenAviFile(const char *filename);
	//##ModelId=4753BE280251
	int		CloseAviFile();

	//stream read functions
	//##ModelId=4753BE280252
	int		ReadStream(BYTE *lpVidBuf, DWORD nMaxVidBuf, BYTE *lpAudBuf, DWORD nMaxAudBuf, DWORD *nLen);
	//##ModelId=4753BE280263
	int		ReadVideo(BYTE **lpVideo, DWORD &nTimeStamp);
	//##ModelId=4753BE280266
	int		ReadAudioFrame(BYTE **lpAudio, DWORD &nTimeStamp);

	//avi file read position control functions
	//##ModelId=4753BE280271
	BOOL	SetAviReaderPos(float fStartPlayTime);
	//##ModelId=4753BE280274
	void	GetAviReaderPos(LONG &nVideoPos, LONG &nAudioPos);
	//##ModelId=4753BE280277
	int		SetVideoPosition(LONG nFrame, DWORD *nFrameLen);	
	//##ModelId=4753BE280281
	int		SetAudioFrame(LONG nFrame, DWORD *nFrameLen);

	//##ModelId=4753BE280284
	BOOL	CheckSeekEnable();
	
	//bitrate functions
	//##ModelId=4753BE280285
	double	GetVideoBitrate();
	//##ModelId=4753BE280286
	double	GetAudioBitrate();
	
	//##ModelId=4753BE280290
	BOOL	IsEndRead();
private:
	//##ModelId=4753BE280291
	BOOL	SearchVideoPos(LONG nCurIdx, LONG &nVideoPos, LONG &nAudioPos);
	
	//##ModelId=4753BE280295
	void	Long2Str(BYTE *dst, int n);
	//##ModelId=4753BE2802A1
	ULONG	Str2ULong(BYTE *str);
	//##ModelId=4753BE2802AF
	ULONG	Str2UShort(BYTE *str);
	//##ModelId=4753BE2802BF
	int		Sampsize();
	//##ModelId=4753BE2802C0
	int		AddIndexEntry(BYTE *tag, LONG flags, LONG pos, LONG len);

//Attributes:
public:
	//##ModelId=4753BE2802D1
	avi_t*	m_pAviFile;
	//##ModelId=4753BE2802DE
	long	m_nAviErrNo;

private:
	//##ModelId=4753BE2802DF
	float	m_fStartPlayTime;
	//##ModelId=4753BE2802E0
	LONG	m_nCurVideoPos;
	//##ModelId=4753BE2802EE
	LONG	m_nCurAudioPos;
	//##ModelId=4753BE2802EF
	DWORD	m_dwStartTime;

	//##ModelId=4753BE2802FD
	BYTE *	m_pVideoBuf;
	//##ModelId=4753BE2802FE
	BYTE *	m_pAudioBuf;
};

⌨️ 快捷键说明

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