| Index: webrtc/modules/audio_processing/test/audio_file_processor.cc
|
| diff --git a/webrtc/modules/audio_processing/test/audio_file_processor.cc b/webrtc/modules/audio_processing/test/audio_file_processor.cc
|
| index 5febcd0dc84a8dc5eeb2d8833f5ab29aa0bdc23e..5f57917337912de352ef3ad92663d5f7ecfd64fd 100644
|
| --- a/webrtc/modules/audio_processing/test/audio_file_processor.cc
|
| +++ b/webrtc/modules/audio_processing/test/audio_file_processor.cc
|
| @@ -42,14 +42,39 @@ ChannelBuffer<float> GetChannelBuffer(const WavFile& file) {
|
|
|
| WavFileProcessor::WavFileProcessor(std::unique_ptr<AudioProcessing> ap,
|
| std::unique_ptr<WavReader> in_file,
|
| - std::unique_ptr<WavWriter> out_file)
|
| + std::unique_ptr<WavWriter> out_file,
|
| + std::unique_ptr<WavReader> reverse_in_file,
|
| + std::unique_ptr<WavWriter> reverse_out_file)
|
| : ap_(std::move(ap)),
|
| in_buf_(GetChannelBuffer(*in_file)),
|
| out_buf_(GetChannelBuffer(*out_file)),
|
| input_config_(GetStreamConfig(*in_file)),
|
| output_config_(GetStreamConfig(*out_file)),
|
| buffer_reader_(std::move(in_file)),
|
| - buffer_writer_(std::move(out_file)) {}
|
| + buffer_writer_(std::move(out_file)) {
|
| + if (reverse_in_file) {
|
| + const WavFile* reverse_out_config;
|
| + if (reverse_out_file) {
|
| + reverse_out_config = reverse_out_file.get();
|
| + } else {
|
| + reverse_out_config = reverse_in_file.get();
|
| + }
|
| + reverse_in_buf_.reset(
|
| + new ChannelBuffer<float>(GetChannelBuffer(*reverse_in_file)));
|
| + reverse_out_buf_.reset(
|
| + new ChannelBuffer<float>(GetChannelBuffer(*reverse_out_config)));
|
| + reverse_input_config_.reset(
|
| + new StreamConfig(GetStreamConfig(*reverse_in_file)));
|
| + reverse_output_config_.reset(
|
| + new StreamConfig(GetStreamConfig(*reverse_out_config)));
|
| + reverse_buffer_reader_.reset(
|
| + new ChannelBufferWavReader(std::move(reverse_in_file)));
|
| + if (reverse_out_file) {
|
| + reverse_buffer_writer_.reset(
|
| + new ChannelBufferWavWriter(std::move(reverse_out_file)));
|
| + }
|
| + }
|
| +}
|
|
|
| bool WavFileProcessor::ProcessChunk() {
|
| if (!buffer_reader_.Read(&in_buf_)) {
|
| @@ -62,6 +87,22 @@ bool WavFileProcessor::ProcessChunk() {
|
| output_config_, out_buf_.channels()));
|
| }
|
| buffer_writer_.Write(out_buf_);
|
| + if (reverse_buffer_reader_) {
|
| + if (!reverse_buffer_reader_->Read(reverse_in_buf_.get())) {
|
| + return false;
|
| + }
|
| + {
|
| + const auto st = ScopedTimer(mutable_proc_time());
|
| + RTC_CHECK_EQ(kNoErr,
|
| + ap_->ProcessReverseStream(reverse_in_buf_->channels(),
|
| + *reverse_input_config_.get(),
|
| + *reverse_output_config_.get(),
|
| + reverse_out_buf_->channels()));
|
| + }
|
| + if (reverse_buffer_writer_) {
|
| + reverse_buffer_writer_->Write(*reverse_out_buf_.get());
|
| + }
|
| + }
|
| return true;
|
| }
|
|
|
|
|