> ## 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.

# SHAPE_XMA_CONTEXT

> SHAPE_XMA_CONTEXT

# SHAPE\_XMA\_CONTEXT

Contexte XBOX Media Audio (XMA).

<a id="syntaxSection" />

## Syntaxe

```cpp theme={null}
typedef struct SHAPE_XMA_CONTEXT {  
    UINT32 sizeRead0 : 12;  
    UINT32 numLoops : 8;  
    UINT32 validBuffer : 2;  
    UINT32 sizeWrite : 5;  
    UINT32 offsetWrite : 5;  
    UINT32 sizeRead1 : 12;  
    UINT32 loopSubframeEnd : 2;  
    UINT32 reserved0 : 3;  
    UINT32 loopSubframeSkip : 3;  
    UINT32 numSubframesToDecode : 4;  
    UINT32 numSubframesToSkip : 3;  
    UINT32 sampleRate : 2;  
    UINT32 numChannels : 1;  
    UINT32 reserved1 : 1;  
    UINT32 validWrite : 1;  
    UINT32 offsetRead : 26;  
    UINT32 errorStatus : 5;  
    UINT32 errorSet : 1;  
    UINT32 loopStartOffset : 26;  
    UINT32 parserErrorStatus : 5;  
    UINT32 parserErrorSet : 1;  
    UINT32 loopEndOffset : 26;  
    UINT32 packetMetaData : 5;  
    UINT32 currentBuffer : 1;  
    UINT32 ptrRead0;  
    UINT32 ptrRead1;  
    UINT32 ptrWrite;  
    UINT32 ptrOverlapAdd;  
    UINT32 writeBufferOffsetRead : 5;  
    UINT32 reserved2 : 25;  
    UINT32 stopWhenDone : 1;  
    UINT32 interruptWhenDone : 1;  
    UINT32 reserved[6];  
} SHAPE_XMA_CONTEXT  
```

<a id="membersSection" />

### Membres

*sizeRead0*\
Type : UINT32

Écriture : taille, en blocs de 2 Ko, de la mémoire tampon d'entrée gauche.

*numLoops*\
Type : UINT32

Lecture/écriture : nombre de boucles. 255 spécifie une boucle infinie (continue).

*validBuffer*\
Type : UINT32

Lecture/écriture : indicateurs de validité des mémoires tampons d'entrée.

| Valeur | Description |
| - | - |
| 00 | Aucune mémoire tampon n'est valide. |
| 01 | Seule la mémoire tampon 0 (gauche) est valide. |
| 10 | Seule la mémoire tampon 1 (droite) est valide. |
| 11 | Les deux mémoires tampons sont valides. |

*sizeWrite*\
Type : UINT32

Écriture : taille, en blocs de 256 octets, de la mémoire tampon de sortie.

*offsetWrite*\
Type : UINT32

Lecture : décalage, en blocs de 256 octets, dans la mémoire tampon de sortie où le matériel écrira.

*sizeRead1*\
Type : UINT32

Écriture : taille, en blocs de 2 Ko, de la mémoire tampon d'entrée droite.

*loopSubframeEnd*\
Type : UINT32

Écriture : numéro de la sous-trame du point de fin de la boucle, inclusivement.

*reserved0*\
Type : UINT32

Réservé.

*loopSubframeSkip*\
Type : UINT32

Écriture : nombre de sous-trames à ignorer au début de la boucle. Les valeurs valides sont 0, 1, 2, 3 et 4.

*numSubframesToDecode*\
Type : UINT32

Écriture : nombre de sous-trames à décoder par passe. Les valeurs valides sont 1, 2, 4 et 8.

*numSubframesToSkip*\
Type : UINT32

Écriture : nombre de sous-trames à ignorer. Les valeurs valides sont 0, 1, 2, 3 et 4.

*sampleRate*\
Type : UINT32

Écriture : fréquence d'échantillonnage du flux. Les valeurs valides figurent dans l'énumération [SHAPE\_XMA\_SAMPLE\_RATE](/fr-CA/reference/audio/shapexmacontext/enums/shape_xma_sample_rate).

*numChannels*\
Type : UINT32

Écriture : nombre de canaux du flux. 0 spécifie mono (un canal); 1 spécifie stéréo (deux canaux).

*reserved1*\
Type : UINT32

Réservé.

*validWrite*\
Type : UINT32

Lecture/écriture : indicateur de validité de la mémoire tampon d'écriture. 1 indique que le matériel peut écrire; 0 indique que le matériel ne peut pas écrire.

*offsetRead*\
Type : UINT32

Lecture/écriture : décalage, en bits, à partir du début de la mémoire tampon d'entrée.

*errorStatus*\
Type : UINT32

Lecture : une ou plusieurs valeurs d'erreur.

| Erreur | Valeur |
| - | - |
| SHAPE\_XMA\_ERROR\_STATUS\_NO\_ERROR\_OCCURRED\_ERRORSET\_IS\_0 | 0 |
| SHAPE\_XMA\_ERROR\_STATUS\_WRITE\_BUFFER\_INVALID\_VALIDWR\_IS\_0 | 1 |
| SHAPE\_XMA\_ERROR\_STATUS\_INSUFFICIENT\_WRITE\_BUFFER\_SPACE\_VALIDWR\_IS\_1 | 2 |
| SHAPE\_XMA\_ERROR\_STATUS\_READ\_BUFFER\_INVALID\_VALIDBUFFER\_CURRBUF\_IS\_0 | 4 |
| SHAPE\_XMA\_ERROR\_STATUS\_FRAME\_CROSSES\_BOUNDARY\_INTO\_INVALID\_READ\_BUFFER\_VALIDBUFFER\_CURRBUF\_IS\_0 | 8 |
| SHAPE\_XMA\_ERROR\_STATUS\_FRAME\_CROSSES\_BOTH\_READ\_BUFFER\_BOUNDARIES | 16 |

