SpatialAudioObjectRenderStreamForMetadataActivationParams2 structure (spatialaudiometadata.h)
Represents activation parameters for a spatial audio render stream for metadata, extending SpatialAudioObjectRenderStreamForMetadataActivationParams (spatialaudiometadata.h) with the ability to specify stream options.
Syntax
typedef struct SpatialAudioObjectRenderStreamForMetadataActivationParams2 {
const WAVEFORMATEX *ObjectFormat;
AudioObjectType StaticObjectTypeMask;
UINT32 MinDynamicObjectCount;
UINT32 MaxDynamicObjectCount;
AUDIO_STREAM_CATEGORY Category;
HANDLE EventHandle;
GUID MetadataFormatId;
UINT32 MaxMetadataItemCount;
const PROPVARIANT *MetadataActivationParams;
ISpatialAudioObjectRenderStreamNotify *NotifyObject;
SPATIAL_AUDIO_STREAM_OPTIONS Options;
} SpatialAudioObjectRenderStreamForMetadataActivationParams2;
Members
ObjectFormat
Format descriptor for a single spatial audio object. All objects used by the stream must have the same format and the format must be of type WAVEFORMATEX or WAVEFORMATEXTENSIBLE.
StaticObjectTypeMask
A bitwise combination of AudioObjectType values indicating the set of static spatial audio channels that will be allowed by the activated stream.
MinDynamicObjectCount
The minimum number of concurrent dynamic objects. If this number of dynamic audio objects can't be activated simultaneously, ISpatialAudioClient::ActivateSpatialAudioStream will fail with this error SPTLAUDCLNT_E_NO_MORE_OBJECTS.
MaxDynamicObjectCount
The maximum number of concurrent dynamic objects that can be activated with ISpatialAudioObjectRenderStream.
Category
The category of the audio stream and its spatial audio objects.
EventHandle
The event that will signal the client to provide more audio data. This handle will be duplicated internally before it is used.
MetadataFormatId
The identifier of the metadata format for the currently active spatial rendering engine.
MaxMetadataItemCount
The maximum number of metadata items per frame.
MetadataActivationParams
Additional activation parameters.
NotifyObject
The object that provides notifications for spatial audio clients to respond to changes in the state of an ISpatialAudioObjectRenderStream. This object is used to notify clients that the number of dynamic spatial audio objects that can be activated concurrently is about to change.
Options
A member of the SPATIAL_AUDIO_STREAM_OPTIONS emumeration, specifying options for the activated audio stream.
Remarks
The following example shows how to activate a metadata stream with stream options.
void CreateSpatialAudioObjectRenderStreamForMetadata(
_In_ ISpatialAudioClient2* spatialAudioClient,
_In_ WAVEFORMATEX const* objectFormat,
AudioObjectType staticObjectTypeMask,
UINT32 minDynamicObjectCount,
UINT32 maxDynamicObjectCount,
AUDIO_STREAM_CATEGORY streamCategory,
_In_ HANDLE eventHandle,
REFGUID metadataFormatId,
UINT32 maxMetadataItemCount,
_In_opt_ PROPVARIANT const* metadataActivationParams,
_In_opt_ ISpatialAudioObjectRenderStreamNotify* notifyObject,
bool enableOffload,
_COM_Outptr_ ISpatialAudioObjectRenderStreamForMetadata** stream)
{
SpatialAudioObjectRenderStreamForMetadataActivationParams2 streamActivationParams =
{
objectFormat,
staticObjectTypeMask,
minDynamicObjectCount,
maxDynamicObjectCount,
streamCategory,
eventHandle,
metadataFormatId,
maxMetadataItemCount,
metadataActivationParams,
notifyObject,
enableOffload ? SPATIAL_AUDIO_STREAM_OPTIONS_OFFLOAD : SPATIAL_AUDIO_STREAM_OPTIONS_NONE
};
PROPVARIANT activateParamsPropVariant = {};
activateParamsPropVariant.vt = VT_BLOB;
activateParamsPropVariant.blob.cbSize = sizeof(streamActivationParams);
activateParamsPropVariant.blob.pBlobData = reinterpret_cast<BYTE*>(&streamActivationParams);
*stream = nullptr;
THROW_IF_FAILED(spatialAudioClient->ActivateSpatialAudioStream(&activateParamsPropVariant, IID_PPV_ARGS(stream)));
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Build 22000 |
Header | spatialaudiometadata.h |