Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(420)

Unified Diff: webrtc/modules/audio_processing/test/audio_file_processor.h

Issue 1411823003: Revert of Add aecdump support to audioproc_f. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/test/audio_file_processor.h
diff --git a/webrtc/modules/audio_processing/test/audio_file_processor.h b/webrtc/modules/audio_processing/test/audio_file_processor.h
deleted file mode 100644
index a3153b2244cb57b6edc67ad233ebc55501d135be..0000000000000000000000000000000000000000
--- a/webrtc/modules/audio_processing/test/audio_file_processor.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_TEST_AUDIO_FILE_PROCESSOR_H_
-#define WEBRTC_MODULES_AUDIO_PROCESSING_TEST_AUDIO_FILE_PROCESSOR_H_
-
-#include <algorithm>
-#include <limits>
-#include <vector>
-
-#include "webrtc/base/scoped_ptr.h"
-#include "webrtc/common_audio/channel_buffer.h"
-#include "webrtc/common_audio/wav_file.h"
-#include "webrtc/modules/audio_processing/include/audio_processing.h"
-#include "webrtc/modules/audio_processing/test/test_utils.h"
-#include "webrtc/system_wrappers/include/tick_util.h"
-
-#ifdef WEBRTC_ANDROID_PLATFORM_BUILD
-#include "external/webrtc/webrtc/modules/audio_processing/debug.pb.h"
-#else
-#include "webrtc/audio_processing/debug.pb.h"
-#endif
-
-namespace webrtc {
-
-// Holds a few statistics about a series of TickIntervals.
-struct TickIntervalStats {
- TickIntervalStats() : min(std::numeric_limits<int64_t>::max()) {}
- TickInterval sum;
- TickInterval max;
- TickInterval min;
-};
-
-// Interface for processing an input file with an AudioProcessing instance and
-// dumping the results to an output file.
-class AudioFileProcessor {
- public:
- static const int kChunksPerSecond = 1000 / AudioProcessing::kChunkSizeMs;
-
- virtual ~AudioFileProcessor() {}
-
- // Processes one AudioProcessing::kChunkSizeMs of data from the input file and
- // writes to the output file.
- virtual bool ProcessChunk() = 0;
-
- // Returns the execution time of all AudioProcessing calls.
- const TickIntervalStats& proc_time() const { return proc_time_; }
-
- protected:
- // RAII class for execution time measurement. Updates the provided
- // TickIntervalStats based on the time between ScopedTimer creation and
- // leaving the enclosing scope.
- class ScopedTimer {
- public:
- explicit ScopedTimer(TickIntervalStats* proc_time)
- : proc_time_(proc_time), start_time_(TickTime::Now()) {}
-
- ~ScopedTimer() {
- TickInterval interval = TickTime::Now() - start_time_;
- proc_time_->sum += interval;
- proc_time_->max = std::max(proc_time_->max, interval);
- proc_time_->min = std::min(proc_time_->min, interval);
- }
-
- private:
- TickIntervalStats* const proc_time_;
- TickTime start_time_;
- };
-
- TickIntervalStats* mutable_proc_time() { return &proc_time_; }
-
- private:
- TickIntervalStats proc_time_;
-};
-
-// Used to read from and write to WavFile objects.
-class WavFileProcessor final : public AudioFileProcessor {
- public:
- // Takes ownership of all parameters.
- WavFileProcessor(rtc::scoped_ptr<AudioProcessing> ap,
- rtc::scoped_ptr<WavReader> in_file,
- rtc::scoped_ptr<WavWriter> out_file);
- virtual ~WavFileProcessor() {}
-
- // Processes one chunk from the WAV input and writes to the WAV output.
- bool ProcessChunk() override;
-
- private:
- rtc::scoped_ptr<AudioProcessing> ap_;
-
- ChannelBuffer<float> in_buf_;
- ChannelBuffer<float> out_buf_;
- const StreamConfig input_config_;
- const StreamConfig output_config_;
- ChannelBufferWavReader buffer_reader_;
- ChannelBufferWavWriter buffer_writer_;
-};
-
-// Used to read from an aecdump file and write to a WavWriter.
-class AecDumpFileProcessor final : public AudioFileProcessor {
- public:
- // Takes ownership of all parameters.
- AecDumpFileProcessor(rtc::scoped_ptr<AudioProcessing> ap,
- FILE* dump_file,
- rtc::scoped_ptr<WavWriter> out_file);
-
- virtual ~AecDumpFileProcessor();
-
- // Processes messages from the aecdump file until the first Stream message is
- // completed. Passes other data from the aecdump messages as appropriate.
- bool ProcessChunk() override;
-
- private:
- void HandleMessage(const webrtc::audioproc::Init& msg);
- void HandleMessage(const webrtc::audioproc::Stream& msg);
- void HandleMessage(const webrtc::audioproc::ReverseStream& msg);
-
- rtc::scoped_ptr<AudioProcessing> ap_;
- FILE* dump_file_;
-
- rtc::scoped_ptr<ChannelBuffer<float>> in_buf_;
- rtc::scoped_ptr<ChannelBuffer<float>> reverse_buf_;
- ChannelBuffer<float> out_buf_;
- StreamConfig input_config_;
- StreamConfig reverse_config_;
- const StreamConfig output_config_;
- ChannelBufferWavWriter buffer_writer_;
-};
-
-} // namespace webrtc
-
-#endif // WEBRTC_MODULES_AUDIO_PROCESSING_TEST_AUDIO_FILE_PROCESSOR_H_

Powered by Google App Engine
This is Rietveld 408576698