blob: f7f8d10c916b3778b51548109e8a58129d8d006a [file] [log] [blame]
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package webrtc.audioproc;
// Contains the format of input/output/reverse audio. An Init message is added
// when any of the fields are changed.
message Init {
optional int32 sample_rate = 1;
optional int32 device_sample_rate = 2 [deprecated=true];
optional int32 num_input_channels = 3;
optional int32 num_output_channels = 4;
optional int32 num_reverse_channels = 5;
optional int32 reverse_sample_rate = 6;
optional int32 output_sample_rate = 7;
optional int32 reverse_output_sample_rate = 8;
optional int32 num_reverse_output_channels = 9;
}
// May contain interleaved or deinterleaved data, but don't store both formats.
message ReverseStream {
// int16 interleaved data.
optional bytes data = 1;
// float deinterleaved data, where each repeated element points to a single
// channel buffer of data.
repeated bytes channel = 2;
}
// May contain interleaved or deinterleaved data, but don't store both formats.
message Stream {
// int16 interleaved data.
optional bytes input_data = 1;
optional bytes output_data = 2;
optional int32 delay = 3;
optional sint32 drift = 4;
optional int32 level = 5;
optional bool keypress = 6;
// float deinterleaved data, where each repeated element points to a single
// channel buffer of data.
repeated bytes input_channel = 7;
repeated bytes output_channel = 8;
}
// Contains the configurations of various APM component. A Config message is
// added when any of the fields are changed.
message Config {
// Next field number 19.
// Acoustic echo canceler.
optional bool aec_enabled = 1;
optional bool aec_delay_agnostic_enabled = 2;
optional bool aec_drift_compensation_enabled = 3;
optional bool aec_extended_filter_enabled = 4;
optional int32 aec_suppression_level = 5;
// Mobile AEC.
optional bool aecm_enabled = 6;
optional bool aecm_comfort_noise_enabled = 7;
optional int32 aecm_routing_mode = 8;
// Automatic gain controller.
optional bool agc_enabled = 9;
optional int32 agc_mode = 10;
optional bool agc_limiter_enabled = 11;
optional bool noise_robust_agc_enabled = 12;
// High pass filter.
optional bool hpf_enabled = 13;
// Noise suppression.
optional bool ns_enabled = 14;
optional int32 ns_level = 15;
// Transient suppression.
optional bool transient_suppression_enabled = 16;
// Semicolon-separated string containing experimental feature
// descriptions.
optional string experiments_description = 17;
// Intelligibility Enhancer.
optional bool intelligibility_enhancer_enabled = 18;
// Pre amplifier.
optional bool pre_amplifier_enabled = 19;
optional float pre_amplifier_fixed_gain_factor = 20;
}
message Event {
enum Type {
INIT = 0;
REVERSE_STREAM = 1;
STREAM = 2;
CONFIG = 3;
UNKNOWN_EVENT = 4;
}
required Type type = 1;
optional Init init = 2;
optional ReverseStream reverse_stream = 3;
optional Stream stream = 4;
optional Config config = 5;
}