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

# SetShapePcmFormat

> SetShapePcmFormat

# SetShapePcmFormat

Sets the PCM format.

## Syntax

```cpp theme={null}
HRESULT SetShapePcmFormat(  
         SHAPE_PCM_CONTEXT* context,  
         SHAPE_PCM_FORMAT format  
)  
```

### Parameters

*context*   \_Inout\_\
Type: [SHAPE\_PCM\_CONTEXT\*](/reference/audio/shapepcmcontext/structs/shape_pcm_context)

Pointer to a [SHAPE\_PCM\_CONTEXT](/reference/audio/shapepcmcontext/structs/shape_pcm_context) structure.

*format*   \
Type: [SHAPE\_PCM\_FORMAT](/reference/audio/shapepcmcontext/enums/shape_pcm_format)

One member of the [SHAPE\_PCM\_FORMAT](/reference/audio/shapepcmcontext/enums/shape_pcm_format) enumeration.

### Return value

Type: HRESULT

HRESULT success or error code.

## Remarks

| Function                    | Description                                                                                                                                                                                                                                                                                                                                                                 |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Non-looping linear PCM      | Start the voice using the `SHAPE_SRC_COMMAND_TYPE_START` constant for the Sample Rate Convertor (SRC). Let the voice play to the end, or optionally stop it short of the end using the `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` constant. For more information, see  [SHAPE\_SRC\_COMMAND\_TYPE](/reference/audio/shapesrccontext/enums/shape_src_command_type) enumeration. |
| Infinite looping linear PCM | Set the PCM context loop count *loopCount* to the `SHAPE_PCM_INFINITE_LOOP_COUNT` constant. Start the voice using `SHAPE_SRC_COMMAND_TYPE_START` for the SRC. Let the voice play until you want to stop, either at the end of a loop using `SHAPE_SRC_COMMAND_TYPE_STOP_END` and let the voice play out, or immediately by using `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE`.   |
| Finite looping linear PCM   | Set the PCM context loop count *loopCount* to \[0, 254]. Start the voice using `SHAPE_SRC_COMMAND_TYPE_START` for the SRC. Let the voice play to the end, or optionally stop it at the end of a loop using `SHAPE_SRC_COMMAND_TYPE_STOP_END` and let the voice play out, or stop it immediately by using `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE`.                           |
| Circular PCM                | Start the voice using `SHAPE_SRC_COMMAND_TYPE_START` for the SRC. Keep streaming data, updating the PCM context write pointer, until you want to stop. Use `SHAPE_SRC_COMMAND_TYPE_STOP_END` to let the SRC play to the current PCM write pointer `loopStartWritePointer`, or `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` to stop it immediately.                               |

Input sample formats:\\

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/reference/pcm_format.png?fit=max&auto=format&n=gzrdvT5kpqAXKEQt&q=85&s=58f4b6bb7fadd542a8c9a337cd729ba2" alt="Diagram that shows the bit assignments for each of the four supported PCM input sample formats." width="740" height="357" data-path="images/gdk/reference/pcm_format.png" />

## Requirements

**Header:** shapepcmcontext.h

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

## See also

[Overview of ACP](/build/console-features/audio/overviews/acp-overview)\
[Overview of Shape](/build/console-features/audio/overviews/shape-overview)\
[shapepcmcontext](/reference/audio/shapepcmcontext/shapepcmcontext_members)


## Related topics

- [ShapePcmContext](/reference/audio/shapepcmcontext/shapepcmcontext_members.md)
- [SHAPE_PCM_FORMAT](/reference/audio/shapepcmcontext/enums/shape_pcm_format.md)
- [GetShapePcmFormat](/reference/audio/shapepcmcontext/functions/getshapepcmformat.md)
- [SetShapePcmAudioBuffer](/reference/audio/shapepcmcontext/functions/setshapepcmaudiobuffer_2.md)
- [SetShapePcmAudioBuffer function](/reference/audio/shapepcmcontext/functions/setshapepcmaudiobuffer.md)
