tffdecodervideo.h.svn-base

来自「ffshow源码」· SVN-BASE 代码 · 共 518 行 · 第 1/3 页

SVN-BASE
518
字号
#ifndef _TFFDECODERVIDEO_H_#define _TFFDECODERVIDEO_H_#include "IffDecoder.h"#include "IffdshowDecVideo.h"#include "TffdshowDec.h"#include "TffdshowVideo.h"#include "TimgFilters.h"#include "TvideoCodec.h"#include "TinputPin.h"struct TpresetVideo;struct TffPict;struct IMixerPinConfig2;struct TglobalSettingsDecVideo;struct TdialogSettingsDecVideo;class TtextInputPin;class TpresetsVideo;class TffdshowVideoInputPin;class TffdshowDecVideo :public TffdshowDec,                        public TffdshowVideo,                        public interfaces<char_t>::IffdshowDecVideo,                        public IffDecoder,                        public IdecVideoSink,                        public IprocVideoSink{public: void OSDtimeStartSampling(void); void OSDtimeEndSampling(void); void OSDtimeEndSamplingMax(void); STDMETHODIMP waitForVideoThread(void); STDMETHODIMP TffdshowDecVideo::waitForReceiveThread(void); STDMETHODIMP Calldeliver(void);#ifdef OSDTIMETABALE STDMETHODIMP_(int) getOSDtime(void){return (int)OSDtime3;}#else STDMETHODIMP_(int) getOSDtime(void){return -1;}#endif HRESULT ReceiveOnThread(void); HRESULT ReceiveLatterHalf(IMediaSample *pSample); static CUnknown* WINAPI CreateInstance(LPUNKNOWN punk,HRESULT *phr); STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,void **ppv); DECLARE_IUNKNOWN TffdshowDecVideo(CLSID Iclsid,const char_t *className,const CLSID &Iproppageid,int IcfgDlgCaptionId,int IiconId,LPUNKNOWN punk,HRESULT *phr,int Imode,int IdefaultMerit,TintStrColl *Ioptions); virtual ~TffdshowDecVideo(); virtual HRESULT onGraphRemove(void); virtual CBasePin* GetPin(int n); virtual int GetPinCount(void); STDMETHODIMP FindPin(LPCWSTR Id, IPin **ppPin); HRESULT CheckConnect(PIN_DIRECTION dir,IPin *pPin); HRESULT CheckInputType(const CMediaType *mtIn); HRESULT CompleteConnect(PIN_DIRECTION direction,IPin *pReceivePin); HRESULT GetMediaType(int iPos,CMediaType *pmt); HRESULT SetMediaType(PIN_DIRECTION direction,const CMediaType *pmt); HRESULT CheckTransform(const CMediaType *mtIn,const CMediaType *mtOut); HRESULT DecideBufferSize(IMemAllocator *pima,ALLOCATOR_PROPERTIES *pProperties); virtual HRESULT NewSegment(REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate); STDMETHODIMP Run(REFERENCE_TIME tStart); STDMETHODIMP Stop(void); HRESULT AlterQuality(Quality q); STDMETHODIMP_(int) getVersion2(void); STDMETHODIMP getAVIdimensions(unsigned int *x,unsigned int *y); STDMETHODIMP getAVIfps(unsigned int *fps1000); STDMETHODIMP loadActivePresetFromFile(const char_t *flnm); STDMETHODIMP getAVcodecVersion(char_t *buf,size_t len) {return E_NOTIMPL;} STDMETHODIMP getPPmode(unsigned int *ppmode); STDMETHODIMP getRealCrop(unsigned int *left,unsigned int *top,unsigned int *right,unsigned int *bottom) {return E_NOTIMPL;} STDMETHODIMP setPresetPtr(Tpreset *preset); STDMETHODIMP getXvidVersion(char_t *buf,size_t len) {return E_NOTIMPL;} STDMETHODIMP getMovieSource(const TvideoCodecDec* *moviePtr); STDMETHODIMP getOutputDimensions(unsigned int *x,unsigned int *y); STDMETHODIMP getOutputFourcc(char_t *buf,size_t len); STDMETHODIMP_(int) getInputBitrate2(void); STDMETHODIMP getHistogram_(unsigned int dst[256]) {return E_NOTIMPL;} STDMETHODIMP setFilterOrder(unsigned int filterID,unsigned int newOrder) {return TffdshowDec::setFilterOrder(filterID,newOrder);} STDMETHODIMP buildHistogram_(const TffPict *pict,int full) {return E_NOTIMPL;} STDMETHODIMP_(int) getAVIfps1000_2(void); STDMETHODIMP getCurrentFrameTime(unsigned int *sec) {return getFrameTime(currentFrame,sec);} STDMETHODIMP getImgFilters_(void* *imgFiltersPtr) {return E_NOTIMPL;} STDMETHODIMP getQuant(int* *quantPtr) {return E_NOTIMPL;} STDMETHODIMP calcNewSize(unsigned int inDx,unsigned int inDy,unsigned int *outDx,unsigned int *outDy); STDMETHODIMP grabNow(void); STDMETHODIMP getOverlayControlCapability(int idff) {return E_NOTIMPL;} STDMETHODIMP drawOSD(int px,int py,const char_t *text); STDMETHODIMP lock(int lockId) {return TffdshowBase::lock(lockId);} STDMETHODIMP unlock(int lockId) {return TffdshowBase::unlock(lockId);} STDMETHODIMP calcMeanQuant(float *quant); STDMETHODIMP_(int) findAutoSubflnm2(void) {return E_NOTIMPL;} STDMETHODIMP getFrameTime(unsigned int framenum,unsigned int *sec); STDMETHODIMP shortOSDmessage(const char_t *msg,unsigned int duration); STDMETHODIMP setImgFilters_(void *imgFiltersPtr) {return E_NOTIMPL;} STDMETHODIMP registerSelectedMediaTypes(void) {return E_NOTIMPL;} STDMETHODIMP getFrameTimes(int64_t *start,int64_t *stop) {return E_NOTIMPL;} STDMETHODIMP getSubtitleTimes(int64_t *start,int64_t *stop) {return E_NOTIMPL;} STDMETHODIMP resetSubtitleTimes(void); STDMETHODIMP setFrameTimes(int64_t start,int64_t stop) {return E_NOTIMPL;} STDMETHODIMP_(int) getOSDpresetCount2(void) {return TffdshowDec::getOSDpresetCount2();} STDMETHODIMP_(const char_t*) getOSDpresetName2(unsigned int i) {return TffdshowDec::getOSDpresetName2(i);} STDMETHODIMP_(const char_t*) getOSDpresetFormat2(const char_t *presetName) {return TffdshowDec::getOSDpresetFormat2(presetName);} STDMETHODIMP setOSDpresetFormat(const char_t *presetName,const char_t *format) {return TffdshowDec::setOSDpresetFormat(presetName,format);} STDMETHODIMP setOSDpresetName(unsigned int i,const char_t *name) {return TffdshowDec::setOSDpresetName(i,name);} STDMETHODIMP addOSDpreset(const char_t *presetName,const char_t *format) {return TffdshowDec::addOSDpreset(presetName,format);} STDMETHODIMP deleteOSDpreset(const char_t *presetName) {return TffdshowDec::deleteOSDpreset(presetName);} STDMETHODIMP cycleOSDpresets(void) {return TffdshowDec::cycleOSDpresets();} STDMETHODIMP_(int) getCodecId(const BITMAPINFOHEADER *hdr,const GUID *subtype,FOURCC *AVIfourcc); STDMETHODIMP getFontManager(TfontManager* *fontManagerPtr); STDMETHODIMP getInCodecString(char_t *buf,size_t buflen); STDMETHODIMP getOutCodecString(char_t *buf,size_t buflen); STDMETHODIMP_(int) getInIsSync(void) {return E_NOTIMPL;} STDMETHODIMP getVideoWindowPos(int *left,int *top,unsigned int *width,unsigned int *height); STDMETHODIMP_(unsigned int) getSubtitleLanguagesCount2(void); STDMETHODIMP getSubtitleLanguageDesc(unsigned int num,const char_t* *descPtr); STDMETHODIMP fillSubtitleLanguages(const char_t **langs); STDMETHODIMP resetOSD(void); STDMETHODIMP getFrameTimeMS(unsigned int framenum,unsigned int *msec); STDMETHODIMP getCurrentFrameTimeMS(unsigned int *msec) {return getFrameTimeMS(currentFrame,msec);} STDMETHODIMP frameStep(int diff) {return TffdshowBase::frameStep(diff);} STDMETHODIMP_(const TfilterIDFF*) getNextFilterIDFF(void) {return nextFilters;} STDMETHODIMP textPinConnected_(unsigned int num) {return E_NOTIMPL;} STDMETHODIMP cycleSubLanguages(int diff); STDMETHODIMP getLevelsMap(unsigned int map[256]); STDMETHODIMP_(const char_t*) findAutoSubflnm3(void); STDMETHODIMP setAverageTimePerFrame(int64_t *avg,int useDef); STDMETHODIMP getLate(int64_t *latePtr); STDMETHODIMP getAverageTimePerFrame(int64_t *avg); STDMETHODIMP_(const char_t*) getEmbeddedSubtitleName2_(unsigned int num) {return NULL;} STDMETHODIMP getEncoderInfo(char_t *buf,size_t buflen); STDMETHODIMP_(const char_t*) getDecoderName(void); STDMETHODIMP putHistogram_(unsigned int Ihistogram[256]) {return E_NOTIMPL;} STDMETHODIMP_(const char_t*) getCurrentSubFlnm(void); STDMETHODIMP quantsAvailable(void); STDMETHODIMP isNeroAVC_(void) {return E_NOTIMPL;} STDMETHODIMP findOverlayControl(IMixerPinConfig2* *overlayPtr); STDMETHODIMP getVideoDestRect(RECT *r); STDMETHODIMP_(FOURCC) getMovieFOURCC(void); STDMETHODIMP getRemainingFrameTime(unsigned int *sec); STDMETHODIMP getInputSAR(unsigned int *a1,unsigned int *a2); STDMETHODIMP getInputDAR(unsigned int *a1,unsigned int *a2); STDMETHODIMP getQuantMatrices(unsigned char intra8[64],unsigned char inter8[64],unsigned char intra4luma[16],unsigned char intra4chroma[16],unsigned char inter4luma[16],unsigned char inter4chroma[16]); STDMETHODIMP_(const char_t*) findAutoSubflnms(IcheckSubtitle *checkSubtitle); STDMETHODIMP addClosedCaption(const char* line); STDMETHODIMP hideClosedCaptions(void); STDMETHODIMP_(int) getConnectedTextPinCnt(void); STDMETHODIMP getConnectedTextPinInfo(int i,const char_t* *name,int *id,int *found); STDMETHODIMP registerOSDprovider(IOSDprovider *provider,const char *name); STDMETHODIMP unregisterOSDprovider(IOSDprovider *provider); STDMETHODIMP findOverlayControl2(IhwOverlayControl* *overlayPtr); //compatibility STDMETHODIMP compat_getIffDecoderVersion2(void); STDMETHODIMP compat_getParam(unsigned int paramID, int* value) {return getParam(paramID,value);} STDMETHODIMP compat_getParam2(unsigned int paramID) {return getParam2(paramID);} STDMETHODIMP compat_putParam(unsigned int paramID, int  value) {return putParam(paramID,value);} STDMETHODIMP compat_getNumPresets(unsigned int *value) {return getNumPresets(value);} STDMETHODIMP compat_getPresetName(unsigned int i,char *buf,unsigned int len) {return getDecInterface<IffdshowDecA>()->getPresetName(i,buf,len);} STDMETHODIMP compat_getActivePresetName(char *buf,unsigned int len) {return getDecInterface<IffdshowDecA>()->getActivePresetName(buf,len);} STDMETHODIMP compat_setActivePreset(const char *name,int create) {return setActivePreset(text<char_t>(name),create);} STDMETHODIMP compat_getAVIdimensions(unsigned int *x,unsigned int *y) {return getAVIdimensions(x,y);} STDMETHODIMP compat_getAVIfps(unsigned int *fps1000) {return getAVIfps(fps1000);} STDMETHODIMP compat_saveActivePreset(const char *name) {return saveActivePreset(text<char_t>(name));} STDMETHODIMP compat_saveActivePresetToFile(const char *flnm) {return  saveActivePresetToFile(text<char_t>(flnm));} STDMETHODIMP compat_loadActivePresetFromFile(const char *flnm) {return loadActivePresetFromFile(text<char_t>(flnm));} STDMETHODIMP compat_removePreset(const char *name) {return removePreset(text<char_t>(name));} STDMETHODIMP compat_notifyParamsChanged(void) {return notifyParamsChanged();} STDMETHODIMP compat_getAVcodecVersion(char *buf,unsigned int len) {return E_NOTIMPL;} STDMETHODIMP compat_getPPmode(unsigned int *ppmode) {return getPPmode(ppmode);}

⌨️ 快捷键说明

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