<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.13.0 -",
    "tvOS: 11.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 4.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFAudio",
  "identifier" : "/documentation/AVFAudio/AVAudioInputNode/setManualRenderingInputPCMFormat(_:inputBlock:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AVFAudio"
    ],
    "preciseIdentifier" : "c:objc(cs)AVAudioInputNode(im)setManualRenderingInputPCMFormat:inputBlock:"
  },
  "title" : "setManualRenderingInputPCMFormat(_:inputBlock:)"
}
-->

# setManualRenderingInputPCMFormat(_:inputBlock:)

Supplies the data through the input node to the engine while operating in the manual rendering mode.

```
func setManualRenderingInputPCMFormat(_ format: AVAudioFormat, inputBlock block: @escaping AVAudioIONodeInputBlock) -> Bool
```

## Parameters

`format`

The format of the PCM audio data the block supplies to the engine.

`block`

The block the engine calls on the input node to get the audio to send to the output when operating in the manual rendering mode. For more information, see [`AVAudioIONodeInputBlock`](/documentation/AVFAudio/AVAudioIONodeInputBlock).

## Discussion

The block must be non-`nil` when using an input node while the engine is operating in manual rendering mode. If you switch the engine to render to and from an audio device, it invalidates any previous block.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)