Share via


CSourceStream.GetMediaType 메서드(Source.h) - iPosition 및 pMediaType 매개 변수

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

GetMediaType 메서드는 기본 미디어 형식을 검색합니다.

구문

virtual HRESULT GetMediaType(
   int        iPosition,
   CMediaType *pMediaType
);

매개 변수

iPosition

0부터 시작하는 인덱스 값입니다.

pMediaType

미디어 형식을 수신하는 CMediaType 개체에 대한 포인터입니다.

반환 값

다음 표에 표시된 HRESULT 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
성공.
VFW_S_NO_MORE_ITEMS
범위를 벗어난 인덱스입니다.
E_INVALIDARG
인덱스가 0보다 작습니다.
E_UNEXPECTED
예기치 않은 오류입니다.

설명

이 메서드에는 두 가지 버전이 있습니다. 한 버전은 CBasePin::GetMediaType 메서드를 재정의하고 인덱스 값을 매개 변수로 사용합니다. 다른 버전은 단일 미디어 형식을 검색하도록 설계되었기 때문에 인덱스 매개 변수가 부족합니다.

단일 매개 변수 메서드는 E_UNEXPECTED 반환합니다. 두 매개 변수 메서드는 iPosition 매개 변수가 0인지 확인한 다음 단일 매개 변수 버전을 호출합니다. 핀이 지원하는 미디어 유형 수에 따라 다음 방법 중 하나를 재정의해야 합니다.

  • 핀이 정확히 하나의 미디어 형식을 지원하는 경우 단일 매개 변수 버전을 재정의합니다. 핀이 지원하는 미디어 유형을 입력합니다.
  • 핀이 둘 이상의 미디어 형식을 지원하는 경우 두 매개 변수 버전을 재정의합니다. 또한 CSourceStream::CheckMediaType 메서드를 재정의합니다.

요구 사항

요구 사항
헤더 Source.h(Streams.h 포함)
라이브러리 Strmbase.lib(소매 빌드); Strmbasd.lib(디버그 빌드)

추가 정보

CSourceStream 클래스