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

📄 cxvid.h

📁 这是关于图像质量分析的源代码
💻 H
字号:
// CXvid.h: interface for the CXvid class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CXVID_H__419F60F2_C37F_4106_8F08_ED571A40C344__INCLUDED_)
#define AFX_CXVID_H__419F60F2_C37F_4106_8F08_ED571A40C344__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "vfw.h"
#include "InputFile.h"
#include "VideoSource.h"
#include "AudioSource.h"
#include "CLogFile.h"

class CXvid  
{
public:
	CXvid();
	virtual ~CXvid();

	typedef struct
	{
		bool	isIFrame;
		int		qvalue;
		int		framesize;
	} QUANTS;
	
	int		Open(CString filepath);						//打开AVI文件,并且设置全局通用属性
	int		Analyze(CProgressCtrl &progress, CEdit &edit, bool log, int start, int stop); //分析AVI文件
	void	Close(void);								//释放使用的内存,并且重新初始化

	float	GetRate(void) {return fps;};				//返回AVI文件的 FPS
	void	SetRate(float rate) {fps = rate;};			//设置AVI文件的 FPS
	int		GetWidth(void) {return width;};				//返回剪辑的宽度
	void	SetWidth(int w) {width = w;};				//设置剪辑的宽度
	int		GetHeight(void) {return height;};			//返回剪辑的高度
	void	SetHeight(int h) {height = h;};				//设置剪辑的高度
	CString GetAviPath(void) {return avipath;};			//返回AVI文件的路径

	int		GetFrameCount(void) {return nframes;};			//返回帧的全部数目
	void	SetFrameCount(int fcount) {nframes = fcount;};	//设置帧的全部数目
	int		GetIFrameCount(void) {return icount;};			//返回全部I帧的数目
	void	SetIFrameCount(int ifcount) {icount = ifcount;};//设置全部I帧的数目
	int		GetPFrameCount(void) {return pcount;};			//返回全部P帧的数目
	void	SetPFrameCount(int pfcount) {pcount = pfcount;};//设置全部P帧的数目

	float	GetAvgQuants(void) {return navg;};			//返回quants的平均值
	void	SetAvgQuants(float avg) {navg = avg;};		//设置quants的平均值
	int		GetMinQuant(void) {return nmin;};			//返回quant的最小值
	void	SetMinQuant(int min) {nmin = min;};			//设置quant的最小值
	int		GetMaxQuant(void) {return nmax;};			//返回quant的最大值
	void	SetMaxQuant(int max) {nmax = max;};			//设置quant的最大值

	float	GetPAvgQuants(void) {return pavg;};			//返回P帧的quants的平均值
	void	SetPAvgQuants(float avg) {pavg = avg;};		//设置P帧的quants的平均值
	float	GetIAvgQuants(void) {return iavg;};			//返回I帧的quants的平均值
	void	SetIAvgQuants(float avg) {iavg = avg;};		//设置I帧的quants的平均值

	int		GetMaxFrameSize(void) {return nfsmax;};		//返回最大帧的大小
	void	SetMaxFrameSize(int max) {nfsmax = max;};
	int		GetMinFrameSize(void) {return nfsmin;};		//返回最小帧的大小
	void	SetMinFrameSize(int min) {nfsmin = min;};
	int		GetIMaxFrameSize(void) {return ifsmax;};	//返回最大I帧的大小
	void	SetIMaxFrameSize(int max) {ifsmax = max;};
	int		GetIMinFrameSize(void) {return ifsmin;};	//返回最小I帧的大小
	void	SetIMinFrameSize(int min) {ifsmin = min;};
	int		GetPMaxFrameSize(void) {return pfsmax;};	//返回最大P帧的大小
	void	SetPMaxFrameSize(int max) {pfsmax = max;};
	int		GetPMinFrameSize(void) {return pfsmin;};	//返回最小P帧的大小
	void	SetPMinFrameSize(int min) {pfsmin = min;};

	QUANTS* GetQuantsArray(void) {return quants;};		//返回整个quants数组
	void	SetQuantsArray(QUANTS* qvalues, int nelem);	//根据文件初始化quants数组

	
	bool	IsOpened(void) {return isOpened;};				//如果文件被加载了,返回真
	void	SetOpened(bool flag) {isOpened = flag;};		//设置文件打开状态
	bool	IsAnalysed(void) {return isAnalysed;};			//如果文件被分析了,返回真
	void	SetAnalysed(bool flag) {isAnalysed = flag;};	//设置分析状态

private:
	CString		avipath;						//xvid文件的绝对路径
	CLogFile	logfile;						//日志对象
	bool		isOpened;						//xvid文件是否被打开了?
	bool		isAnalysed;						//xvid文件是否被分析了?

	QUANTS*	quants;								//所有帧的quant数组

	float	fps;								//每秒的帧数
	int		width;								//视频的宽度
	int		height;								//视频的高度
	int		nframes;							//帧的数目
	int		nmax;								//quantizer的最大值
	int		nmin;								//quantizer的最小值
	int		nsum;								//quantizers的和
	float	navg;								//quantizers的平均值
	int		nfsmax;								//帧大小的最大值
	int		nfsmin;								//帧大小的最小值

	int		icount;								//I帧的数目
	int		isum;								//I帧的数目
	float	iavg;								//I帧的数目
	int		ifsmax;								//I帧大小的最大值
	int		ifsmin;								//I帧大小的最小值

	int		pcount;								//P帧的数目
	int		psum;								//P帧的数目
	float	pavg;								//P帧的数目
	int		pfsmax;								//P帧大小的最大值
	int		pfsmin;								//P帧大小的最小值
};

#endif // !defined(AFX_CXVID_H__419F60F2_C37F_4106_8F08_ED571A40C344__INCLUDED_)

⌨️ 快捷键说明

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