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
S_OK
성공.
E_OUTOFMEMORY
메모리가 부족합니다.
E_POINTER
NULL 포인터 값입니다.
VFW_E_INVALIDMEDIATYPE
이 미디어 유형이 잘못되었습니다.
VFW_E_NOT_CONNECTED
입력 핀이 연결되어 있지 않습니다.
VFW_E_NOT_STOPPED
형식을 설정할 수 없습니다. 필터가 중지되지 않았습니다.
VFW_E_WRONG_STATE
형식을 설정할 수 없습니다. 필터가 중지되지 않았습니다.

설명

이 메서드는 출력 핀의 형식을 지정합니다. 핀이 연결되지 않은 경우 다음 연결에 이 형식을 사용합니다. 핀이 이미 연결되어 있으면 이 형식으로 다시 연결하려고 시도합니다. 다른 핀이 새 형식을 거부하는 경우 메서드가 실패할 수 있습니다.

이 메서드가 성공하면 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

추가 정보

오류 및 성공 코드

IAMStreamConfig 인터페이스