Chromium Code Reviews| 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 | 85 |
| 86 private: | 86 private: |
| 87 int samples_per_packet_; | 87 int samples_per_packet_; |
| 88 uint8_t payload_type_; | 88 uint8_t payload_type_; |
| 89 }; | 89 }; |
| 90 | 90 |
| 91 class PacketizationCallbackStubOldApi : public AudioPacketizationCallback { | 91 class PacketizationCallbackStubOldApi : public AudioPacketizationCallback { |
| 92 public: | 92 public: |
| 93 PacketizationCallbackStubOldApi() | 93 PacketizationCallbackStubOldApi() |
| 94 : num_calls_(0), | 94 : num_calls_(0), |
| 95 last_frame_type_(kFrameEmpty), | 95 last_frame_type_(kSkipFrame), |
| 96 last_payload_type_(-1), | 96 last_payload_type_(-1), |
| 97 last_timestamp_(0), | 97 last_timestamp_(0), |
| 98 crit_sect_(CriticalSectionWrapper::CreateCriticalSection()) {} | 98 crit_sect_(CriticalSectionWrapper::CreateCriticalSection()) {} |
| 99 | 99 |
| 100 int32_t SendData(FrameType frame_type, | 100 int32_t SendData(FrameType frame_type, |
| 101 uint8_t payload_type, | 101 uint8_t payload_type, |
| 102 uint32_t timestamp, | 102 uint32_t timestamp, |
| 103 const uint8_t* payload_data, | 103 const uint8_t* payload_data, |
| 104 size_t payload_len_bytes, | 104 size_t payload_len_bytes, |
| 105 const RTPFragmentationHeader* fragmentation) override { | 105 const RTPFragmentationHeader* fragmentation) override { |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 401 | 401 |
| 402 void DoTest(int blocks_per_packet, int cng_pt) { | 402 void DoTest(int blocks_per_packet, int cng_pt) { |
| 403 const int kLoops = 40; | 403 const int kLoops = 40; |
| 404 // This array defines the expected frame types, and when they should arrive. | 404 // This array defines the expected frame types, and when they should arrive. |
| 405 // We expect a frame to arrive each time the speech encoder would have | 405 // We expect a frame to arrive each time the speech encoder would have |
| 406 // produced a packet, and once every 100 ms the frame should be non-empty, | 406 // produced a packet, and once every 100 ms the frame should be non-empty, |
| 407 // that is contain comfort noise. | 407 // that is contain comfort noise. |
| 408 const struct { | 408 const struct { |
| 409 int ix; | 409 int ix; |
| 410 FrameType type; | 410 FrameType type; |
| 411 } expectation[] = {{2, kAudioFrameCN}, | 411 } expectation[] = { |
|
hlundin-webrtc
2015/10/01 08:54:04
I'd rather you didn't reformat this.
pbos-webrtc
2015/10/06 15:42:45
Done. But clang-format is awesome. :(
| |
| 412 {5, kFrameEmpty}, | 412 {2, kAudioFrameCN}, {5, kSkipFrame}, {8, kSkipFrame}, |
| 413 {8, kFrameEmpty}, | 413 {11, kAudioFrameCN}, {14, kSkipFrame}, {17, kSkipFrame}, |
| 414 {11, kAudioFrameCN}, | 414 {20, kAudioFrameCN}, {23, kSkipFrame}, {26, kSkipFrame}, |
| 415 {14, kFrameEmpty}, | 415 {29, kSkipFrame}, {32, kAudioFrameCN}, {35, kSkipFrame}, |
| 416 {17, kFrameEmpty}, | 416 {38, kSkipFrame}}; |
| 417 {20, kAudioFrameCN}, | |
| 418 {23, kFrameEmpty}, | |
| 419 {26, kFrameEmpty}, | |
| 420 {29, kFrameEmpty}, | |
| 421 {32, kAudioFrameCN}, | |
| 422 {35, kFrameEmpty}, | |
| 423 {38, kFrameEmpty}}; | |
| 424 for (int i = 0; i < kLoops; ++i) { | 417 for (int i = 0; i < kLoops; ++i) { |
| 425 int num_calls_before = packet_cb_.num_calls(); | 418 int num_calls_before = packet_cb_.num_calls(); |
| 426 EXPECT_EQ(i / blocks_per_packet, num_calls_before); | 419 EXPECT_EQ(i / blocks_per_packet, num_calls_before); |
| 427 InsertAudioAndVerifyEncoding(); | 420 InsertAudioAndVerifyEncoding(); |
| 428 int num_calls = packet_cb_.num_calls(); | 421 int num_calls = packet_cb_.num_calls(); |
| 429 if (num_calls == num_calls_before + 1) { | 422 if (num_calls == num_calls_before + 1) { |
| 430 EXPECT_EQ(expectation[num_calls - 1].ix, i); | 423 EXPECT_EQ(expectation[num_calls - 1].ix, i); |
| 431 EXPECT_EQ(expectation[num_calls - 1].type, packet_cb_.last_frame_type()) | 424 EXPECT_EQ(expectation[num_calls - 1].type, packet_cb_.last_frame_type()) |
| 432 << "Wrong frame type for lap " << i; | 425 << "Wrong frame type for lap " << i; |
| 433 EXPECT_EQ(cng_pt, packet_cb_.last_payload_type()); | 426 EXPECT_EQ(cng_pt, packet_cb_.last_payload_type()); |
| 434 } else { | 427 } else { |
| 435 EXPECT_EQ(num_calls, num_calls_before); | 428 EXPECT_EQ(num_calls, num_calls_before); |
| 436 } | 429 } |
| 437 } | 430 } |
| 438 } | 431 } |
| 439 }; | 432 }; |
| 440 | 433 |
| 441 // Checks that the transport callback is invoked once per frame period of the | 434 // Checks that the transport callback is invoked once per frame period of the |
| 442 // underlying speech encoder, even when comfort noise is produced. | 435 // underlying speech encoder, even when comfort noise is produced. |
| 443 // Also checks that the frame type is kAudioFrameCN or kFrameEmpty. | 436 // Also checks that the frame type is kAudioFrameCN or kSkipFrame. |
| 444 // This test and the next check the same thing, but differ in the order of | 437 // This test and the next check the same thing, but differ in the order of |
| 445 // speech codec and CNG registration. | 438 // speech codec and CNG registration. |
| 446 TEST_F(AudioCodingModuleTestWithComfortNoiseOldApi, | 439 TEST_F(AudioCodingModuleTestWithComfortNoiseOldApi, |
| 447 TransportCallbackTestForComfortNoiseRegisterCngLast) { | 440 TransportCallbackTestForComfortNoiseRegisterCngLast) { |
| 448 const int k10MsBlocksPerPacket = 3; | 441 const int k10MsBlocksPerPacket = 3; |
| 449 codec_.pacsize = k10MsBlocksPerPacket * kSampleRateHz / 100; | 442 codec_.pacsize = k10MsBlocksPerPacket * kSampleRateHz / 100; |
| 450 RegisterCodec(); | 443 RegisterCodec(); |
| 451 const int kCngPayloadType = 105; | 444 const int kCngPayloadType = 105; |
| 452 RegisterCngCodec(kCngPayloadType); | 445 RegisterCngCodec(kCngPayloadType); |
| 453 ASSERT_EQ(0, acm_->SetVAD(true, true)); | 446 ASSERT_EQ(0, acm_->SetVAD(true, true)); |
| (...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1748 Run(16000, 8000, 1000); | 1741 Run(16000, 8000, 1000); |
| 1749 } | 1742 } |
| 1750 | 1743 |
| 1751 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { | 1744 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { |
| 1752 Run(8000, 16000, 1000); | 1745 Run(8000, 16000, 1000); |
| 1753 } | 1746 } |
| 1754 | 1747 |
| 1755 #endif | 1748 #endif |
| 1756 | 1749 |
| 1757 } // namespace webrtc | 1750 } // namespace webrtc |
| OLD | NEW |