A block to render the audio unit.
SDKs
- iOS 10.0+
- macOS 10.12+
- Mac Catalyst 13.0+
- tvOS 10.0+
Framework
- Audio
Toolbox
Declaration
typealias AUInternalRenderBlock = (Unsafe Mutable Pointer<Audio Unit Render Action Flags>, Unsafe Pointer<Audio Time Stamp>, AUAudio Frame Count, Int, Unsafe Mutable Pointer<Audio Buffer List>, Unsafe Pointer<AURender Event>?, AURender Pull Input Block?) -> AUAudio Unit Status
Discussion
This block is implemented in subclasses and should not be used by hosts.
The block returns an audio unit status result code. If instead an error is returned, the output data should be assumed to be invalid.
The block takes the following parameters:
- actionFlags
The pointer to the action flags.
- timestamp
The HAL time at which the input data will be rendered. If there is a sample rate conversion or time compression/expansion downstream, the sample time will not have a defined correlation with the
Audio
sample time.Device - frameCount
The number of sample frames to render.
- outputBusNumber
The index of the output bus to render.
- outputData
The output bus’s render buffers and flags. The buffer pointers may be null on entry, in which case the block will render into memory it owns and modify the
m
pointers to point to that memory. The block is responsible for preserving the validity of that memory until it is next called to render, or until theData deallocate
method is called.Render Resources() - realtimeEventListHead
A time-ordered linked list of the events to be rendered during this cycle. A ramp event will only appear in the render cycle during which it starts; the audio unit is responsible for maintaining continued ramping state for any further render cycles.
- pullInputBlock
A block that the audio unit will call in order to pull for input data. This value may be
nil
for instrument and audio generator units (which do not have input busses).