| 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 |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 EXPECT_EQ(-21, GetChannelData(frame_, 1, 1)); | 419 EXPECT_EQ(-21, GetChannelData(frame_, 1, 1)); |
| 420 EXPECT_EQ(989, GetChannelData(frame_, 0, 91)); | 420 EXPECT_EQ(989, GetChannelData(frame_, 0, 91)); |
| 421 EXPECT_EQ(-989, GetChannelData(frame_, 1, 91)); | 421 EXPECT_EQ(-989, GetChannelData(frame_, 1, 91)); |
| 422 EXPECT_EQ(999, GetChannelData(frame_, 0, 92)); | 422 EXPECT_EQ(999, GetChannelData(frame_, 0, 92)); |
| 423 EXPECT_EQ(-999, GetChannelData(frame_, 1, 92)); | 423 EXPECT_EQ(-999, GetChannelData(frame_, 1, 92)); |
| 424 } | 424 } |
| 425 | 425 |
| 426 // TODO(andrew): should not allow negative scales. | 426 // TODO(andrew): should not allow negative scales. |
| 427 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleFailsWithBadParameters) { | 427 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleFailsWithBadParameters) { |
| 428 frame_.num_channels_ = 1; | 428 frame_.num_channels_ = 1; |
| 429 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, 1.0, frame_)); | 429 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, 1.0, &frame_)); |
| 430 | 430 |
| 431 frame_.num_channels_ = 3; | 431 frame_.num_channels_ = 3; |
| 432 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, 1.0, frame_)); | 432 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, 1.0, &frame_)); |
| 433 | 433 |
| 434 frame_.num_channels_ = 2; | 434 frame_.num_channels_ = 2; |
| 435 EXPECT_EQ(-1, AudioFrameOperations::Scale(-1.0, 1.0, frame_)); | 435 EXPECT_EQ(-1, AudioFrameOperations::Scale(-1.0, 1.0, &frame_)); |
| 436 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, -1.0, frame_)); | 436 EXPECT_EQ(-1, AudioFrameOperations::Scale(1.0, -1.0, &frame_)); |
| 437 } | 437 } |
| 438 | 438 |
| 439 // TODO(andrew): fix the wraparound bug. We should always saturate. | 439 // TODO(andrew): fix the wraparound bug. We should always saturate. |
| 440 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleDoesNotWrapAround) { | 440 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleDoesNotWrapAround) { |
| 441 SetFrameData(4000, -4000, &frame_); | 441 SetFrameData(4000, -4000, &frame_); |
| 442 EXPECT_EQ(0, AudioFrameOperations::Scale(10.0, 10.0, frame_)); | 442 EXPECT_EQ(0, AudioFrameOperations::Scale(10.0, 10.0, &frame_)); |
| 443 | 443 |
| 444 AudioFrame clipped_frame; | 444 AudioFrame clipped_frame; |
| 445 clipped_frame.samples_per_channel_ = 320; | 445 clipped_frame.samples_per_channel_ = 320; |
| 446 clipped_frame.num_channels_ = 2; | 446 clipped_frame.num_channels_ = 2; |
| 447 SetFrameData(32767, -32768, &clipped_frame); | 447 SetFrameData(32767, -32768, &clipped_frame); |
| 448 VerifyFramesAreEqual(clipped_frame, frame_); | 448 VerifyFramesAreEqual(clipped_frame, frame_); |
| 449 } | 449 } |
| 450 | 450 |
| 451 TEST_F(AudioFrameOperationsTest, ScaleSucceeds) { | 451 TEST_F(AudioFrameOperationsTest, ScaleSucceeds) { |
| 452 SetFrameData(1, -1, &frame_); | 452 SetFrameData(1, -1, &frame_); |
| 453 EXPECT_EQ(0, AudioFrameOperations::Scale(2.0, 3.0, frame_)); | 453 EXPECT_EQ(0, AudioFrameOperations::Scale(2.0, 3.0, &frame_)); |
| 454 | 454 |
| 455 AudioFrame scaled_frame; | 455 AudioFrame scaled_frame; |
| 456 scaled_frame.samples_per_channel_ = 320; | 456 scaled_frame.samples_per_channel_ = 320; |
| 457 scaled_frame.num_channels_ = 2; | 457 scaled_frame.num_channels_ = 2; |
| 458 SetFrameData(2, -3, &scaled_frame); | 458 SetFrameData(2, -3, &scaled_frame); |
| 459 VerifyFramesAreEqual(scaled_frame, frame_); | 459 VerifyFramesAreEqual(scaled_frame, frame_); |
| 460 } | 460 } |
| 461 | 461 |
| 462 // TODO(andrew): should fail with a negative scale. | 462 // TODO(andrew): should fail with a negative scale. |
| 463 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleWithSatFailsWithBadParameters) { | 463 TEST_F(AudioFrameOperationsTest, DISABLED_ScaleWithSatFailsWithBadParameters) { |
| 464 EXPECT_EQ(-1, AudioFrameOperations::ScaleWithSat(-1.0, frame_)); | 464 EXPECT_EQ(-1, AudioFrameOperations::ScaleWithSat(-1.0, &frame_)); |
| 465 } | 465 } |
| 466 | 466 |
| 467 TEST_F(AudioFrameOperationsTest, ScaleWithSatDoesNotWrapAround) { | 467 TEST_F(AudioFrameOperationsTest, ScaleWithSatDoesNotWrapAround) { |
| 468 frame_.num_channels_ = 1; | 468 frame_.num_channels_ = 1; |
| 469 SetFrameData(4000, &frame_); | 469 SetFrameData(4000, &frame_); |
| 470 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(10.0, frame_)); | 470 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(10.0, &frame_)); |
| 471 | 471 |
| 472 AudioFrame clipped_frame; | 472 AudioFrame clipped_frame; |
| 473 clipped_frame.samples_per_channel_ = 320; | 473 clipped_frame.samples_per_channel_ = 320; |
| 474 clipped_frame.num_channels_ = 1; | 474 clipped_frame.num_channels_ = 1; |
| 475 SetFrameData(32767, &clipped_frame); | 475 SetFrameData(32767, &clipped_frame); |
| 476 VerifyFramesAreEqual(clipped_frame, frame_); | 476 VerifyFramesAreEqual(clipped_frame, frame_); |
| 477 | 477 |
| 478 SetFrameData(-4000, &frame_); | 478 SetFrameData(-4000, &frame_); |
| 479 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(10.0, frame_)); | 479 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(10.0, &frame_)); |
| 480 SetFrameData(-32768, &clipped_frame); | 480 SetFrameData(-32768, &clipped_frame); |
| 481 VerifyFramesAreEqual(clipped_frame, frame_); | 481 VerifyFramesAreEqual(clipped_frame, frame_); |
| 482 } | 482 } |
| 483 | 483 |
| 484 TEST_F(AudioFrameOperationsTest, ScaleWithSatSucceeds) { | 484 TEST_F(AudioFrameOperationsTest, ScaleWithSatSucceeds) { |
| 485 frame_.num_channels_ = 1; | 485 frame_.num_channels_ = 1; |
| 486 SetFrameData(1, &frame_); | 486 SetFrameData(1, &frame_); |
| 487 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(2.0, frame_)); | 487 EXPECT_EQ(0, AudioFrameOperations::ScaleWithSat(2.0, &frame_)); |
| 488 | 488 |
| 489 AudioFrame scaled_frame; | 489 AudioFrame scaled_frame; |
| 490 scaled_frame.samples_per_channel_ = 320; | 490 scaled_frame.samples_per_channel_ = 320; |
| 491 scaled_frame.num_channels_ = 1; | 491 scaled_frame.num_channels_ = 1; |
| 492 SetFrameData(2, &scaled_frame); | 492 SetFrameData(2, &scaled_frame); |
| 493 VerifyFramesAreEqual(scaled_frame, frame_); | 493 VerifyFramesAreEqual(scaled_frame, frame_); |
| 494 } | 494 } |
| 495 | 495 |
| 496 TEST_F(AudioFrameOperationsTest, AddingXToEmptyGivesX) { | 496 TEST_F(AudioFrameOperationsTest, AddingXToEmptyGivesX) { |
| 497 // When samples_per_channel_ is 0, the frame counts as empty and zero. | 497 // When samples_per_channel_ is 0, the frame counts as empty and zero. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 508 frame_to_add_to.samples_per_channel_ = frame_.samples_per_channel_; | 508 frame_to_add_to.samples_per_channel_ = frame_.samples_per_channel_; |
| 509 frame_to_add_to.num_channels_ = frame_.num_channels_; | 509 frame_to_add_to.num_channels_ = frame_.num_channels_; |
| 510 SetFrameData(1000, &frame_to_add_to); | 510 SetFrameData(1000, &frame_to_add_to); |
| 511 | 511 |
| 512 AudioFrameOperations::Add(frame_, &frame_to_add_to); | 512 AudioFrameOperations::Add(frame_, &frame_to_add_to); |
| 513 SetFrameData(frame_.data_[0] + 1000, &frame_); | 513 SetFrameData(frame_.data_[0] + 1000, &frame_); |
| 514 VerifyFramesAreEqual(frame_, frame_to_add_to); | 514 VerifyFramesAreEqual(frame_, frame_to_add_to); |
| 515 } | 515 } |
| 516 } // namespace | 516 } // namespace |
| 517 } // namespace webrtc | 517 } // namespace webrtc |
| OLD | NEW |