> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# chat_manager::start_processing_stream_state_changes

> chat_manager::start_processing_stream_state_changes

# chat\_manager::start\_processing\_stream\_state\_changes

Retrieves an array of all Game Chat 2 audio stream state changes that occurred since the last call to this method.

<a id="syntaxSection" />

## Syntax

```cpp theme={null}
void start_processing_stream_state_changes(  
    uint32_t* streamStateChangeCount,  
    game_chat_stream_state_change_array* streamStateChanges  
)  
```

<a id="parametersSection" />

### Parameters

*streamStateChangeCount*   \_Out\_\
Type: uint32\_t\*

The total number of state changes in *streamStateChanges*.

*streamStateChanges*   \_Outptr\_result\_buffer\_(\*streamStateChangeCount)\
Type: [game\_chat\_stream\_state\_change\_array](/reference/chat/gamechat2/structs/game_chat_stream_state_change#array)\*

An array of [game\_chat\_stream\_state\_change](/reference/chat/gamechat2/structs/game_chat_stream_state_change) structure pointers that represents the stream state changes to be processed by the app.

<a id="retvalSection" />

### Return value

Type: void

None.

<a id="remarksSection" />

## Remarks

This method retrieves all state changes queued by Game Chat 2 for audio streams, to be processed by the app. Calling this method retrieves information about how audio streams have been updated as an array of `game_chat_stream_state_change` structure pointers. The app iterates over the array and processes each stream state change as needed.

<Note>This method should not be called on your UI thread. Calling this method requires coordination with your audio thread.</Note>

After all stream state changes included in `streamStateChanges` have been processed, the app then calls [chat\_manager::finish\_processing\_stream\_state\_changes](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_stream_state_changes), passing the processed stream state changes back to Game Chat 2, to indicate that the resources associated with the processed stream state changes can be released.

<Note>If you call this method, you must call `chat_manager::finish_processing_stream_state_changes` after you have finished processing stream state changes. If you call this method again without first calling `chat_manager::finish_processing_stream_state_changes`, an error occurs.</Note>

For more information about processing stream state changes, see [Using the Game Chat 2 C++ API](/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2).

<a id="requirementsSection" />

## Requirements

**Header:** GameChat2.h

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

<a id="seealsoSection" />

## See also

[Intro to Game Chat 2](/services/xbox-services/multiplayer/chat/game-chat2/game-chat-2-intro)\
[chat\_manager](/reference/chat/gamechat2/classes/chat_manager/chat_manager)


## Related topics

- [chat_manager::finish_processing_stream_state_changes](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_stream_state_changes.md)
- [game_chat_stream_state_change](/reference/chat/gamechat2/structs/game_chat_stream_state_change.md)
- [game_chat_stream_state_change_type](/reference/chat/gamechat2/enums/game_chat_stream_state_change_type.md)
- [Real-time audio manipulation](/services/xbox-services/multiplayer/chat/game-chat2/real-time-audio-manipulation.md)
- [GameChat2 members](/reference/chat/gamechat2/gamechat2_members.md)
