Chromium Code Reviews| 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; |
| } |