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 값을 반환합니다. 그렇지 않으면 이 메서드는 다음 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
입력/출력 형식 쌍의 형식은 지원되지 않습니다. ppSupportedInputFormat은 제안된 새 형식을 반환합니다. |
|
확인할 형식은 지원되지 않습니다. ppSupportedInputFormat 값은 변경되지 않습니다. |
|
메서드에 전달되는 포인터가 잘못되었습니다. ppSupportedInputFormat 값은 변경되지 않습니다. |
|
이러한 추가 오류 조건은 오디오 엔진에서 추적합니다. |
설명
다른 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 | 모든 수준 |