IAMStreamConfig::SetFormat 메서드(strmif.h)
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
메서드는 SetFormat
핀의 출력 형식을 설정합니다.
구문
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
매개 변수
[in] pmt
새 형식을 지정하는 AM_MEDIA_TYPE 구조체에 대한 포인터입니다.
반환 값
HRESULT 값을 반환합니다. 가능한 값은 다음과 같습니다.
반환 코드 | Description |
---|---|
|
성공. |
|
메모리가 부족합니다. |
|
NULL 포인터 값입니다. |
|
이 미디어 유형이 잘못되었습니다. |
|
입력 핀이 연결되어 있지 않습니다. |
|
형식을 설정할 수 없습니다. 필터가 중지되지 않았습니다. |
|
형식을 설정할 수 없습니다. 필터가 중지되지 않았습니다. |
설명
이 메서드는 출력 핀의 형식을 지정합니다. 핀이 연결되지 않은 경우 다음 연결에 이 형식을 사용합니다. 핀이 이미 연결되어 있으면 이 형식으로 다시 연결하려고 시도합니다. 다른 핀이 새 형식을 거부하는 경우 메서드가 실패할 수 있습니다.
이 메서드가 성공하면 IPin::EnumMediaTypes 메서드에 대한 후속 호출은 새 형식을 반환하고 다른 형식은 반환하지 않습니다.
대부분의 필터에서 필터가 일시 중지되거나 실행 중이면 이 메서드가 실패합니다. 일부 압축 필터에서 필터의 입력 핀이 연결되지 않은 경우 메서드가 실패합니다.
일부 필터를 사용하면 NULL 값으로 이 메서드를 호출하여 핀을 기본 형식으로 다시 설정할 수 있습니다.
필터 개발자: 다음 설명에서는 이 메서드를 구현하는 방법을 설명합니다.
출력 핀이 연결되어 있지 않고 핀이 지정된 미디어 형식을 지원하는 경우 S_OK 반환합니다. 미디어 형식을 저장하고 CBasePin::GetMediaType 메서드에서 형식 번호 0으로 제공합니다. 다른 형식을 제공하지 말고 CBasePin::CheckMediaType 메서드에서 다른 형식을 거부합니다.
핀이 이미 연결되어 있고 핀이 미디어 유형을 지원하는 경우 해당 형식으로 핀을 다시 연결합니다. 다른 핀이 새 형식을 거부하는 경우 VFW_E_INVALIDMEDIATYPE 반환하고 원래 연결을 복원합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | strmif.h(Dshow.h 포함) |
라이브러리 | Strmiids.lib |