blob: 8e58fbef585886ce53e3eccd336a60cf536af715 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.audio.mixer;
/// Ways that a Mixer node can sample from its source stream to produce a
/// destination stream.
type Sampler = flexible union {
1: sinc_sampler SincSampler;
};
/// Use a windowed sinc sampler.
type SincSampler = table {
/// Number of taps to include on each side of the filter, not counting the
/// center point. When upsampling, the filter reads from 1 + 2*taps_per_side
/// source frames to produce each destination frame. When downsampling, this
/// number is scaled by the downsampling ratio.
///
/// Required.
1: taps_per_side uint32;
/// Optionally, apply a low-pass filter.
2: low_pass_frequency uint32;
/// Optionally, apply a high-pass filter.
3: high_pass_frequency uint32;
};