我写一个Filter(从CTransInPlaceFilter),两个输入Pin(一个是CTransInPlaceFilter自带的,一个是重载CBaseInputPin的),为什么重载的哪个Pin
具体说说这个继承 Pin 的实现:
重载了5个函数 CheckMediaType,BeginFlush, EndFlush,EndOfStream,Receive
下面是实现:
CheckMediaType(mtIn: PAMMediaType): HRESULT//直接返回S_OK,没有其他的实现.
BeginFlush: HRESULT;//直接继承了父类的BeginFlush,没有其他的实现.
EndFlush: HRESULT;//同样也是继承了父类的EndFlush.
EndOfStream: HRESULT;// 调用了 Result := checkstreaming;没有其他的实现.
function Receive(pSample: IMediaSample): HRESULT;//直接把Sample交给Filter去处理.
实验结果是: 我在GraphEdit中手动的把几个Filter和本Filter连接.连接正常.
但是在程序中,把其他Filter的输出Pin,和重载了CBaseInputPin的Pin连接,老是连不上.(也是同样的Filter在GraphEdit中手动连接正常),我在程序中跟踪到已经找到了重载了CBaseInputPin的Pin的地址.
请问是我的重载函数有错误吗?请高手指点.