ISampleGrabber::SetMediaType 메서드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media 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 사용할 수 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보