|  | 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 [deprecated = true]; | 
|  | optional int32 aecm_routing_mode = 8 [deprecated = true]; | 
|  | // 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; | 
|  | } |