OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 |
| 11 #include "webrtc/audio/utility/audio_frame_operations.h" |
11 #include "webrtc/base/checks.h" | 12 #include "webrtc/base/checks.h" |
12 #include "webrtc/modules/include/module_common_types.h" | 13 #include "webrtc/modules/include/module_common_types.h" |
13 #include "webrtc/modules/utility/include/audio_frame_operations.h" | |
14 #include "webrtc/test/gtest.h" | 14 #include "webrtc/test/gtest.h" |
15 | 15 |
16 namespace webrtc { | 16 namespace webrtc { |
17 namespace { | 17 namespace { |
18 | 18 |
19 class AudioFrameOperationsTest : public ::testing::Test { | 19 class AudioFrameOperationsTest : public ::testing::Test { |
20 protected: | 20 protected: |
21 AudioFrameOperationsTest() { | 21 AudioFrameOperationsTest() { |
22 // Set typical values. | 22 // Set typical values. |
23 frame_.samples_per_channel_ = 320; | 23 frame_.samples_per_channel_ = 320; |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 SetFrameData(&frame_, 1); | 358 SetFrameData(&frame_, 1); |
359 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(2.0, frame_)); | 359 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(2.0, frame_)); |
360 | 360 |
361 AudioFrame scaled_frame; | 361 AudioFrame scaled_frame; |
362 scaled_frame.samples_per_channel_ = 320; | 362 scaled_frame.samples_per_channel_ = 320; |
363 scaled_frame.num_channels_ = 1; | 363 scaled_frame.num_channels_ = 1; |
364 SetFrameData(&scaled_frame, 2); | 364 SetFrameData(&scaled_frame, 2); |
365 VerifyFramesAreEqual(scaled_frame, frame_); | 365 VerifyFramesAreEqual(scaled_frame, frame_); |
366 } | 366 } |
367 | 367 |
| 368 TEST_F(AudioFrameOperationsTest, AddingXToEmptyGivesX) { |
| 369 // When samples_per_channel_ is 0, the frame counts as empty and zero. |
| 370 AudioFrame frame_to_add_to; |
| 371 frame_to_add_to.samples_per_channel_ = 0; |
| 372 frame_to_add_to.num_channels_ = frame_.num_channels_; |
| 373 |
| 374 AudioFrameOperations::Add(frame_, &frame_to_add_to); |
| 375 VerifyFramesAreEqual(frame_, frame_to_add_to); |
| 376 } |
| 377 |
| 378 TEST_F(AudioFrameOperationsTest, AddingTwoFramesProducesTheirSum) { |
| 379 AudioFrame frame_to_add_to; |
| 380 frame_to_add_to.samples_per_channel_ = frame_.samples_per_channel_; |
| 381 frame_to_add_to.num_channels_ = frame_.num_channels_; |
| 382 SetFrameData(&frame_to_add_to, 1000); |
| 383 |
| 384 AudioFrameOperations::Add(frame_, &frame_to_add_to); |
| 385 SetFrameData(&frame_, frame_.data_[0] + 1000); |
| 386 VerifyFramesAreEqual(frame_, frame_to_add_to); |
| 387 } |
368 } // namespace | 388 } // namespace |
369 } // namespace webrtc | 389 } // namespace webrtc |
OLD | NEW |