2010-03-09 3 views
1

RFC2435 데이터 (RTP를 통한 MJPEG)를 포함하는 네트워크 스트림을 수신하기위한 DirectShow 소스 필터가 있습니다.DirectShow 필터 출력 핀의 속성을 즉시 수정하는 방법은 무엇입니까?

원본 필터의 출력 핀의 속성은 이미지의 차원 데이터의 유일한 원본 인 스트림을 받기 전에 설정해야합니다. 출력 핀의 크기는 현재 일부 기본값 (640x480)으로 설정되어 있습니다.

출력 핀이 이미 생성되고 MJPEG 데이터를 디코딩하는 다른 필터에 연결된 후 새로운 이미지의 크기를 반영하도록 출력 핀의 속성을 수정할 수 있습니까?

답변

1

답변은 미디어 형식을 전환하는 데 사용할 수있는 '동적 형식 변경'메커니즘을 사용하는 것이라고 생각합니다. 이것은 그래프가 활성 상태인지 정지 상태인지에 따라 여러 가지 방법으로 수행 할 수 있습니다. MSDN의 다음 페이지에서 자세한 내용을 설명합니다.

http://msdn.microsoft.com/en-us/library/dd388731(VS.85).aspx

+0

이, 사용이 메커니즘의 예를 찾기 어려운 답 증명하는 것입니다 가졌어요! –

+1

www.gdcl.co.uk/gmfbridge -이 샘플은 미디어 유형을 샘플에 연결하고 출력 핀에서 ReceiveConnection을 호출하여 미디어 유형을 변경합니다.이 후자의 형식은 비디오 렌더러에 연결될 때 필요합니다. 버퍼 크기를 변경해야하기 때문입니다. –

+0

감사합니다. http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/41589cca-772d-4b43-a56a-8fb7daf953cc에서 스레드를 찾았습니다. CTransformInputPin에서 새로운 InputPin 클래스를 파생하므로 ReceiveConnection 메서드를 구현할 수는 있지만, 아마 토론 스레드가 진행되는 방식에 따라 할당 자의 문제가 발생할 것입니다! –

관련 문제