webrtc/modules/audio_processing/debug.proto
Per Åhgren 8be2f201ba Add ability to state whether the APM output will be used
This CL adds the ability for the surrounding code to state that the
APM output will not be used. The intended usecase for this is to allow
APM to run at a lower complexity when the endpoint is muted.
When APM has been informed that the output will not be used, it can
turn off code that is needed only for ensuring that the output audio
will sound good.

Bug: b/154437967,b/163802450
Change-Id: I8e22989e35354372e96191d15da44beb9d1b26ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181200
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31949}
2020-08-17 12:56:24 +00:00

114 lines
3.5 KiB
Protocol Buffer

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 PlayoutAudioDeviceInfo {
optional int32 id = 1;
optional int32 max_volume = 2;
}
message RuntimeSetting {
optional float capture_pre_gain = 1;
optional float custom_render_processing_setting = 2;
optional float capture_fixed_post_gain = 3;
optional int32 playout_volume_change = 4;
optional PlayoutAudioDeviceInfo playout_audio_device_change = 5;
optional bool capture_output_used = 6;
}
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;
}