directshowhelpers.h

来自「VideoMan (Video Manager) is an open-sour」· C头文件 代码 · 共 38 行

H
38
字号
#include "VideoManInputFormat.h"
#include <string>
#include "atlbase.h"
#include <dshow.h>

#define SAFE_RELEASE(x) { if(x) { (x)->Release(); (x) = NULL; }}

HRESULT addToRot(IUnknown *pUnkGraph, DWORD *pdwRegister);
void removeFromRot(DWORD pdwRegister);

HRESULT getPin(IBaseFilter *flt, PIN_DIRECTION dir, int number, CComPtr<IPin> &pRetPin);
HRESULT getPin(IBaseFilter *flt, PIN_DIRECTION dir, const GUID &mediaType, CComPtr<IPin> &pRetPin);
HRESULT connectFilters(IBaseFilter *filter_out, int out_pin_nr,
					   IBaseFilter *in_filter, int in_pin_nr);
HRESULT autoConnectFilters(IBaseFilter *filter_out, int out_pin_nr, IBaseFilter *in_filter,
											  int in_pin_nr, IGraphBuilder *pGraphBuilder);
PIXEL_FORMAT translateMEDIASUBTYPE( GUID format );
GUID translatePIXEL_FORMAT( PIXEL_FORMAT );
double referenceTime2fps( REFERENCE_TIME AvgTimePerFrame );
double referenceTime2seconds( REFERENCE_TIME time );
REFERENCE_TIME seconds2referenceTime( double seconds );
REFERENCE_TIME fps2referenceTime( double fps );
HRESULT displayPinProperties(CComPtr<IPin> pSrcPin, HWND hWnd = NULL);
HRESULT displayFilterProperties(IBaseFilter *pFilter, HWND hWnd = NULL);
DWORD WINAPI showFilterPropertiesThread(LPVOID lpParameter);

// Func Round
// coded by Simon Hughes ( The Code Project )
// If num_digits is 0, then number is rounded to the nearest integer.
// Examples
//        ROUND(2.15, 1)        equals 2.2
//        ROUND(2.149, 1)        equals 2.1
//        ROUND(-1.475, 2)    equals -1.48
double  roundDecimals( const double &number, const int num_digits = 2);

HRESULT findFilter( IGraphBuilder *pGB, const std::wstring &name, IBaseFilter **filter );
bool checkSupportMediaType( IPin *Pin, const GUID &mediaType );

⌨️ 快捷键说明

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