class Processor

Defined at line 1991 of file fidling/gen/sdk/fidl/fuchsia.audio.effects/fuchsia.audio.effects/hlcpp/fuchsia/audio/effects/cpp/fidl.h

An audio effect processor. Consumes one or more input streams, producing one

or more output streams. On creation, this protocol must be tied to a

[`fuchsia.audio.effects.Processor/ProcessorConfiguration`], which defines

the processor's input and output streams.

Public Methods

void ~Processor ()
void Process (uint64_t num_frames, ::fuchsia::audio::effects::ProcessOptions options, ProcessCallback callback)

Processes the given number of frames. This will consume `num_frames` from

each `ProcessorConfiguration.inputs[i]` and produce an equivalent number of

frames in each `ProcessorConfiguration.outputs[i]`.

## Execution model

All inputs and outputs must have identical frame rates. This simplifies

the problem of matching input and output frames, as described below.

At each call to `Process`, the effect collects audio from a set of input buffers

and produces a set of output buffers. The input buffers should be aligned by

time. That means: the first frame in each input buffer, input[i].buffer[0],

should have the same presentation time as all other frames input[j].buffer[0].

Output buffers with non-zero latency may be shifted relative to input buffers.

For each output k, input frame 0 has the same presentation time as the frame at

output[k].buffer[output[k].latency_frames].

+ request `num_frames` The number of frames to process.

+ request `options` Extra options.

- response `per_stage_metrics `Metrics about this process call, possibly

subdivided into multiple stages.

* error A zx.Status value indicating success or failure.