*errorSet*\
Type : UINT32

Lecture : indicateur d'erreur. 0 si aucune erreur ne s'est produite; 1 si une erreur s'est produite. Utilisez [GetShapeXmaErrorStatus](/fr-CA/reference/audio/shapexmacontext/functions/getshapexmaerrorstatus) pour récupérer les valeurs d'erreur.

*loopStartOffset*\
Type : UINT32

Écriture : décalage, en bits, à partir du pointeur de la mémoire tampon de lecture où le matériel commencera le décodage.

*parserErrorStatus*\
Type : UINT32

Lecture : valeur d'erreur de l'analyseur.

| Erreur | Valeur |
| - | - |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_UNKNOWN\_STATE | 1 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_OUT\_OF\_RANGE | 2 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_FRAME\_SIZE\_EXCEEDED | 3 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_BITSTREAM\_CORRUPTION | 4 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_BARKVLC\_ERROR | 5 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_BARKRLC\_ERROR | 6 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_VLC4D\_ERROR | 7 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_VLC2D\_ERROR | 8 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_VLC1D\_ERROR | 9 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_RLC0\_ERROR | 10 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_RLC1\_ERROR | 11 |
| SHAPE\_XMA\_PARSER\_ERROR\_STATUS\_LARGEVAL24\_ERROR | 15 |

*parserErrorSet*\
Type : UINT32

Lecture : indicateur d'erreur de l'analyseur. 0 si aucune erreur ne s'est produite; 1 si une erreur s'est produite. Utilisez [GetShapeXmaParserErrorStatus](/fr-CA/reference/audio/shapexmacontext/functions/getshapexmaparsererrorstatus) pour récupérer la valeur d'erreur.

*loopEndOffset*\
Type : UINT32

Écriture : décalage, en bits, à partir du pointeur de la mémoire tampon de lecture où le matériel terminera le décodage.

*packetMetaData*\
Type : UINT32

Réservé à un usage interne.

*currentBuffer*\
Type : UINT32

Lecture/écriture : mémoire tampon d'entrée actuelle. 0 spécifie la mémoire tampon gauche et 1, la mémoire tampon droite.

*ptrRead0*\
Type : UINT32

Écriture : pointeur vers la mémoire tampon d'entrée gauche. Aligné sur des limites de 2 Ko; les 11 bits inférieurs sont ignorés.

*ptrRead1*\
Type : UINT32

Écriture : pointeur vers la mémoire tampon d'entrée droite. Aligné sur des limites de 2 Ko; les 11 bits inférieurs sont ignorés.

*ptrWrite*\
Type : UINT32

Écriture : pointeur vers la mémoire tampon de sortie. Aligné sur des limites de 64 octets.

*ptrOverlapAdd*\
Type : UINT32

Écriture : pointeur vers la mémoire tampon de travail. Aligné sur des limites de 128 octets.

*writeBufferOffsetRead*\
Type : UINT32

Écriture : décalage, en blocs de 256 octets, du pointeur de lecture dans la mémoire tampon de sortie.

*reserved2*\
Type : UINT32

Réservé.

*stopWhenDone*\
Type : UINT32

Réservé à un usage interne.

*interruptWhenDone*\
Type : UINT32

Réservé à un usage interne.

*reserved*\
Type : UINT32\[6]

Réservé.

<a id="remarksSection" />

## Remarques

Cette structure contient le contexte du bloc décodeur XMA.

La taille maximale d'une mémoire tampon d'entrée est de 8 Mo. Pour déterminer l'état de consommation d'une mémoire tampon d'entrée, examinez les membres *offsetRead*, *currentBuffer* et *validBuffer*.

Les membres marqués **Lecture** sont écrits par la bibliothèque Audio Control Processor (ACP) et ne doivent être que lus par votre application. Les membres marqués **Écriture** sont définis par votre application et ne sont pas modifiés par la bibliothèque ACP. Les membres marqués **Lecture/écriture** sont définis par votre application, mais peuvent être modifiés par la bibliothèque ACP.

Pour plus d'informations, consultez la section [XMA](/fr-CA/build/console-features/audio/overviews/shape-overview#ID4EYD) de la [Vue d'ensemble de SHAPE](/fr-CA/build/console-features/audio/overviews/shape-overview).

<a id="requirementsSection" />

## Configuration requise

**En-tête :** shapexmacontext.h

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

<a id="seealsoSection" />

## Documentation conceptuelle

* [Vue d'ensemble d'ACP](/fr-CA/build/console-features/audio/overviews/acp-overview)

## Voir aussi

[ShapeXmaContext](/fr-CA/reference/audio/shapexmacontext/shapexmacontext_members)


## Related topics

- [SHAPE_XMA_CONTEXT](/reference/audio/shapexmacontext/structs/shape_xma_context.md)
- [ShapeXmaContext](/reference/audio/shapexmacontext/shapexmacontext_members.md)
- [SetShapeXmaSampleRate(SHAPE_XMA_CONTEXT*, SHAPE_XMA_SAMPLE_RATE)](/reference/audio/shapexmacontext/functions/setshapexmasamplerate.md)
- [SetShapeXmaOutputBuffer(SHAPE_XMA_CONTEXT*, void*)](/reference/audio/shapexmacontext/functions/setshapexmaoutputbuffer.md)
