?? cxvid.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 + -