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