|  | <link rel="stylesheet" href="../style.css" /> | 
|  |  | 
|  | [TOC] | 
|  | # fuchsia.audio.effects | 
|  |  | 
|  | <p><b>Added:7</b></p> | 
|  |  | 
|  | ## **PROTOCOLS** | 
|  |  | 
|  | ## Processor {#Processor} | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=26)* | 
|  | <p>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 | 
|  | <a class='link' href='../fuchsia.audio.effects.Processor/'>fuchsia.audio.effects.Processor</a>/<a class='link' href='../fuchsia.audio.effects.Processor/#ProcessorConfiguration'>ProcessorConfiguration</a>, which defines | 
|  | the processor's input and output streams.</p> | 
|  |  | 
|  | ### Process {#Processor.Process} | 
|  |  | 
|  | <p>Processes the given number of frames. This will consume <code>num_frames</code> from | 
|  | each <code>ProcessorConfiguration.inputs[i]</code> and produce an equivalent number of | 
|  | frames in each <code>ProcessorConfiguration.outputs[i]</code>.</p> | 
|  | <h2>Execution model</h2> | 
|  | <p>All inputs and outputs must have identical frame rates. This simplifies | 
|  | the problem of matching input and output frames, as described below.</p> | 
|  | <p>At each call to <code>Process</code>, 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].</p> | 
|  | <p>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].</p> | 
|  | <ul> | 
|  | <li>request <code>num_frames</code> The number of frames to process.</li> | 
|  | <li>request <code>options</code> Extra options.</li> | 
|  | </ul> | 
|  | <ul> | 
|  | <li>response <code>per_stage_metrics </code>Metrics about this process call, possibly | 
|  | subdivided into multiple stages.</li> | 
|  | </ul> | 
|  | <ul> | 
|  | <li>error A zx.status value indicating success or failure.</li> | 
|  | </ul> | 
|  |  | 
|  | #### Request {#Processor.Process_Request} | 
|  |  | 
|  | <table> | 
|  | <tr><th>Name</th><th>Type</th></tr> | 
|  | <tr> | 
|  | <td><code>num_frames</code></td> | 
|  | <td> | 
|  | <code>uint64</code> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td><code>options</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#ProcessOptions'>ProcessOptions</a></code> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  | #### Response {#Processor.Process_Response} | 
|  |  | 
|  | <table> | 
|  | <tr><th>Name</th><th>Type</th></tr> | 
|  | <tr> | 
|  | <td><code>result</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#Processor_Process_Result'>Processor_Process_Result</a></code> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ## ProcessorCreator {#ProcessorCreator} | 
|  | *Defined in [fuchsia.audio.effects/creator.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/creator.fidl;l=10)* | 
|  | <p>A factory for creating processors.</p> | 
|  |  | 
|  | ### Create {#ProcessorCreator.Create} | 
|  |  | 
|  | <p>Create a new Processor and return it's ProcessorConfiguration.</p> | 
|  | <ul> | 
|  | <li>request <code>name</code> A string naming the processor to create. The meaning of this | 
|  | name is up to the implementor.</li> | 
|  | </ul> | 
|  | <ul> | 
|  | <li>response <code>processor_configuration</code> Description of the new processor.</li> | 
|  | </ul> | 
|  | <ul> | 
|  | <li>error A zx.status value indicating success or failure.</li> | 
|  | </ul> | 
|  |  | 
|  | #### Request {#ProcessorCreator.Create_Request} | 
|  |  | 
|  | <table> | 
|  | <tr><th>Name</th><th>Type</th></tr> | 
|  | <tr> | 
|  | <td><code>name</code></td> | 
|  | <td> | 
|  | <code>string[1024]</code> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  | #### Response {#ProcessorCreator.Create_Response} | 
|  |  | 
|  | <table> | 
|  | <tr><th>Name</th><th>Type</th></tr> | 
|  | <tr> | 
|  | <td><code>result</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#ProcessorCreator_Create_Result'>ProcessorCreator_Create_Result</a></code> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  | ## **STRUCTS** | 
|  |  | 
|  | ### ProcessorCreator_Create_Response [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ProcessorCreator_Create_Response data-text="ProcessorCreator_Create_Response"} | 
|  | *Defined in [fuchsia.audio.effects/creator.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/creator.fidl;l=19)* | 
|  |  | 
|  | <table> | 
|  | <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> | 
|  | <tr id="ProcessorCreator_Create_Response.processor_configuration"> | 
|  | <td><code>processor_configuration</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#ProcessorConfiguration'>ProcessorConfiguration</a></code> | 
|  | </td> | 
|  | <td></td> | 
|  | <td>No default</td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### Processor_Process_Response  {#Processor_Process_Response data-text="Processor_Process_Response"} | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=53)* | 
|  |  | 
|  | <table> | 
|  | <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> | 
|  | <tr id="Processor_Process_Response.per_stage_metrics"> | 
|  | <td><code>per_stage_metrics</code></td> | 
|  | <td> | 
|  | <code>vector<<a class='link' href='#ProcessMetrics'>ProcessMetrics</a>>[8]</code> | 
|  | </td> | 
|  | <td></td> | 
|  | <td>No default</td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  |  | 
|  | ## **TABLES** | 
|  |  | 
|  | ### InputConfiguration [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#InputConfiguration data-text="InputConfiguration"} | 
|  |  | 
|  |  | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=145)* | 
|  | <p>Configures a single input stream.</p> | 
|  |  | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="InputConfiguration.format"> | 
|  | <td><h3 id="InputConfiguration.format" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>format</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../fuchsia.mediastreams/'>fuchsia.mediastreams</a>/<a class='link' href='../fuchsia.mediastreams/#AudioFormat'>AudioFormat</a></code> | 
|  | </td> | 
|  | <td><p>Format of this input stream. | 
|  | Required.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="InputConfiguration.buffer"> | 
|  | <td><h3 id="InputConfiguration.buffer" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>buffer</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../fuchsia.mem/'>fuchsia.mem</a>/<a class='link' href='../fuchsia.mem/#Range'>Range</a></code> | 
|  | </td> | 
|  | <td><p>Buffer for this input stream. Must provide write access and must have | 
|  | enough space for <code>ProcessorConfiguration.max_frames_per_call</code>.</p> | 
|  | <p>Required.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### OutputConfiguration [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#OutputConfiguration data-text="OutputConfiguration"} | 
|  |  | 
|  |  | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=158)* | 
|  | <p>Configures a single output stream.</p> | 
|  |  | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="OutputConfiguration.format"> | 
|  | <td><h3 id="OutputConfiguration.format" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>format</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../fuchsia.mediastreams/'>fuchsia.mediastreams</a>/<a class='link' href='../fuchsia.mediastreams/#AudioFormat'>AudioFormat</a></code> | 
|  | </td> | 
|  | <td><p>Format of this output stream. | 
|  | Required.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="OutputConfiguration.buffer"> | 
|  | <td><h3 id="OutputConfiguration.buffer" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>buffer</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../fuchsia.mem/'>fuchsia.mem</a>/<a class='link' href='../fuchsia.mem/#Range'>Range</a></code> | 
|  | </td> | 
|  | <td><p>Buffer for this output stream. Must provide write access and must have | 
|  | enough space for <code>ProcessorConfiguration.max_frames_per_call</code>. | 
|  | Write access is needed so the audio system can write to the output | 
|  | buffer in error cases, such as when the Processor disconnects.</p> | 
|  | <p>If the effect supports in-place updates, this may refer to the same memory | 
|  | range as an input buffer.</p> | 
|  | <p>Required.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="OutputConfiguration.latency_frames"> | 
|  | <td><h3 id="OutputConfiguration.latency_frames" class="add-link hide-from-toc">3</h3></td> | 
|  | <td><code>latency_frames</code></td> | 
|  | <td> | 
|  | <code>uint64</code> | 
|  | </td> | 
|  | <td><p>If specified, the output signal is shifted by this many frames. | 
|  | If not specified, this is zero. | 
|  | See the explanation at <code>[fuchsia.audio.effects/Processor.Process]</code>.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="OutputConfiguration.ring_out_frames"> | 
|  | <td><h3 id="OutputConfiguration.ring_out_frames" class="add-link hide-from-toc">4</h3></td> | 
|  | <td><code>ring_out_frames</code></td> | 
|  | <td> | 
|  | <code>uint64</code> | 
|  | </td> | 
|  | <td><p>If specified, then input frame F will affect the output stream up through | 
|  | frame F + <code>ring_out_frames</code>. If not specified, this is zero.</p> | 
|  | <p>Put differently, if the effect is given an input stream with N non-silent | 
|  | frames followed by infinite silence, the effect will produce up to N + | 
|  | <code>ring_out_frames</code> non-silent frames before emitting silence.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### ProcessMetrics  {#ProcessMetrics data-text="ProcessMetrics"} | 
|  |  | 
|  |  | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=82)* | 
|  | <p>An extensible container of metrics about a single Processor.Process call. | 
|  | All fields are optional.</p> | 
|  |  | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="ProcessMetrics.name"> | 
|  | <td><h3 id="ProcessMetrics.name" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>name</code></td> | 
|  | <td> | 
|  | <code>string[64]</code> | 
|  | </td> | 
|  | <td><p>Each process call may be (optionally) divided into multiple stages, | 
|  | each with their own ProcessMetrics. This field names the stage described | 
|  | by this table.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessMetrics.wall_time"> | 
|  | <td><h3 id="ProcessMetrics.wall_time" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>wall_time</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> | 
|  | </td> | 
|  | <td><p>Total wall-clock time from the moment the Process call is received to | 
|  | the moment a response is returned.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessMetrics.cpu_time"> | 
|  | <td><h3 id="ProcessMetrics.cpu_time" class="add-link hide-from-toc">3</h3></td> | 
|  | <td><code>cpu_time</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> | 
|  | </td> | 
|  | <td><p>Total amount of time spent running on the CPU. | 
|  | See zx_info_task_runtime.cpu_time.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessMetrics.queue_time"> | 
|  | <td><h3 id="ProcessMetrics.queue_time" class="add-link hide-from-toc">4</h3></td> | 
|  | <td><code>queue_time</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> | 
|  | </td> | 
|  | <td><p>Total amount of time spent waiting to run. Only counts "ready" time. | 
|  | See zx_info_task_runtime.queue_time.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessMetrics.page_fault_time"> | 
|  | <td><h3 id="ProcessMetrics.page_fault_time" class="add-link hide-from-toc">5</h3></td> | 
|  | <td><code>page_fault_time</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> | 
|  | </td> | 
|  | <td><p>Total amount of time spent handling page faults. | 
|  | See zx_info_task_runtime.page_fault_time.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessMetrics.kernel_lock_contention_time"> | 
|  | <td><h3 id="ProcessMetrics.kernel_lock_contention_time" class="add-link hide-from-toc">6</h3></td> | 
|  | <td><code>kernel_lock_contention_time</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> | 
|  | </td> | 
|  | <td><p>Total amount of time spent waiting on contended kernel locks. | 
|  | See zx_info_task_runtime.lock_contention_time.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### ProcessOptions  {#ProcessOptions data-text="ProcessOptions"} | 
|  |  | 
|  |  | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=59)* | 
|  | <p>An extensible container of options for Processor.Process.</p> | 
|  |  | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="ProcessOptions.total_applied_gain_db_per_input"> | 
|  | <td><h3 id="ProcessOptions.total_applied_gain_db_per_input" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>total_applied_gain_db_per_input</code></td> | 
|  | <td> | 
|  | <code>vector<float32>[8]</code> | 
|  | </td> | 
|  | <td><p>The total gain that has been applied to each input stream by prior | 
|  | processing steps. For example, given an audio pipeline of the form input -> | 
|  | ProcessorA -> ProcessorB, if input is a sine wave with unity amplitude and | 
|  | ProcessorA applies a gain of -5.0dB, then ProcessorB should be called with | 
|  | total_applied_gain_db_per_input[0] = -5.0dB and ProcessorB's input buffer | 
|  | should contain a sine wave with amplitude -5.0dB.</p> | 
|  | <p>If not specified, the applied gain is 0 dB for each input.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessOptions.usage_mask_per_input"> | 
|  | <td><h3 id="ProcessOptions.usage_mask_per_input" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>usage_mask_per_input</code></td> | 
|  | <td> | 
|  | <code>vector<uint32>[8]</code> | 
|  | </td> | 
|  | <td><p>All fuchsia.media.AudioRenderUsages that contribute to each input | 
|  | stream. This is a bitmask of (1 << r), for each AudioRenderUsage that | 
|  | contributes. For example, if an input stream contains BACKGROUND (== 0) | 
|  | and INTERRUPTION (== 2), the bitmask is ((1<<0)|(1<<2)) = 0x5.</p> | 
|  | <p>Note: this field may be removed once we have transitions to the new | 
|  | Fuchsia media APIs.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### ProcessorConfiguration [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ProcessorConfiguration data-text="ProcessorConfiguration"} | 
|  |  | 
|  |  | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=110)* | 
|  | <p>Configures a Processor.</p> | 
|  |  | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="ProcessorConfiguration.processor"> | 
|  | <td><h3 id="ProcessorConfiguration.processor" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>processor</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#Processor'>Processor</a></code> | 
|  | </td> | 
|  | <td><p>Dedicated FIDL channel for this processor. | 
|  | Required.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessorConfiguration.inputs"> | 
|  | <td><h3 id="ProcessorConfiguration.inputs" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>inputs</code></td> | 
|  | <td> | 
|  | <code>vector<<a class='link' href='#InputConfiguration'>InputConfiguration</a>>[8]</code> | 
|  | </td> | 
|  | <td><p>A description of all input streams for this processor. | 
|  | Must have at least one input.</p> | 
|  | <p>Each input stream can have a different sample format or channel count, but | 
|  | all inputs must have the same frame rate.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessorConfiguration.outputs"> | 
|  | <td><h3 id="ProcessorConfiguration.outputs" class="add-link hide-from-toc">3</h3></td> | 
|  | <td><code>outputs</code></td> | 
|  | <td> | 
|  | <code>vector<<a class='link' href='#OutputConfiguration'>OutputConfiguration</a>>[8]</code> | 
|  | </td> | 
|  | <td><p>A description of all output streams for this processor. | 
|  | Must have at least one output.</p> | 
|  | <p>Each output stream can have a different sample format or channel count, | 
|  | but all outputs must have the same frame rate as the input(s) -- effects | 
|  | are allowed to perform sample format conversion and rechannelization as | 
|  | long as the frame rate does not change.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessorConfiguration.max_frames_per_call"> | 
|  | <td><h3 id="ProcessorConfiguration.max_frames_per_call" class="add-link hide-from-toc">4</h3></td> | 
|  | <td><code>max_frames_per_call</code></td> | 
|  | <td> | 
|  | <code>uint64</code> | 
|  | </td> | 
|  | <td><p>The maximum number of frames that may be processed per call to | 
|  | <a class='link' href='../fuchsia.audio.effects/'>fuchsia.audio.effects</a>/<a class='link' href='../fuchsia.audio.effects/#Processor.Process'>Processor.Process</a>. The default limit is the | 
|  | number of frames that can fit in the smallest input buffer. If specified, | 
|  | this must be smaller than the default limit.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="ProcessorConfiguration.block_size_frames"> | 
|  | <td><h3 id="ProcessorConfiguration.block_size_frames" class="add-link hide-from-toc">5</h3></td> | 
|  | <td><code>block_size_frames</code></td> | 
|  | <td> | 
|  | <code>uint64</code> | 
|  | </td> | 
|  | <td><p>If specified, all calls to <a class='link' href='../fuchsia.audio.effects/'>fuchsia.audio.effects</a>/<a class='link' href='../fuchsia.audio.effects/#Processor.Process'>Processor.Process</a>. | 
|  | must set <code>num_frames</code> to a multiple of this number. Must be less than or | 
|  | equal to <code>max_frames_per_call</code>. If not specified, then any block size is | 
|  | allowed.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  | ## **UNIONS** | 
|  |  | 
|  | ### ProcessorCreator_Create_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#ProcessorCreator_Create_Result data-text="ProcessorCreator_Create_Result"} | 
|  | *Defined in [fuchsia.audio.effects/creator.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/creator.fidl;l=19)* | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="ProcessorCreator_Create_Result.response"> | 
|  | <td><h3 id="ProcessorCreator_Create_Result.response" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>response</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#ProcessorCreator_Create_Response'>ProcessorCreator_Create_Response</a></code> | 
|  | </td> | 
|  | <td></td> | 
|  | </tr> | 
|  | <tr id="ProcessorCreator_Create_Result.err"> | 
|  | <td><h3 id="ProcessorCreator_Create_Result.err" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>err</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> | 
|  | </td> | 
|  | <td></td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | ### Processor_Process_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute}  {#Processor_Process_Result data-text="Processor_Process_Result"} | 
|  | *Defined in [fuchsia.audio.effects/processor.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=53)* | 
|  | <table> | 
|  | <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="Processor_Process_Result.response"> | 
|  | <td><h3 id="Processor_Process_Result.response" class="add-link hide-from-toc">1</h3></td> | 
|  | <td><code>response</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='#Processor_Process_Response'>Processor_Process_Response</a></code> | 
|  | </td> | 
|  | <td></td> | 
|  | </tr> | 
|  | <tr id="Processor_Process_Result.err"> | 
|  | <td><h3 id="Processor_Process_Result.err" class="add-link hide-from-toc">2</h3></td> | 
|  | <td><code>err</code></td> | 
|  | <td> | 
|  | <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> | 
|  | </td> | 
|  | <td></td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  |  | 
|  |  | 
|  | ## **CONSTANTS** | 
|  |  | 
|  | <table> | 
|  | <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> | 
|  | <tr id="MAX_INPUT_STREAMS"> | 
|  | <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=13">MAX_INPUT_STREAMS</a></td> | 
|  | <td> | 
|  | <code>8</code> | 
|  | </td> | 
|  | <td><code>uint32</code></td> | 
|  | <td><p>The maximum number of input and output streams. | 
|  | These bounds are somewhat arbitrary; in practice we don't expect more than 1 | 
|  | or 2 inputs and outputs in the vast majority of cases.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="MAX_OUTPUT_STREAMS"> | 
|  | <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=14">MAX_OUTPUT_STREAMS</a></td> | 
|  | <td> | 
|  | <code>8</code> | 
|  | </td> | 
|  | <td><code>uint32</code></td> | 
|  | <td></td> | 
|  | </tr> | 
|  | <tr id="MAX_PROCESS_STAGES"> | 
|  | <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=17">MAX_PROCESS_STAGES</a></td> | 
|  | <td> | 
|  | <code>8</code> | 
|  | </td> | 
|  | <td><code>uint32</code></td> | 
|  | <td><p>The maximum size of the per_stage_metrics array.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr id="MAX_PROCESS_STAGE_NAME_LENGTH"> | 
|  | <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.audio.effects/processor.fidl;l=20">MAX_PROCESS_STAGE_NAME_LENGTH</a></td> | 
|  | <td> | 
|  | <code>64</code> | 
|  | </td> | 
|  | <td><code>uint32</code></td> | 
|  | <td><p>The maximum length of the name of a process stage.</p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> |