| 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; |
| optional int64 timestamp_ms = 10; |
| } |
| |
| // 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 { |
| // 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; |
| reserved 18; // Intelligibility enhancer enabled (deprecated). |
| // Pre amplifier. |
| optional bool pre_amplifier_enabled = 19; |
| optional float pre_amplifier_fixed_gain_factor = 20; |
| |
| // Next field number 21. |
| } |
| |
| message RuntimeSetting { |
| optional float capture_pre_gain = 1; |
| optional float custom_render_processing_setting = 2; |
| } |
| |
| message Event { |
| enum Type { |
| INIT = 0; |
| REVERSE_STREAM = 1; |
| STREAM = 2; |
| CONFIG = 3; |
| UNKNOWN_EVENT = 4; |
| RUNTIME_SETTING = 5; |
| } |
| |
| required Type type = 1; |
| |
| optional Init init = 2; |
| optional ReverseStream reverse_stream = 3; |
| optional Stream stream = 4; |
| optional Config config = 5; |
| optional RuntimeSetting runtime_setting = 6; |
| } |