From 1fa87c44cb387aa6173867383c1da3f0e4fc4349 Mon Sep 17 00:00:00 2001 From: Ali Tofigh Date: Mon, 25 Jul 2022 22:07:08 +0200 Subject: [PATCH] Adopt absl::string_view in AudioProcessing's interface This is the first step of migrating AudioProcessing::CreateAndAttachAecDump() from using std::string to absl::string_view. Bug: webrtc:13579 Change-Id: I8fc373e7ac55fd8e96bb0b01d1a30e28883ac9a2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269400 Commit-Queue: Ali Tofigh Reviewed-by: Ivo Creusen Cr-Commit-Position: refs/heads/main@{#37631} --- modules/audio_processing/BUILD.gn | 5 ++++- modules/audio_processing/audio_processing_impl.cc | 12 ++++++++++-- modules/audio_processing/audio_processing_impl.h | 4 ++++ modules/audio_processing/include/audio_processing.h | 10 ++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn index b1f7331b5e..37a5b4082c 100644 --- a/modules/audio_processing/BUILD.gn +++ b/modules/audio_processing/BUILD.gn @@ -41,7 +41,10 @@ rtc_library("api") { "../../rtc_base/system:rtc_export", "agc:gain_control_interface", ] - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] } rtc_library("audio_frame_proxies") { diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc index cb0c4d6b6c..29a4e5b9a8 100644 --- a/modules/audio_processing/audio_processing_impl.cc +++ b/modules/audio_processing/audio_processing_impl.cc @@ -18,6 +18,7 @@ #include #include "absl/strings/match.h" +#include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "api/array_view.h" #include "api/audio/audio_frame.h" @@ -1653,8 +1654,15 @@ int AudioProcessingImpl::recommended_stream_analog_level_locked() const { bool AudioProcessingImpl::CreateAndAttachAecDump(const std::string& file_name, int64_t max_log_size_bytes, rtc::TaskQueue* worker_queue) { - std::unique_ptr aec_dump = - AecDumpFactory::Create(file_name, max_log_size_bytes, worker_queue); + return CreateAndAttachAecDump(absl::string_view(file_name), + max_log_size_bytes, worker_queue); +} + +bool AudioProcessingImpl::CreateAndAttachAecDump(absl::string_view file_name, + int64_t max_log_size_bytes, + rtc::TaskQueue* worker_queue) { + std::unique_ptr aec_dump = AecDumpFactory::Create( + std::string(file_name), max_log_size_bytes, worker_queue); if (!aec_dump) { return false; } diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h index 86ecb807a9..5f338718e6 100644 --- a/modules/audio_processing/audio_processing_impl.h +++ b/modules/audio_processing/audio_processing_impl.h @@ -19,6 +19,7 @@ #include #include +#include "absl/strings/string_view.h" #include "api/array_view.h" #include "api/function_view.h" #include "modules/audio_processing/aec3/echo_canceller3.h" @@ -73,6 +74,9 @@ class AudioProcessingImpl : public AudioProcessing { bool CreateAndAttachAecDump(const std::string& file_name, int64_t max_log_size_bytes, rtc::TaskQueue* worker_queue) override; + bool CreateAndAttachAecDump(absl::string_view file_name, + int64_t max_log_size_bytes, + rtc::TaskQueue* worker_queue) override; bool CreateAndAttachAecDump(FILE* handle, int64_t max_log_size_bytes, rtc::TaskQueue* worker_queue) override; diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h index 6e50f21eeb..a49067b510 100644 --- a/modules/audio_processing/include/audio_processing.h +++ b/modules/audio_processing/include/audio_processing.h @@ -23,6 +23,7 @@ #include +#include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "api/array_view.h" #include "api/audio/echo_canceller3_config.h" @@ -622,9 +623,18 @@ class RTC_EXPORT AudioProcessing : public rtc::RefCountInterface { // return value of true indicates that the file has been // sucessfully opened, while a value of false indicates that // opening the file failed. + // + // TODO(webrtc:13579): Remove std::string version once downstream users have + // implemented the absl::string_view version. virtual bool CreateAndAttachAecDump(const std::string& file_name, int64_t max_log_size_bytes, rtc::TaskQueue* worker_queue) = 0; + virtual bool CreateAndAttachAecDump(absl::string_view file_name, + int64_t max_log_size_bytes, + rtc::TaskQueue* worker_queue) { + return CreateAndAttachAecDump(std::string(file_name), max_log_size_bytes, + worker_queue); + } virtual bool CreateAndAttachAecDump(FILE* handle, int64_t max_log_size_bytes, rtc::TaskQueue* worker_queue) = 0;