📄 delegatefilter.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 + -