| OLD | NEW | 
| (Empty) |  | 
 |   1 /* | 
 |   2  *  Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 
 |   3  * | 
 |   4  *  Use of this source code is governed by a BSD-style license | 
 |   5  *  that can be found in the LICENSE file in the root of the source | 
 |   6  *  tree. An additional intellectual property rights grant can be found | 
 |   7  *  in the file PATENTS.  All contributing project authors may | 
 |   8  *  be found in the AUTHORS file in the root of the source tree. | 
 |   9  */ | 
 |  10  | 
 |  11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_RENDER_DELAY_CONTROLLER_H_ | 
 |  12 #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_RENDER_DELAY_CONTROLLER_H_ | 
 |  13  | 
 |  14 #include "webrtc/base/array_view.h" | 
 |  15 #include "webrtc/base/optional.h" | 
 |  16 #include "webrtc/modules/audio_processing/aec3/render_delay_buffer.h" | 
 |  17 #include "webrtc/modules/audio_processing/logging/apm_data_dumper.h" | 
 |  18  | 
 |  19 namespace webrtc { | 
 |  20  | 
 |  21 // Class for aligning the render and capture signal using a RenderDelayBuffer. | 
 |  22 class RenderDelayController { | 
 |  23  public: | 
 |  24   static RenderDelayController* Create( | 
 |  25       int sample_rate_hz, | 
 |  26       const RenderDelayBuffer& render_delay_buffer); | 
 |  27   virtual ~RenderDelayController() = default; | 
 |  28  | 
 |  29   // Aligns the render buffer content with the capture signal. | 
 |  30   virtual size_t GetDelay(rtc::ArrayView<const float> capture) = 0; | 
 |  31  | 
 |  32   // Analyzes the render signal and returns false if there is a buffer overrun. | 
 |  33   virtual bool AnalyzeRender(rtc::ArrayView<const float> render) = 0; | 
 |  34  | 
 |  35   // Returns an approximate value for the headroom in the buffer alignment. | 
 |  36   virtual rtc::Optional<size_t> AlignmentHeadroomSamples() const = 0; | 
 |  37 }; | 
 |  38 }  // namespace webrtc | 
 |  39  | 
 |  40 #endif  // WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_RENDER_DELAY_CONTROLLER_H_ | 
| OLD | NEW |