| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |    2  *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 
|    3  * |    3  * | 
|    4  *  Use of this source code is governed by a BSD-style license |    4  *  Use of this source code is governed by a BSD-style license | 
|    5  *  that can be found in the LICENSE file in the root of the source |    5  *  that can be found in the LICENSE file in the root of the source | 
|    6  *  tree. An additional intellectual property rights grant can be found |    6  *  tree. An additional intellectual property rights grant can be found | 
|    7  *  in the file PATENTS.  All contributing project authors may |    7  *  in the file PATENTS.  All contributing project authors may | 
|    8  *  be found in the AUTHORS file in the root of the source tree. |    8  *  be found in the AUTHORS file in the root of the source tree. | 
|    9  */ |    9  */ | 
|   10  |   10  | 
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  120       in_file.num_channels()); |  120       in_file.num_channels()); | 
|  121   ChannelBuffer<float> out_buf( |  121   ChannelBuffer<float> out_buf( | 
|  122       rtc::CheckedDivExact(out_file.sample_rate(), kChunksPerSecond), |  122       rtc::CheckedDivExact(out_file.sample_rate(), kChunksPerSecond), | 
|  123       out_file.num_channels()); |  123       out_file.num_channels()); | 
|  124  |  124  | 
|  125   std::vector<float> in_interleaved(in_buf.size()); |  125   std::vector<float> in_interleaved(in_buf.size()); | 
|  126   std::vector<float> out_interleaved(out_buf.size()); |  126   std::vector<float> out_interleaved(out_buf.size()); | 
|  127   TickTime processing_start_time; |  127   TickTime processing_start_time; | 
|  128   TickInterval accumulated_time; |  128   TickInterval accumulated_time; | 
|  129   int num_chunks = 0; |  129   int num_chunks = 0; | 
 |  130  | 
 |  131   const StreamConfig input_config = { | 
 |  132       in_file.sample_rate(), in_buf.num_channels(), | 
 |  133   }; | 
 |  134   const StreamConfig output_config = { | 
 |  135       out_file.sample_rate(), out_buf.num_channels(), | 
 |  136   }; | 
|  130   while (in_file.ReadSamples(in_interleaved.size(), |  137   while (in_file.ReadSamples(in_interleaved.size(), | 
|  131                              &in_interleaved[0]) == in_interleaved.size()) { |  138                              &in_interleaved[0]) == in_interleaved.size()) { | 
|  132     // Have logs display the file time rather than wallclock time. |  139     // Have logs display the file time rather than wallclock time. | 
|  133     trace_to_stderr.SetTimeSeconds(num_chunks * 1.f / kChunksPerSecond); |  140     trace_to_stderr.SetTimeSeconds(num_chunks * 1.f / kChunksPerSecond); | 
|  134     FloatS16ToFloat(&in_interleaved[0], in_interleaved.size(), |  141     FloatS16ToFloat(&in_interleaved[0], in_interleaved.size(), | 
|  135                     &in_interleaved[0]); |  142                     &in_interleaved[0]); | 
|  136     Deinterleave(&in_interleaved[0], in_buf.num_frames(), |  143     Deinterleave(&in_interleaved[0], in_buf.num_frames(), | 
|  137                  in_buf.num_channels(), in_buf.channels()); |  144                  in_buf.num_channels(), in_buf.channels()); | 
|  138  |  145  | 
|  139     if (FLAGS_perf) { |  146     if (FLAGS_perf) { | 
|  140       processing_start_time = TickTime::Now(); |  147       processing_start_time = TickTime::Now(); | 
|  141     } |  148     } | 
|  142     CHECK_EQ(kNoErr, |  149     CHECK_EQ(kNoErr, ap->ProcessStream(in_buf.channels(), input_config, | 
|  143         ap->ProcessStream(in_buf.channels(), |  150                                        output_config, out_buf.channels())); | 
|  144                           in_buf.num_frames(), |  | 
|  145                           in_file.sample_rate(), |  | 
|  146                           LayoutFromChannels(in_buf.num_channels()), |  | 
|  147                           out_file.sample_rate(), |  | 
|  148                           LayoutFromChannels(out_buf.num_channels()), |  | 
|  149                           out_buf.channels())); |  | 
|  150     if (FLAGS_perf) { |  151     if (FLAGS_perf) { | 
|  151       accumulated_time += TickTime::Now() - processing_start_time; |  152       accumulated_time += TickTime::Now() - processing_start_time; | 
|  152     } |  153     } | 
|  153  |  154  | 
|  154     Interleave(out_buf.channels(), out_buf.num_frames(), |  155     Interleave(out_buf.channels(), out_buf.num_frames(), | 
|  155                out_buf.num_channels(), &out_interleaved[0]); |  156                out_buf.num_channels(), &out_interleaved[0]); | 
|  156     FloatToFloatS16(&out_interleaved[0], out_interleaved.size(), |  157     FloatToFloatS16(&out_interleaved[0], out_interleaved.size(), | 
|  157                     &out_interleaved[0]); |  158                     &out_interleaved[0]); | 
|  158     out_file.WriteSamples(&out_interleaved[0], out_interleaved.size()); |  159     out_file.WriteSamples(&out_interleaved[0], out_interleaved.size()); | 
|  159     num_chunks++; |  160     num_chunks++; | 
|  160   } |  161   } | 
|  161   if (FLAGS_perf) { |  162   if (FLAGS_perf) { | 
|  162     int64_t execution_time_ms = accumulated_time.Milliseconds(); |  163     int64_t execution_time_ms = accumulated_time.Milliseconds(); | 
|  163     printf("\nExecution time: %.3f s\nFile time: %.2f s\n" |  164     printf("\nExecution time: %.3f s\nFile time: %.2f s\n" | 
|  164            "Time per chunk: %.3f ms\n", |  165            "Time per chunk: %.3f ms\n", | 
|  165            execution_time_ms * 0.001f, num_chunks * 1.f / kChunksPerSecond, |  166            execution_time_ms * 0.001f, num_chunks * 1.f / kChunksPerSecond, | 
|  166            execution_time_ms * 1.f / num_chunks); |  167            execution_time_ms * 1.f / num_chunks); | 
|  167   } |  168   } | 
|  168   return 0; |  169   return 0; | 
|  169 } |  170 } | 
|  170  |  171  | 
|  171 }  // namespace webrtc |  172 }  // namespace webrtc | 
|  172  |  173  | 
|  173 int main(int argc, char* argv[]) { |  174 int main(int argc, char* argv[]) { | 
|  174   return webrtc::main(argc, argv); |  175   return webrtc::main(argc, argv); | 
|  175 } |  176 } | 
| OLD | NEW |