IApoAuxiliaryInputConfiguration::IsInputFormatSupported method (audioenginebaseapo.h)

Verifies that a specific auxiliary input format is supported by the APO.

Syntax

HRESULT IsInputFormatSupported(
  IAudioMediaType *pRequestedInputFormat,
  IAudioMediaType **ppSupportedInputFormat
);

Parameters

pRequestedInputFormat

The input format that is to be verified.

ppSupportedInputFormat

The APO populates this parameter with the supported input format closest to the format passed in to the method.

Return value

HRESULT

HRESULT Description
S_OK Successful completion. The APO should add a reference to pRequestedInputFormat and return it in ppSupportedInputFormat
S_FALSE Format is not supported. The APO should return a suggested supported format in ppSupportedInputFormat
APOERR_FORMAT_NOT_SUPPORTED Format is not supported. The APO should not modify ppSupportedInputFormat
E_POINTER Invalid pointer passed to this function.
Other values Another component is causing a failure. These failures are tracked by the system.

Remarks

If the APO can accept the requested format, it should add a reference to the requested format, return this as the supported output format, and return S_OK.

If the APO cannot accept the requested format it may suggest an alternate requested format. In this case it should create and return the suggested format, and return S_FALSE.

The returned supported format should be 'closest' to the requested format, meaning that the format should have the same values for the following properties, specified in priority order.

  • sample format
  • bit depth
  • number of channels
  • sample rate

The suggested format may only be different from the requested format if S_FALSE is returned. When returning any failure, the suggested format should be left untouched.

This API may be called at any time. The returned results will depend on the internal state of the APO which may be manipulated by external user-interfaces. Once the APO is locked for processing, however, this format cannot and will not changed.

This method may not be called from a real-time processing thread.

Requirements

Requirement Value
Minimum supported client Windows 10 Build 20348
Header audioenginebaseapo.h