Change AudioProcessing interface to allow not to require rtc::TaskQueue
rtc::TaskQueue is a wrapper of TaskQueueBase providing no extra functionality in this case Bug: webrtc:14169 Change-Id: I5eb27a5dbb16f6097a9c71c2633c807808e50c05 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/333800 Reviewed-by: Sam Zackrisson <saza@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41501}
This commit is contained in:
parent
21b3c5a5ad
commit
1ecf29c1ce
@ -34,8 +34,10 @@ rtc_library("api") {
|
|||||||
"../../api/audio:aec3_config",
|
"../../api/audio:aec3_config",
|
||||||
"../../api/audio:audio_frame_api",
|
"../../api/audio:audio_frame_api",
|
||||||
"../../api/audio:echo_control",
|
"../../api/audio:echo_control",
|
||||||
|
"../../api/task_queue",
|
||||||
"../../rtc_base:macromagic",
|
"../../rtc_base:macromagic",
|
||||||
"../../rtc_base:refcount",
|
"../../rtc_base:refcount",
|
||||||
|
"../../rtc_base:rtc_task_queue",
|
||||||
"../../rtc_base:stringutils",
|
"../../rtc_base:stringutils",
|
||||||
"../../rtc_base/system:arch",
|
"../../rtc_base/system:arch",
|
||||||
"../../rtc_base/system:file_wrapper",
|
"../../rtc_base/system:file_wrapper",
|
||||||
@ -43,6 +45,7 @@ rtc_library("api") {
|
|||||||
"agc:gain_control_interface",
|
"agc:gain_control_interface",
|
||||||
]
|
]
|
||||||
absl_deps = [
|
absl_deps = [
|
||||||
|
"//third_party/abseil-cpp/absl/base:nullability",
|
||||||
"//third_party/abseil-cpp/absl/strings",
|
"//third_party/abseil-cpp/absl/strings",
|
||||||
"//third_party/abseil-cpp/absl/types:optional",
|
"//third_party/abseil-cpp/absl/types:optional",
|
||||||
]
|
]
|
||||||
@ -185,6 +188,7 @@ rtc_library("audio_processing") {
|
|||||||
"../../api/audio:aec3_config",
|
"../../api/audio:aec3_config",
|
||||||
"../../api/audio:audio_frame_api",
|
"../../api/audio:audio_frame_api",
|
||||||
"../../api/audio:echo_control",
|
"../../api/audio:echo_control",
|
||||||
|
"../../api/task_queue",
|
||||||
"../../audio/utility:audio_frame_operations",
|
"../../audio/utility:audio_frame_operations",
|
||||||
"../../common_audio:common_audio_c",
|
"../../common_audio:common_audio_c",
|
||||||
"../../common_audio/third_party/ooura:fft_size_256",
|
"../../common_audio/third_party/ooura:fft_size_256",
|
||||||
@ -193,7 +197,6 @@ rtc_library("audio_processing") {
|
|||||||
"../../rtc_base:gtest_prod",
|
"../../rtc_base:gtest_prod",
|
||||||
"../../rtc_base:logging",
|
"../../rtc_base:logging",
|
||||||
"../../rtc_base:macromagic",
|
"../../rtc_base:macromagic",
|
||||||
"../../rtc_base:rtc_task_queue",
|
|
||||||
"../../rtc_base:safe_minmax",
|
"../../rtc_base:safe_minmax",
|
||||||
"../../rtc_base:sanitizer",
|
"../../rtc_base:sanitizer",
|
||||||
"../../rtc_base:swap_queue",
|
"../../rtc_base:swap_queue",
|
||||||
@ -218,6 +221,7 @@ rtc_library("audio_processing") {
|
|||||||
"vad",
|
"vad",
|
||||||
]
|
]
|
||||||
absl_deps = [
|
absl_deps = [
|
||||||
|
"//third_party/abseil-cpp/absl/base:nullability",
|
||||||
"//third_party/abseil-cpp/absl/strings",
|
"//third_party/abseil-cpp/absl/strings",
|
||||||
"//third_party/abseil-cpp/absl/types:optional",
|
"//third_party/abseil-cpp/absl/types:optional",
|
||||||
]
|
]
|
||||||
@ -338,9 +342,13 @@ if (rtc_include_tests) {
|
|||||||
":audio_buffer",
|
":audio_buffer",
|
||||||
":audio_processing",
|
":audio_processing",
|
||||||
":audio_processing_statistics",
|
":audio_processing_statistics",
|
||||||
|
"../../api/task_queue",
|
||||||
"../../test:test_support",
|
"../../test:test_support",
|
||||||
]
|
]
|
||||||
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
|
absl_deps = [
|
||||||
|
"//third_party/abseil-cpp/absl/base:nullability",
|
||||||
|
"//third_party/abseil-cpp/absl/strings",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!build_with_chromium) {
|
if (!build_with_chromium) {
|
||||||
|
|||||||
@ -18,11 +18,13 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
#include "absl/base/nullability.h"
|
||||||
#include "absl/strings/match.h"
|
#include "absl/strings/match.h"
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
#include "api/audio/audio_frame.h"
|
#include "api/audio/audio_frame.h"
|
||||||
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "common_audio/audio_converter.h"
|
#include "common_audio/audio_converter.h"
|
||||||
#include "common_audio/include/audio_util.h"
|
#include "common_audio/include/audio_util.h"
|
||||||
#include "modules/audio_processing/aec_dump/aec_dump_factory.h"
|
#include "modules/audio_processing/aec_dump/aec_dump_factory.h"
|
||||||
@ -33,7 +35,6 @@
|
|||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/experiments/field_trial_parser.h"
|
#include "rtc_base/experiments/field_trial_parser.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/task_queue.h"
|
|
||||||
#include "rtc_base/time_utils.h"
|
#include "rtc_base/time_utils.h"
|
||||||
#include "rtc_base/trace_event.h"
|
#include "rtc_base/trace_event.h"
|
||||||
#include "system_wrappers/include/denormal_disabler.h"
|
#include "system_wrappers/include/denormal_disabler.h"
|
||||||
@ -2083,11 +2084,12 @@ void AudioProcessingImpl::UpdateRecommendedInputVolumeLocked() {
|
|||||||
capture_.recommended_input_volume = capture_.applied_input_volume;
|
capture_.recommended_input_volume = capture_.applied_input_volume;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AudioProcessingImpl::CreateAndAttachAecDump(absl::string_view file_name,
|
bool AudioProcessingImpl::CreateAndAttachAecDump(
|
||||||
|
absl::string_view file_name,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) {
|
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||||
std::unique_ptr<AecDump> aec_dump = AecDumpFactory::Create(
|
std::unique_ptr<AecDump> aec_dump =
|
||||||
file_name, max_log_size_bytes, worker_queue->Get());
|
AecDumpFactory::Create(file_name, max_log_size_bytes, worker_queue);
|
||||||
if (!aec_dump) {
|
if (!aec_dump) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -2096,11 +2098,12 @@ bool AudioProcessingImpl::CreateAndAttachAecDump(absl::string_view file_name,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AudioProcessingImpl::CreateAndAttachAecDump(FILE* handle,
|
bool AudioProcessingImpl::CreateAndAttachAecDump(
|
||||||
|
FILE* handle,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) {
|
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||||
std::unique_ptr<AecDump> aec_dump =
|
std::unique_ptr<AecDump> aec_dump =
|
||||||
AecDumpFactory::Create(handle, max_log_size_bytes, worker_queue->Get());
|
AecDumpFactory::Create(handle, max_log_size_bytes, worker_queue);
|
||||||
if (!aec_dump) {
|
if (!aec_dump) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,10 +19,12 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "absl/base/nullability.h"
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
#include "api/function_view.h"
|
#include "api/function_view.h"
|
||||||
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "modules/audio_processing/aec3/echo_canceller3.h"
|
#include "modules/audio_processing/aec3/echo_canceller3.h"
|
||||||
#include "modules/audio_processing/agc/agc_manager_direct.h"
|
#include "modules/audio_processing/agc/agc_manager_direct.h"
|
||||||
#include "modules/audio_processing/agc/gain_control.h"
|
#include "modules/audio_processing/agc/gain_control.h"
|
||||||
@ -71,12 +73,14 @@ class AudioProcessingImpl : public AudioProcessing {
|
|||||||
int Initialize() override;
|
int Initialize() override;
|
||||||
int Initialize(const ProcessingConfig& processing_config) override;
|
int Initialize(const ProcessingConfig& processing_config) override;
|
||||||
void ApplyConfig(const AudioProcessing::Config& config) override;
|
void ApplyConfig(const AudioProcessing::Config& config) override;
|
||||||
bool CreateAndAttachAecDump(absl::string_view file_name,
|
bool CreateAndAttachAecDump(
|
||||||
|
absl::string_view file_name,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) override;
|
absl::Nonnull<TaskQueueBase*> worker_queue) override;
|
||||||
bool CreateAndAttachAecDump(FILE* handle,
|
bool CreateAndAttachAecDump(
|
||||||
|
FILE* handle,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) override;
|
absl::Nonnull<TaskQueueBase*> worker_queue) override;
|
||||||
// TODO(webrtc:5298) Deprecated variant.
|
// TODO(webrtc:5298) Deprecated variant.
|
||||||
void AttachAecDump(std::unique_ptr<AecDump> aec_dump) override;
|
void AttachAecDump(std::unique_ptr<AecDump> aec_dump) override;
|
||||||
void DetachAecDump() override;
|
void DetachAecDump() override;
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include "rtc_base/strings/string_builder.h"
|
#include "rtc_base/strings/string_builder.h"
|
||||||
#include "rtc_base/system/arch.h"
|
#include "rtc_base/system/arch.h"
|
||||||
|
#include "rtc_base/task_queue.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace {
|
namespace {
|
||||||
@ -207,4 +208,36 @@ std::string AudioProcessing::Config::ToString() const {
|
|||||||
return builder.str();
|
return builder.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AudioProcessing::CreateAndAttachAecDump(absl::string_view file_name,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
rtc::TaskQueue* worker_queue) {
|
||||||
|
return CreateAndAttachAecDump(file_name, max_log_size_bytes,
|
||||||
|
worker_queue->Get());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AudioProcessing::CreateAndAttachAecDump(FILE* handle,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
rtc::TaskQueue* worker_queue) {
|
||||||
|
return CreateAndAttachAecDump(handle, max_log_size_bytes,
|
||||||
|
worker_queue->Get());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AudioProcessing::CreateAndAttachAecDump(
|
||||||
|
absl::string_view file_name,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||||
|
// Newer code should implement this variant,
|
||||||
|
// Older code shouldn't call this variant.
|
||||||
|
RTC_CHECK_NOTREACHED();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AudioProcessing::CreateAndAttachAecDump(
|
||||||
|
FILE* handle,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||||
|
// New ercode should implement this variant,
|
||||||
|
// Older code shouldn't call this variant.
|
||||||
|
RTC_CHECK_NOTREACHED();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "absl/base/nullability.h"
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
@ -30,6 +31,7 @@
|
|||||||
#include "api/audio/echo_control.h"
|
#include "api/audio/echo_control.h"
|
||||||
#include "api/ref_count.h"
|
#include "api/ref_count.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
||||||
#include "rtc_base/arraysize.h"
|
#include "rtc_base/arraysize.h"
|
||||||
#include "rtc_base/system/file_wrapper.h"
|
#include "rtc_base/system/file_wrapper.h"
|
||||||
@ -632,12 +634,23 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
|
|||||||
// return value of true indicates that the file has been
|
// return value of true indicates that the file has been
|
||||||
// sucessfully opened, while a value of false indicates that
|
// sucessfully opened, while a value of false indicates that
|
||||||
// opening the file failed.
|
// opening the file failed.
|
||||||
|
// TODO: bugs.webrtc.org/14169 - Delete rtc::TaskQueue variants
|
||||||
virtual bool CreateAndAttachAecDump(absl::string_view file_name,
|
virtual bool CreateAndAttachAecDump(absl::string_view file_name,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) = 0;
|
rtc::TaskQueue* worker_queue);
|
||||||
virtual bool CreateAndAttachAecDump(FILE* handle,
|
virtual bool CreateAndAttachAecDump(FILE* handle,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue) = 0;
|
rtc::TaskQueue* worker_queue);
|
||||||
|
// TODO: bugs.webrtc.org/14169 - Make TaskQueueBase variants pure virtual when
|
||||||
|
// implemented by derived classes.
|
||||||
|
virtual bool CreateAndAttachAecDump(
|
||||||
|
absl::string_view file_name,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
absl::Nonnull<TaskQueueBase*> worker_queue);
|
||||||
|
virtual bool CreateAndAttachAecDump(
|
||||||
|
absl::Nonnull<FILE*> handle,
|
||||||
|
int64_t max_log_size_bytes,
|
||||||
|
absl::Nonnull<TaskQueueBase*> worker_queue);
|
||||||
|
|
||||||
// TODO(webrtc:5298) Deprecated variant.
|
// TODO(webrtc:5298) Deprecated variant.
|
||||||
// Attaches provided webrtc::AecDump for recording debugging
|
// Attaches provided webrtc::AecDump for recording debugging
|
||||||
|
|||||||
@ -13,7 +13,9 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
#include "absl/base/nullability.h"
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "modules/audio_processing/include/aec_dump.h"
|
#include "modules/audio_processing/include/aec_dump.h"
|
||||||
#include "modules/audio_processing/include/audio_processing.h"
|
#include "modules/audio_processing/include/audio_processing.h"
|
||||||
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
||||||
@ -155,13 +157,13 @@ class MockAudioProcessing : public AudioProcessing {
|
|||||||
CreateAndAttachAecDump,
|
CreateAndAttachAecDump,
|
||||||
(absl::string_view file_name,
|
(absl::string_view file_name,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue),
|
absl::Nonnull<TaskQueueBase*> worker_queue),
|
||||||
(override));
|
(override));
|
||||||
MOCK_METHOD(bool,
|
MOCK_METHOD(bool,
|
||||||
CreateAndAttachAecDump,
|
CreateAndAttachAecDump,
|
||||||
(FILE * handle,
|
(FILE * handle,
|
||||||
int64_t max_log_size_bytes,
|
int64_t max_log_size_bytes,
|
||||||
rtc::TaskQueue* worker_queue),
|
absl::Nonnull<TaskQueueBase*> worker_queue),
|
||||||
(override));
|
(override));
|
||||||
MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
|
MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
|
||||||
MOCK_METHOD(void, DetachAecDump, (), (override));
|
MOCK_METHOD(void, DetachAecDump, (), (override));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user