다음을 통해 공유


IVMRFilterConfig::SetNumberOfStreams 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

메서드는 SetNumberOfStreams 혼합할 스트림 수를 설정하고 VMR에 믹서 모드로 전환하도록 지시합니다.

구문

HRESULT SetNumberOfStreams(
  [in] DWORD dwMaxStreams
);

매개 변수

[in] dwMaxStreams

VMR을 혼합하는 데 필요한 최대 입력 스트림 수를 포함하는 이중 단어입니다. 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은 여러 스트림을 지원하지만 모두 단일 클록을 공유하므로 다른 스트림과 독립적으로 하나의 스트림을 검색할 수 없습니다. 입력 스트림을 독립적으로 검색해야 하는 경우 다른 기술을 사용해야 합니다. 자세한 내용은 VMRMulti 샘플을 참조하세요.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 SP1이 설치된 Windows XP[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

IVMRFilterConfig 인터페이스

IVMRFilterConfig::GetNumberOfStreams

비디오 혼합 렌더러 사용