Share via


IAudioProcessingObject::IsInputFormatSupported 메서드(audioenginebaseapo.h)

이 메서드는 Windows Vista 오디오 엔진과 협상하여 오디오 데이터 스트림에 대한 데이터 형식을 설정합니다.

구문

HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);

매개 변수

[in, optional] pOppositeFormat

IAudioMediaType 인터페이스에 대한 포인터입니다. 이 매개 변수는 데이터의 출력 형식을 나타내는 데 사용됩니다. 출력 형식이 모든 형식일 수 있음을 나타내려면 pOppositeFormat 값을 NULL 로 설정해야 합니다.

[in, optional] pRequestedInputFormat

IAudioMediaType 인터페이스에 대한 포인터입니다. 이 매개 변수는 확인할 입력 형식을 나타내는 데 사용됩니다.

[out, optional] ppSupportedInputFormat

이 매개 변수는 확인할 형식에 가장 가까운 지원되는 형식을 나타냅니다.

반환 값

호출이 성공적으로 완료되면 ppSupportedInputFormat 매개 변수는 pRequestedInputFormat 포인터를 반환하고 IsInputFormatSupported 메서드는 S_OK 값을 반환합니다. 그렇지 않으면 이 메서드는 다음 오류 코드 중 하나를 반환합니다.

반환 코드 설명
S_FALSE
입력/출력 형식 쌍의 형식은 지원되지 않습니다. ppSupportedInputFormat은 제안된 새 형식을 반환합니다.
APOERR_FORMAT_NOT_SUPPORTED
확인할 형식은 지원되지 않습니다. ppSupportedInputFormat 값은 변경되지 않습니다.
E_POINTER
메서드에 전달되는 포인터가 잘못되었습니다. ppSupportedInputFormat 값은 변경되지 않습니다.
기타 HRESULT 값
이러한 추가 오류 조건은 오디오 엔진에서 추적합니다.

설명

다른 API에 의한 메서드 구현 IsInputFormatSupported 에는 차이가 있습니다. 예를 들어 특정 구현에서는 입력 형식이 정수 형식인 경우에만 출력이 float 형식일 수 있습니다.

형식 협상을 시작하기 위해 오디오 서비스는 먼저 LFX sAPO의 출력을 기본 float32 기반 형식으로 설정합니다. 그런 다음 오디오 서비스는 LFX sAPO의 메서드를 호출 IAudioProcessingObject::IsInputFormatSupported 하고, 기본 형식을 제안하고, 이 메서드의 HRESULT 응답을 모니터링합니다. LFX sAPO의 입력이 제안된 형식을 지원할 수 있는 경우 지원되는 형식에 대한 참조와 함께 S_OK 반환합니다. LFX sAPO의 입력이 제안된 형식을 지원할 수 없는 경우 제안된 형식과 가장 일치하는 형식에 대한 참조와 함께 S_FALSE 반환합니다. LFX sAPO가 제안된 형식을 지원할 수 없고 근접 일치 항목이 없으면 APOERR_FORMAT_NOT_SUPPORTED 반환합니다. GFX sAPO는 LFX sAPO의 출력 형식으로 작동합니다. 따라서 GFX sAPO는 형식 협상 프로세스에 포함되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 audioenginebaseapo.h
라이브러리 Audioenginebaseapo.idl
IRQL 모든 수준