tinputpin.h.svn-base

来自「ffshow源码」· SVN-BASE 代码 · 共 68 行

SVN-BASE
68
字号
#ifndef _TINPUTPIN_H_#define _TINPUTPIN_H_#include "DeCSSInputPin.h"#include "ffcodecs.h"class Tcodec;class TinputPin :public CDeCSSInputPin{private: char_t filesourceFlnm[MAX_PATH];bool wasGetSourceName;protected: virtual bool init(const CMediaType &mt)=0; virtual void done(void)=0; CodecID codecId; Tcodec *codec; bool strippacket;public: TinputPin(const char_t* objectName,CTransformFilter *filter,HRESULT* phr,LPWSTR pinname); HRESULT SetMediaType(const CMediaType* mt); STDMETHODIMP Disconnect(void); STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate); STDMETHODIMP EndOfStream(void);  int getInCodecId2(void) {return codecId;} virtual HRESULT getInCodecString(char_t *buf,size_t buflen)=0; HRESULT getStreamName(char_t *buf,size_t buflen); const char_t* getDecoderName(void); virtual HRESULT getEncoderInfo(char_t *buf,size_t buflen); const char_t* getFileSourceName(void); HRESULT connectedTo(char_t *buf,size_t buflen);};template<class Tpin> class TpinsVector :public array_vector<Tpin*,40>{private: typedef array_vector<Tpin*,40> Tbase;public: unsigned int getNumConnectedInpins(void)  {   unsigned int cnt=0;   for (typename Tbase::iterator p=this->begin();p!=this->end();p++)    if ((*p)->IsConnected())     cnt++;   return cnt;  } Tpin* getConnectedInpin(unsigned int ii)  {   for (typename Tbase::iterator p=this->begin();p!=this->end();p++)    if ((*p)->IsConnected())     if (ii==0)      return *p;     else      ii--;   return NULL;  } Tpin* find(const wchar_t *id)  {    for (typename Tbase::iterator p=this->begin();p!=this->end();p++)    if (wcscmp((*p)->Name(),id)==0)     return *p;   return NULL;    }   };#endif

⌨️ 快捷键说明

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