我在GraphEdit中建立链路如下:
Filesource(123.avi)->AVI Splitter---(分成视频流0和音频流1,分别从pin0和pin1输出),
然后pin0(视频流)--->
AVI MUX-->File Write(成功生成新avi文件)
pin1(音频流)--->
能成功生成新文件,这应该说明这个链路是ok的吧。
但是在实际实现时,会在连接音频流的pin1和AVI MUX的对应输入pin时返回失败。
如果断掉音频流pin1与AVI MUX 的连接,仅进行视频流的保存,是可以成功生成新的.avi文件的,但是不带音频就是了。
十万火急,请教各位大侠,上述音频连接AVI MUX的错误是?有没有解决方法。
------解决方案--------------------------------------------------------
是我看成另外一个filter了,对不起!
CComPtr <IPin> pSourcePin = GetOutPin( pSource, 0 ); //得到源filter的输出pin
CComPtr <IPin> pWritePin = GetInPin( pWrite, 0 ); //得到write filter的输入pin
CComPtr <IPin> pDesInPin = GetInPin( pDes, 0 ); //得到MUX filter的视频输入pin
CComPtr <IPin> pDesInPin1 = GetInPin( pDes, 1 ); //得到MUX filter的音频输入pin
CComPtr <IPin> pDesOutPin = GetOutPin( pDes, 0 ); //得到MUX filter的输出pin
你在这里应该判断pin是否存在。
CComPtr <IPin> pDesInPin = GetInPin( pDes, 0 ); //得到MUX filter的视频输入pin
CComPtr <IPin> pDesInPin1 = GetInPin( pDes, 1 ); //得到MUX filter的音频输入pin
CComPtr <IPin> pDesOutPin = GetOutPin( pDes, 0 ); //得到MUX filter的输出pin
pDesInPin 是不和 pDesOutPin 相同的?