2012-08-26 3 views
0
나는 DirectShow를 소스 필터 에게 쓴

의 OutPin 원하는 필터와 소스 필터의 outpin이을 필터 ffdshow를 비디오 디코더에 연결을 자동으로 선택하는 방법. 내가 수동으로 연결하기 때문에디코더 내 DirectShow를 소스 필터

그것은 GraphEdit로에 매우 잘 작동합니다.

지금은 에서 작동하도록 노력하고 있습니다. Windows Media Player. 문제는 디코더 필터에 관한 것입니다.

내 소스 필터에서 디코더 필터를 "ffdshow 비디오 디코더"으로 어떻게 제한 할 수 있습니까? CheckMediaType에서? "ffdshow 비디오 디코더"은 OutPin에 연결할 수있는 유일한 필터이며 WMP에서 자동으로 연결할 수도 있습니다. 이 디코더 필터가 설치되어 있지 않으면 그래프가 작동하지 않아야합니다.

어떤 도움을 주셔서 감사합니다 그리고 난 당신의 출력 핀 클래스 재정의 IPin::Connect 방법 답 :

답변

2

을 확인 12 시간 후에 백업합니다. 거기에 당신이 연결되어있는 핀의 IPin 인터페이스가 있습니다. ffdshow 비디오 디코더의 입력 핀일 뿐이므로 IPin::QueryPinInfo을 수행하고 핀의 필터를 얻으십시오. 여기에서 IBaseFilter::GetClassID을 수행하고 얻은 결과를 CLSID과 비교하여 알고 있고 기대하는 값과 비교하십시오. 불일치로 실패를 반환합니다.

이것은 원하는 필터에만 연결하는 방법이었습니다. 또 다른 한 가지는 응용 프로그램이 필요한 필터를 시도하지 않을 수도 있다는 것입니다.이 경우 IStreamBuilder을 구현하여 출력 핀 연결 용 필터를 제안 할 수 있습니다.

+0

^- ^, 전문가 답변 –