Index: webrtc/modules/audio_processing/audio_processing_impl.h |
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h |
index 01b640fcfc0f36332790765fd530f267690cfc9a..9db3c4968a763d901f95f50b2d5f965cd4c4fc3a 100644 |
--- a/webrtc/modules/audio_processing/audio_processing_impl.h |
+++ b/webrtc/modules/audio_processing/audio_processing_impl.h |
@@ -22,23 +22,13 @@ |
#include "webrtc/base/ignore_wundef.h" |
#include "webrtc/base/swap_queue.h" |
#include "webrtc/base/thread_annotations.h" |
+#include "webrtc/modules/audio_processing/aec_dumper/aec_dumper.h" |
#include "webrtc/modules/audio_processing/audio_buffer.h" |
#include "webrtc/modules/audio_processing/include/audio_processing.h" |
#include "webrtc/modules/audio_processing/render_queue_item_verifier.h" |
#include "webrtc/modules/audio_processing/rms_level.h" |
#include "webrtc/system_wrappers/include/file_wrapper.h" |
-#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
-// Files generated at build-time by the protobuf compiler. |
-RTC_PUSH_IGNORING_WUNDEF() |
-#ifdef WEBRTC_ANDROID_PLATFORM_BUILD |
-#include "external/webrtc/webrtc/modules/audio_processing/debug.pb.h" |
-#else |
-#include "webrtc/modules/audio_processing/debug.pb.h" |
-#endif |
-RTC_POP_IGNORING_WUNDEF() |
-#endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |
- |
namespace webrtc { |
class AgcManagerDirect; |
@@ -67,10 +57,14 @@ class AudioProcessingImpl : public AudioProcessing { |
void SetExtraOptions(const webrtc::Config& config) override; |
void UpdateHistogramsOnCallEnd() override; |
int StartDebugRecording(const char filename[kMaxFilenameSize], |
- int64_t max_log_size_bytes) override; |
- int StartDebugRecording(FILE* handle, int64_t max_log_size_bytes) override; |
- int StartDebugRecording(FILE* handle) override; |
- int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle) override; |
+ int64_t max_log_size_bytes, |
+ rtc::TaskQueue* worker_queue) override; |
+ int StartDebugRecording(FILE* handle, |
+ int64_t max_log_size_bytes, |
+ rtc::TaskQueue* worker_queue) override; |
+ int StartDebugRecording(FILE* handle, rtc::TaskQueue* worker_queue) override; |
+ int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle, |
+ rtc::TaskQueue* worker_queue) override; |
int StopDebugRecording() override; |
// Capture-side exclusive methods possibly running APM in a |
@@ -275,29 +269,10 @@ class AudioProcessingImpl : public AudioProcessing { |
EXCLUSIVE_LOCKS_REQUIRED(crit_render_); |
int ProcessRenderStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_render_); |
-// Debug dump methods that are internal and called without locks. |
-// TODO(peah): Make thread safe. |
-#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
- // TODO(andrew): make this more graceful. Ideally we would split this stuff |
- // out into a separate class with an "enabled" and "disabled" implementation. |
- static int WriteMessageToDebugFile(FileWrapper* debug_file, |
- int64_t* filesize_limit_bytes, |
- rtc::CriticalSection* crit_debug, |
- ApmDebugDumpThreadState* debug_state); |
- int WriteInitMessage() EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); |
- |
- // Writes Config message. If not |forced|, only writes the current config if |
- // it is different from the last saved one; if |forced|, writes the config |
- // regardless of the last saved. |
- int WriteConfigMessage(bool forced) EXCLUSIVE_LOCKS_REQUIRED(crit_capture_) |
- EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
- |
- // Critical section. |
- rtc::CriticalSection crit_debug_; |
+ int WriteConfigMessage(bool forced) EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); |
- // Debug dump state. |
- ApmDebugDumpState debug_dump_; |
-#endif |
+ // TODO(aleloi) doc. |
+ std::unique_ptr<AecDumper> aec_dumper_; |
// Critical sections. |
rtc::CriticalSection crit_render_ ACQUIRED_BEFORE(crit_capture_); |