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..769ef8a0143bcc5e5b1fa0bd9b34119109c09b78 100644 |
--- a/webrtc/modules/audio_processing/test/audio_file_processor.cc |
+++ b/webrtc/modules/audio_processing/test/audio_file_processor.cc |
@@ -42,14 +42,32 @@ 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)), |
+ process_reverse_stream_(reverse_in_file && reverse_out_file) { |
peah-webrtc
2016/03/18 09:38:02
Why is this true only if both reverse_in_file reve
aluebs-webrtc
2016/03/18 18:36:54
In practice, the reverse_out_file is always specif
|
+ if (process_reverse_stream_) { |
+ reverse_in_buf_.reset( |
+ new ChannelBuffer<float>(GetChannelBuffer(*reverse_in_file))); |
+ reverse_out_buf_.reset( |
+ new ChannelBuffer<float>(GetChannelBuffer(*reverse_out_file))); |
+ reverse_input_config_.reset( |
+ new StreamConfig(GetStreamConfig(*reverse_in_file))); |
+ reverse_output_config_.reset( |
+ new StreamConfig(GetStreamConfig(*reverse_out_file))); |
+ reverse_buffer_reader_.reset( |
+ new ChannelBufferWavReader(std::move(reverse_in_file))); |
+ reverse_buffer_writer_.reset( |
+ new ChannelBufferWavWriter(std::move(reverse_out_file))); |
+ } |
+} |
bool WavFileProcessor::ProcessChunk() { |
if (!buffer_reader_.Read(&in_buf_)) { |
@@ -62,6 +80,20 @@ bool WavFileProcessor::ProcessChunk() { |
output_config_, out_buf_.channels())); |
} |
buffer_writer_.Write(out_buf_); |
+ if (process_reverse_stream_) { |
peah-webrtc
2016/03/18 09:38:02
This bool is a bit redundant: you should be able t
aluebs-webrtc
2016/03/18 18:36:53
I just though it was less bug prone to have one ce
|
+ 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())); |
+ } |
+ reverse_buffer_writer_->Write(*reverse_out_buf_.get()); |
+ } |
return true; |
} |