ISampleGrabber::SetMediaType 메서드

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

참고

[더 이상 사용되지 않습니다. 이 API는 향후 Windows 릴리스에서 제거될 수 있습니다.]

 

메서드는 SetMediaType 샘플 그래버의 입력 핀에서 연결에 대한 미디어 형식을 지정합니다.

구문

HRESULT SetMediaType(
   const AM_MEDIA_TYPE *pType
);

매개 변수

pType

AM_MEDIA_TYPE 구조체에 대한 포인터는 필요한 미디어 형식을 지정합니다. 모든 구조체 멤버를 설정할 필요는 없습니다. 자세한 내용은 설명을 참조하세요.

반환 값

S_OK 반환합니다.

설명

기본적으로 샘플 그래버에는 기본 미디어 유형이 없습니다. 샘플 그래버가 올바른 필터에 연결되도록 하려면 필터 그래프를 작성하기 전에 이 메서드를 호출합니다.

이 메서드는 필터에서 허용할 미디어 형식의 범위를 제한합니다. 필터가 연결되면 pType에 지정된 미디어 형식과 일치하려고 시도합니다. 이렇게 하려면 주 형식, 하위 형식 및 형식 형식 GUID를 순서대로 비교합니다. 이러한 각 GUID에 대해 pType 에 GUID_NULL 값이 있는 경우 샘플 그래버가 추가 검사 없이 미디어 형식을 허용합니다. pType에 다른 값이 있는 경우 샘플 그래버가 연결 형식의 GUID와 비교합니다. 두 GUID가 정확히 일치하지 않는 한 샘플 그래버가 연결을 거부합니다.

비디오 미디어 형식의 경우 샘플 그래버가 형식 블록을 무시합니다. 따라서 비디오 크기와 프레임 속도를 허용합니다. 를 호출 SetMediaType할 때 형식 블록(pbFormat)을 NULL 로 설정하고 크기(cbFormat)를 0으로 설정합니다. 오디오 미디어 형식의 경우 샘플 그래버가 WAVEFORMATEX 구조를 검사하고 pType 의 형식 블록이 NULL이거나 형식 태그가 WAVE_FORMAT_PCM 다른 구조체 멤버가 0이 아니면 다른 필터가 해당 형식과 연결되어야 합니다.

예제 1:

  • 주 형식: MEDIATYPE_Video
  • 하위 형식: GUID_NULL
  • 형식 유형: GUID_NULL

샘플 그래버에서는 주 형식이 MEDIATYPE_Video 동일한 모든 비디오 형식을 허용합니다. 하위 형식은 검사 않습니다.

예제 2:

  • 주 형식: MEDIATYPE_Video
  • 하위 형식: MEDIASUBTYPE_RGB24
  • 형식 유형: GUID_NULL

이제 샘플 그래버가 하위 형식을 검사 RGB 24 비디오만 허용합니다.

제한: 설정한 형식에 관계없이 샘플 그래버 필터는 하향식 방향(음수 biHeight) 또는 형식 형식이 FORMAT_VideoInfo2 비디오 형식을 거부합니다. 이 경우 메서드가 SetMediaType 성공하더라도 필터는 연결되지 않습니다.

참고

헤더 파일 Qedit.h는 버전 7 이후의 Direct3D 헤더와 호환되지 않습니다.

 

참고

Qedit.h를 가져오려면 Windows Vista용 Microsoft Windows SDK 업데이트를 다운로드하고 3.0을 .NET Framework. Qedit.h는 Windows 7 및 .NET Framework 3.5 서비스 팩 1용 Microsoft Windows SDK 사용할 수 없습니다.

 

요구 사항

요구 사항
헤더
Qedit.h
라이브러리
Strmiids.lib

추가 정보

샘플 그래버 사용

ISampleGrabber 인터페이스