Chromium Code Reviews| Index: webrtc/modules/audio_processing/gain_control_impl.h |
| diff --git a/webrtc/modules/audio_processing/gain_control_impl.h b/webrtc/modules/audio_processing/gain_control_impl.h |
| index f24d200cf2216a05d4c162a655bcf8170d5bea37..55553228604fee9119fdafd1a2499a08cd522b59 100644 |
| --- a/webrtc/modules/audio_processing/gain_control_impl.h |
| +++ b/webrtc/modules/audio_processing/gain_control_impl.h |
| @@ -13,6 +13,8 @@ |
| #include <vector> |
| +#include "webrtc/base/scoped_ptr.h" |
| +#include "webrtc/common_audio/swap_queue.h" |
| #include "webrtc/modules/audio_processing/include/audio_processing.h" |
| #include "webrtc/modules/audio_processing/processing_component.h" |
| @@ -41,7 +43,16 @@ class GainControlImpl : public GainControl, |
| bool is_limiter_enabled() const override; |
| Mode mode() const override; |
| + // Reads render side data that has been queued on the render call. |
| + void ReadQueuedRenderData(); |
| + |
| private: |
| + static const size_t kMaxNumChannelsPerFrameToBuffer = 2; |
| + static const size_t kNumSamplesPerFrameToBuffer = 160; |
| + // TODO(peah): Decrease this once we properly handle hugely unbalanced |
| + // reverse and forward call numbers. |
| + static const size_t kMaxNumFramesToBuffer = 100; |
| + |
| // GainControl implementation. |
| int Enable(bool enable) override; |
| int set_stream_analog_level(int level) override; |
| @@ -64,6 +75,9 @@ class GainControlImpl : public GainControl, |
| int num_handles_required() const override; |
| int GetHandleError(void* handle) const override; |
| + // SwapQueue element verifier |
| + static bool RenderQueueItemVerifier(const std::vector<int16_t>& v); |
| + |
| const AudioProcessing* apm_; |
| CriticalSectionWrapper* crit_; |
| Mode mode_; |
| @@ -76,6 +90,11 @@ class GainControlImpl : public GainControl, |
| int analog_capture_level_; |
| bool was_analog_level_set_; |
| bool stream_is_saturated_; |
| + |
| + std::vector<int16_t> render_queue_buffer_; |
| + std::vector<int16_t> capture_queue_buffer_; |
| + rtc::scoped_ptr<SwapQueue<std::vector<int16_t>, &RenderQueueItemVerifier>> |
|
the sun
2015/10/19 14:47:04
Don't need the scoped_ptr.
peah-webrtc
2015/10/26 09:09:56
That I don't see. We need to recreate the queue in
|
| + render_signal_queue_; |
| }; |
| } // namespace webrtc |