DirectShow 보유 사용이 금지되고 있는 인터페이스 ICaptureGraphBuilder RenderStream   [목차열람] [주소복사] [슬롯비우기]
ICaptureGraphBuilder::RenderStream
 
Microsoft DirectX 9.0

ICaptureGraphBuilder::RenderStream

 :  ICaptureGraphBuilder 인터페이스의 사용은 피하는 것. 대신에,ICaptureGraphBuilder2 를 사용하는 것.

옵션으로 지정되는 카테고리의 소스 필터의 핀을, 옵션으로 다른 필터를 경유해, 렌더링 필터에 접속한다.

구문

HRESULT RenderStream(
    const GUID *pCategory,
    IUnknown *pSource,
    IBaseFilter *pfCompressor,
    IBaseFilter *pfRenderer
);

파라미터

pCategory

[in] 소스 필터의 어느 출력 핀을 접속하는지를 지정하는 GUID 의 포인터. 모든 핀 카테고리의 일람에 대해서는, 「핀 프로퍼티 세트」를 참조할것. NULL 는, 카테고리에 관계없이, 출력 핀만을 렌더링 하는 것을 나타낸다.

pSource

[in] 소스 필터 또는 출력 핀에 상당하는 IBaseFilter 인터페이스 또는 IPin 인터페이스의 포인터. 소스 필터는, 보통, AVI 파일 소스 필터나 캡춰 필터등의 파일 소스 필터이다.

pfCompressor

[in] 옵션의 압축 필터에 상당하는 IBaseFilter 인터페이스의 포인터.

pfRenderer

[in] 렌더러에 상당하는 IBaseFilter 인터페이스의 포인터. ICaptureGraphBuilder::SetOutputFileNameppf (멀티플렉서) 인수를 사용해, 이 값을 건네줄 수가 있다.

반환값

캡춰 필터에 캡춰 핀은 있지만, 프리뷰 핀이 없는 경우, 캡춰 핀에 대해서 &PIN_CATEGORY_PREVIEW 카테고리를 지정해 RenderStream 를 호출하면, VFW_S_NOPREVIEWPIN 가 반환된다. 그 경우,RenderStream스마트티 필터의 프리뷰 핀을 렌더링 한다. 더 자세한 정보는, 「주의」를 참조할것.

주의

pCategory 로서 NULL 이외의핀 프로퍼티 세트 GUID 를 지정해,pSource 로서 캡춰 필터를 지정했을 경우, 이 메서드는, TV 튜너나 크로스바 등, 필요하게 되는 추가의 업 스트림 필터의 인스턴스를 생성해, 그러한 필터를 접속한다. 다음에, 이 메서드는,pSource 의 캡춰 핀을 렌더링 한다.

pSource 가 핀의 경우는,pCategory 로서 NULL 를 지정 하면, 이 메서드는, 그 핀의 스트림을 렌더링 한다.

소스 필터에 출력 핀이 1 개 밖에 없는 경우는,pCategory 로서 NULL 를 지정한다.

인수로서 지정된 pSource 필터,pfCompressor 필터 및 pfRenderer 필터는, 이 메서드가 불려 가기 전에 그래프내에 존재하고 있을 필요가 있다.

WDM 캡춰 필터를 사용하는 캡춰 그래프를 생성 하는 경우, 이 메서드는, 모든 필요한 업 스트림 필터 및 다운 스트림 필터를 생성 한다.

새로운 WDM VPE (비디오 포트 extension) 비디오 캡춰 하드웨어를 사용하는 일부의 캡춰 필터는, 프리뷰용으로서 프리뷰 핀 대신에 비디오 포트 핀을 갖추고 있다. 비디오 포트 핀은, 비디오 렌더러에 직접 접속되지 않고,오버레이 믹서로 불리는 특수한 필터에 접속된다. 애플리케이션은, 이 점을 고려에 넣을 필요는 없다. PIN_CATEGORY_PREVIEW 를 지정해 RenderStream 를 호출하면, 필요한 경우에는, 캡춰 그래프 빌더가 오버레이 믹서를 통해서 VIDEO PORT 핀을 올바르게 렌더링 한다.

PIN_CATEGORY_CAPTURE 카테고리 또는 PIN_CATEGORY_PREVIEW 카테고리를 지정해 RenderStream 를 사용해, 비디오 캡춰 필터의 캡춰 핀 또는 프리뷰 핀을 렌더링 하는 경우로, 캡춰 필터에 캡춰 핀은 있지만, 프리뷰 핀이 없는 경우는,스마트티 필터 가 자동적으로 사용되어 캡춰와 프리뷰가 동시에 행해진다. 예를 들어, PIN_CATEGORY_CAPTURE 카테고리를 지정해 RenderStream 를 호출하면, 필터의 캡춰 핀에 스마트티필터가 실제로 접속되어 스마트티의 캡춰 핀이 렌더링 된다. 다음에, PIN_CATEGORY_PREVIEW 카테고리를 지정해 RenderStream 를 호출하면, 실제로 스마트티의 프리뷰 핀이 렌더링 된다. PIN_CATEGORY_PREVIEW 를 지정해 RenderStream 를 호출한 결과, 캡춰 핀과 스마트티필터가 사용되었을 경우,RenderStream 는 VFW_S_NOPREVIEWPIN 를 돌려주는 것에 의해 그것을 나타낸다. 따라서,FindInterface 가 프리뷰 인터페이스를 찾아낼 수 없는 경우는, 캡춰 필터의 캡춰 핀의 다운 스트림으로 프리뷰 인터페이스가 발견되는 일이 있기 (위해)때문에, PIN_CATEGORY_PREVIEW 카테고리와 PIN_CATEGORY_CAPTURE 카테고리를 지정해 FindInterface 를 호출할 필요가 생기는 일이 있다.

참조

↑TOP