Adding CustomAudioAnalyzer interface in APM.
CustomAudioAnalyzer is an interface of a component into APM that reads AudioBuffer without changing it. The APM sub-module is optional. It operates in full band. As described in the comments, it is an experimental interface which may be changed in the nearest future. Change-Id: I21edf729d97947529256407b10fa4b5219bb2bf5 Bug: webrtc:9678 Reviewed-on: https://webrtc-review.googlesource.com/96560 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Valeriia Nemychnikova <valeriian@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24481}
This commit is contained in:
committed by
Commit Bot
parent
7015bb410d
commit
f06eb57a2f
@ -53,6 +53,7 @@ class GainControl;
|
||||
class HighPassFilter;
|
||||
class LevelEstimator;
|
||||
class NoiseSuppression;
|
||||
class CustomAudioAnalyzer;
|
||||
class CustomProcessing;
|
||||
class VoiceDetection;
|
||||
|
||||
@ -675,6 +676,9 @@ class AudioProcessingBuilder {
|
||||
// The AudioProcessingBuilder takes ownership of the echo_detector.
|
||||
AudioProcessingBuilder& SetEchoDetector(
|
||||
rtc::scoped_refptr<EchoDetector> echo_detector);
|
||||
// The AudioProcessingBuilder takes ownership of the capture_analyzer.
|
||||
AudioProcessingBuilder& SetCaptureAnalyzer(
|
||||
std::unique_ptr<CustomAudioAnalyzer> capture_analyzer);
|
||||
// This creates an APM instance using the previously set components. Calling
|
||||
// the Create function resets the AudioProcessingBuilder to its initial state.
|
||||
AudioProcessing* Create();
|
||||
@ -685,6 +689,7 @@ class AudioProcessingBuilder {
|
||||
std::unique_ptr<CustomProcessing> capture_post_processing_;
|
||||
std::unique_ptr<CustomProcessing> render_pre_processing_;
|
||||
rtc::scoped_refptr<EchoDetector> echo_detector_;
|
||||
std::unique_ptr<CustomAudioAnalyzer> capture_analyzer_;
|
||||
RTC_DISALLOW_COPY_AND_ASSIGN(AudioProcessingBuilder);
|
||||
};
|
||||
|
||||
@ -1018,6 +1023,19 @@ class NoiseSuppression {
|
||||
virtual ~NoiseSuppression() {}
|
||||
};
|
||||
|
||||
// Experimental interface for a custom analysis submodule.
|
||||
class CustomAudioAnalyzer {
|
||||
public:
|
||||
// (Re-) Initializes the submodule.
|
||||
virtual void Initialize(int sample_rate_hz, int num_channels) = 0;
|
||||
// Analyzes the given capture or render signal.
|
||||
virtual void Analyze(const AudioBuffer* audio) = 0;
|
||||
// Returns a string representation of the module state.
|
||||
virtual std::string ToString() const = 0;
|
||||
|
||||
virtual ~CustomAudioAnalyzer() {}
|
||||
};
|
||||
|
||||
// Interface for a custom processing submodule.
|
||||
class CustomProcessing {
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user