From 8c51f2e9cde4ca72ae2f84bbbe3638540b84e565 Mon Sep 17 00:00:00 2001 From: Gustaf Ullberg Date: Tue, 22 Oct 2019 15:21:31 +0200 Subject: [PATCH] AnalyzeReverseStream with StreamConfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adding a version of AnalyzeReverseStream with audio parameters described by StreamConfig. This is part of preparations for multichannel APM in Chromium. Bug: webrtc:10913 Change-Id: I7c4650eab8bd7fcdec970a7e4a8fa203f09bed9e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157897 Commit-Queue: Gustaf Ullberg Reviewed-by: Per Ã…hgren Cr-Commit-Position: refs/heads/master@{#29573} --- modules/audio_processing/audio_processing_impl.cc | 8 ++++++++ modules/audio_processing/audio_processing_impl.h | 2 ++ modules/audio_processing/include/audio_processing.h | 6 ++++++ modules/audio_processing/include/mock_audio_processing.h | 3 +++ 4 files changed, 19 insertions(+) diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc index 84d56fc597..c4ef3b2f59 100644 --- a/modules/audio_processing/audio_processing_impl.cc +++ b/modules/audio_processing/audio_processing_impl.cc @@ -1493,6 +1493,14 @@ int AudioProcessingImpl::AnalyzeReverseStream(const float* const* data, return AnalyzeReverseStreamLocked(data, reverse_config, reverse_config); } +int AudioProcessingImpl::AnalyzeReverseStream( + const float* const* data, + const StreamConfig& reverse_config) { + TRACE_EVENT0("webrtc", "AudioProcessing::AnalyzeReverseStream_StreamConfig"); + rtc::CritScope cs(&crit_render_); + return AnalyzeReverseStreamLocked(data, reverse_config, reverse_config); +} + int AudioProcessingImpl::ProcessReverseStream(const float* const* src, const StreamConfig& input_config, const StreamConfig& output_config, diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h index caf96e9946..98c8f123c7 100644 --- a/modules/audio_processing/audio_processing_impl.h +++ b/modules/audio_processing/audio_processing_impl.h @@ -108,6 +108,8 @@ class AudioProcessingImpl : public AudioProcessing { size_t samples_per_channel, int sample_rate_hz, ChannelLayout layout) override; + int AnalyzeReverseStream(const float* const* data, + const StreamConfig& reverse_config) override; int ProcessReverseStream(const float* const* src, const StreamConfig& input_config, const StreamConfig& output_config, diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h index 0087f0b32c..bcd7293e58 100644 --- a/modules/audio_processing/include/audio_processing.h +++ b/modules/audio_processing/include/audio_processing.h @@ -593,6 +593,12 @@ class RTC_EXPORT AudioProcessing : public rtc::RefCountInterface { int sample_rate_hz, ChannelLayout layout) = 0; + // Accepts deinterleaved float audio with the range [-1, 1]. Each element + // of |data| points to a channel buffer, arranged according to + // |reverse_config|. + virtual int AnalyzeReverseStream(const float* const* data, + const StreamConfig& reverse_config) = 0; + // Accepts deinterleaved float audio with the range [-1, 1]. Each element of // |data| points to a channel buffer, arranged according to |reverse_config|. virtual int ProcessReverseStream(const float* const* src, diff --git a/modules/audio_processing/include/mock_audio_processing.h b/modules/audio_processing/include/mock_audio_processing.h index 3f66ce68ae..ba57d78af9 100644 --- a/modules/audio_processing/include/mock_audio_processing.h +++ b/modules/audio_processing/include/mock_audio_processing.h @@ -97,6 +97,9 @@ class MockAudioProcessing : public ::testing::NiceMock { size_t samples_per_channel, int sample_rate_hz, ChannelLayout layout)); + MOCK_METHOD2(AnalyzeReverseStream, + int(const float* const* data, + const StreamConfig& reverse_config)); MOCK_METHOD4(ProcessReverseStream, int(const float* const* src, const StreamConfig& input_config,