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

📄 delegatefilter.h

📁 对比两个AVI文件的psnr值的VC源代码
💻 H
字号:
// AviDelegateWriter.h: interface for the CDelegatorFilter class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_AVIDELEGATEWRITER_H__73EEDB95_8319_4E66_AB82_EBF3FB4BC95E__INCLUDED_)
#define AFX_AVIDELEGATEWRITER_H__73EEDB95_8319_4E66_AB82_EBF3FB4BC95E__INCLUDED_

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

struct PSNR{
	double dbSnr_y;
	double dbSnr_u;
	double dbSnr_v;
	double dbSnr_y_sums;
	double dbSnr_u_sums;
	double dbSnr_v_sums;
};

class CDelegatorFilter : 
	public CUnknown
{
	friend class CAviPsnrFilter;
    friend class CCompedPin;
	friend class CSourcePin;
	CCritSec m_Lock;                // Main renderer critical section
	CCritSec m_ReceiveLock;         // Sublock for received samples
	CPosPassThru *m_pPosition;      // Renderer position controls
public:
	BOOL m_bStopped;
	
	BOOL m_bSourceEnd;
	BOOL m_bCompedEnd;
	void ReleaseAviRs();
	CAviPsnrFilter* m_pFilter;
	CDelegatorFilter(LPUNKNOWN pUnk, HRESULT *phr);
	virtual ~CDelegatorFilter();
	static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *phr);
	 // Implements the IFileSinkFilter interface
	DECLARE_IUNKNOWN;
	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
	CSourcePin *m_SourcePin;
	CCompedPin *m_CompedPin;
	
	//*******************************************************
	int m_nWidth, m_nHeight;
	double m_dbFramerate;
	DWORD m_nSrcCount;
	DWORD m_nCompCount;
	BYTE	*m_pSrcData;
	BYTE	*m_pCompData;
	BYTE	*m_pDataYV12;
	PSNR	m_PSNR;
	DWORD	m_dwSrcLen;
	DWORD	m_dwCompLen;

	HRESULT	GiveFrame(BYTE *pData, DWORD dwLen, BOOL bType);
	HRESULT CalPSNR(BYTE *pSource, BYTE *pComped, DWORD dwLen);
	void snr_cal(unsigned char* origi_image, unsigned char * recon_image, int width, int height);
	void snr_cal_pad(unsigned char* origi_image, unsigned char * recon_image, int width, int height, double *snry, double *snru, double *snrv);
	void snr_cal_rev(unsigned char* origi_image, unsigned char * recon_image, int width, int height);
	void yuy22yv12(BYTE* puc_in, BYTE* puc_out, int width_y, int height_y);
	//********************************************************
	int AllocBuffer(void);
};

#endif // !defined(AFX_AVIDELEGATEWRITER_H__73EEDB95_8319_4E66_AB82_EBF3FB4BC95E__INCLUDED_)

⌨️ 快捷键说明

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