DirectShow DirectShow 레퍼런스 인터페이스 IVMRFilterConfig SetNumberOfStreams   [목차열람] [주소복사] [슬롯비우기]
IVMRFilterConfig::SetNumberOfStreams
 
Microsoft DirectX 9.0

IVMRFilterConfig::SetNumberOfStreams

SetNumberOfStreams 메서드는, 믹싱 하는 스트림의 수를 설정해, VMR 에 믹서 모드로 처리하도록(듯이) 지시한다.

구문

HRESULT SetNumberOfStreams(
  DWORD  dwMaxStreams
);

파라미터

dwMaxStreams

[in] 믹싱에 VMR 를 필요로 하는 입력 스트림의 최대수를 저장 하는 DWORD 형의 값. MAX_MIXER_STREAMS (16)보다 큰 값을 지정하지 않는 것.

반환값

메서드가 성공하면 S_OK 를 돌려준다. 실패 하면 에러 코드를 돌려준다.

에러 코드 설명
E_FAIL 믹서는 이미 구성되어 있다.
E_INVALIDARG 16 을 넘는 입력 스트림에 대해서 믹서를 구성하려고 했다.
E_OUTOFMEMORY 스트림을 관리하기 위한 메모리를 할당할 수 없었다.

주의

dwMaxStreams 는, 필요한 입력 핀의 수와 같지 않으면 안 된다. VMR 가 접속된 다음에는, 핀은 추가도 삭제도 할 수 없다. 사전에 필요한 입력 스트림수를 모를 때는,dxMaxStreams 를 최대한 필요한 수로 설정하는 것. 1 의 값은 dwMaxStreams 에는 유효하다. 이 값을 설정해도 추가 핀은 생성 되지 않지만, VMR 를 "믹서 모드" 에 강제적으로 처리 한다. 따라서, 이 메서드가 한 번 불려 가면SetRenderingMode 를 호출해 모드를 VMRMode_Renderless 에는 설정할 수 없다.

VMR 는, 지정된 수만큼 입력 핀을 생성 하지만, 그러한 핀을 모두 지원 가능한 한의 비디오 메모리가 있을지 어떨지를 판단하려고는 하지 않는다. 이것은, 이 시점에서는 미디어 타입이나 직사각형의 넓이를 알 방법이 없기 때문에이다. 다음에, 업 스트림 필터가 핀에 접속하려고 하면 그 시점에서는 미디어 타입을 알 수 있으므로, VMR 는 비디오 메모리를 조사해, 스트림을 처리할 수 있는 충분한 메모리가 없는 경우는 접속을 실패시킨다.

 :  VMR 는 복수의 스트림을 지원 하고 있지만, 그러한 스트림은 1 개의 클럭을 공유하고 있으므로, 어느 스트림을 개별적으로는 시크 할 수 없다. 입력 스트림을 개별적으로 시크 할 필요가 있는 경우는, 다른 방법을 사용할 필요가 있다. 더 자세한 정보는, VMRMulti 샘플을 참조할것.

참조

↑TOP