OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 encoded_multi_channel_); | 158 encoded_multi_channel_); |
159 if (frame_size_samples_ * 2 * num_channels_ != multi_payload_size_bytes_) { | 159 if (frame_size_samples_ * 2 * num_channels_ != multi_payload_size_bytes_) { |
160 return -1; | 160 return -1; |
161 } | 161 } |
162 rtp_generator_.GetRtpHeader(kPayloadTypeMulti, frame_size_samples_, | 162 rtp_generator_.GetRtpHeader(kPayloadTypeMulti, frame_size_samples_, |
163 &rtp_header_); | 163 &rtp_header_); |
164 return next_send_time; | 164 return next_send_time; |
165 } | 165 } |
166 | 166 |
167 virtual void VerifyOutput(size_t num_samples) { | 167 virtual void VerifyOutput(size_t num_samples) { |
| 168 const int16_t* output_data = output_.data(); |
| 169 const int16_t* output_multi_channel_data = output_multi_channel_.data(); |
168 for (size_t i = 0; i < num_samples; ++i) { | 170 for (size_t i = 0; i < num_samples; ++i) { |
169 for (size_t j = 0; j < num_channels_; ++j) { | 171 for (size_t j = 0; j < num_channels_; ++j) { |
170 ASSERT_EQ(output_.data_[i], | 172 ASSERT_EQ(output_data[i], |
171 output_multi_channel_.data_[i * num_channels_ + j]) | 173 output_multi_channel_data[i * num_channels_ + j]) |
172 << "Diff in sample " << i << ", channel " << j << "."; | 174 << "Diff in sample " << i << ", channel " << j << "."; |
173 } | 175 } |
174 } | 176 } |
175 } | 177 } |
176 | 178 |
177 virtual int GetArrivalTime(int send_time) { | 179 virtual int GetArrivalTime(int send_time) { |
178 int arrival_time = last_arrival_time_ + (send_time - last_send_time_); | 180 int arrival_time = last_arrival_time_ + (send_time - last_send_time_); |
179 last_send_time_ = send_time; | 181 last_send_time_ = send_time; |
180 last_arrival_time_ = arrival_time; | 182 last_arrival_time_ = arrival_time; |
181 return arrival_time; | 183 return arrival_time; |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 frame_index_(0) { | 354 frame_index_(0) { |
353 } | 355 } |
354 | 356 |
355 virtual bool Lost() { | 357 virtual bool Lost() { |
356 return (++frame_index_) % kLossInterval == 0; | 358 return (++frame_index_) % kLossInterval == 0; |
357 } | 359 } |
358 | 360 |
359 // TODO(hlundin): NetEq is not giving bitexact results for these cases. | 361 // TODO(hlundin): NetEq is not giving bitexact results for these cases. |
360 virtual void VerifyOutput(size_t num_samples) { | 362 virtual void VerifyOutput(size_t num_samples) { |
361 for (size_t i = 0; i < num_samples; ++i) { | 363 for (size_t i = 0; i < num_samples; ++i) { |
| 364 const int16_t* output_data = output_.data(); |
| 365 const int16_t* output_multi_channel_data = output_multi_channel_.data(); |
362 auto first_channel_sample = | 366 auto first_channel_sample = |
363 output_multi_channel_.data_[i * num_channels_]; | 367 output_multi_channel_data[i * num_channels_]; |
364 for (size_t j = 0; j < num_channels_; ++j) { | 368 for (size_t j = 0; j < num_channels_; ++j) { |
365 const int kErrorMargin = 200; | 369 const int kErrorMargin = 200; |
366 EXPECT_NEAR(output_.data_[i], | 370 EXPECT_NEAR(output_data[i], |
367 output_multi_channel_.data_[i * num_channels_ + j], | 371 output_multi_channel_data[i * num_channels_ + j], |
368 kErrorMargin) | 372 kErrorMargin) |
369 << "Diff in sample " << i << ", channel " << j << "."; | 373 << "Diff in sample " << i << ", channel " << j << "."; |
370 EXPECT_EQ(first_channel_sample, | 374 EXPECT_EQ(first_channel_sample, |
371 output_multi_channel_.data_[i * num_channels_ + j]); | 375 output_multi_channel_data[i * num_channels_ + j]); |
372 } | 376 } |
373 } | 377 } |
374 } | 378 } |
375 | 379 |
376 int frame_index_; | 380 int frame_index_; |
377 }; | 381 }; |
378 | 382 |
379 TEST_P(NetEqStereoTestLosses, RunTest) { | 383 TEST_P(NetEqStereoTestLosses, RunTest) { |
380 RunTest(100); | 384 RunTest(100); |
381 } | 385 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 | 433 |
430 INSTANTIATE_TEST_CASE_P(MultiChannel, | 434 INSTANTIATE_TEST_CASE_P(MultiChannel, |
431 NetEqStereoTestDelays, | 435 NetEqStereoTestDelays, |
432 ::testing::ValuesIn(GetTestParameters())); | 436 ::testing::ValuesIn(GetTestParameters())); |
433 | 437 |
434 INSTANTIATE_TEST_CASE_P(MultiChannel, | 438 INSTANTIATE_TEST_CASE_P(MultiChannel, |
435 NetEqStereoTestLosses, | 439 NetEqStereoTestLosses, |
436 ::testing::ValuesIn(GetTestParameters())); | 440 ::testing::ValuesIn(GetTestParameters())); |
437 | 441 |
438 } // namespace webrtc | 442 } // namespace webrtc |
OLD | NEW |