| 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_(kEmptyFrame), |
| 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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 void DoTest(int blocks_per_packet, int cng_pt) { | 409 void DoTest(int blocks_per_packet, int cng_pt) { |
| 410 const int kLoops = 40; | 410 const int kLoops = 40; |
| 411 // This array defines the expected frame types, and when they should arrive. | 411 // This array defines the expected frame types, and when they should arrive. |
| 412 // We expect a frame to arrive each time the speech encoder would have | 412 // We expect a frame to arrive each time the speech encoder would have |
| 413 // produced a packet, and once every 100 ms the frame should be non-empty, | 413 // produced a packet, and once every 100 ms the frame should be non-empty, |
| 414 // that is contain comfort noise. | 414 // that is contain comfort noise. |
| 415 const struct { | 415 const struct { |
| 416 int ix; | 416 int ix; |
| 417 FrameType type; | 417 FrameType type; |
| 418 } expectation[] = {{2, kAudioFrameCN}, | 418 } expectation[] = {{2, kAudioFrameCN}, |
| 419 {5, kFrameEmpty}, | 419 {5, kEmptyFrame}, |
| 420 {8, kFrameEmpty}, | 420 {8, kEmptyFrame}, |
| 421 {11, kAudioFrameCN}, | 421 {11, kAudioFrameCN}, |
| 422 {14, kFrameEmpty}, | 422 {14, kEmptyFrame}, |
| 423 {17, kFrameEmpty}, | 423 {17, kEmptyFrame}, |
| 424 {20, kAudioFrameCN}, | 424 {20, kAudioFrameCN}, |
| 425 {23, kFrameEmpty}, | 425 {23, kEmptyFrame}, |
| 426 {26, kFrameEmpty}, | 426 {26, kEmptyFrame}, |
| 427 {29, kFrameEmpty}, | 427 {29, kEmptyFrame}, |
| 428 {32, kAudioFrameCN}, | 428 {32, kAudioFrameCN}, |
| 429 {35, kFrameEmpty}, | 429 {35, kEmptyFrame}, |
| 430 {38, kFrameEmpty}}; | 430 {38, kEmptyFrame}}; |
| 431 for (int i = 0; i < kLoops; ++i) { | 431 for (int i = 0; i < kLoops; ++i) { |
| 432 int num_calls_before = packet_cb_.num_calls(); | 432 int num_calls_before = packet_cb_.num_calls(); |
| 433 EXPECT_EQ(i / blocks_per_packet, num_calls_before); | 433 EXPECT_EQ(i / blocks_per_packet, num_calls_before); |
| 434 InsertAudioAndVerifyEncoding(); | 434 InsertAudioAndVerifyEncoding(); |
| 435 int num_calls = packet_cb_.num_calls(); | 435 int num_calls = packet_cb_.num_calls(); |
| 436 if (num_calls == num_calls_before + 1) { | 436 if (num_calls == num_calls_before + 1) { |
| 437 EXPECT_EQ(expectation[num_calls - 1].ix, i); | 437 EXPECT_EQ(expectation[num_calls - 1].ix, i); |
| 438 EXPECT_EQ(expectation[num_calls - 1].type, packet_cb_.last_frame_type()) | 438 EXPECT_EQ(expectation[num_calls - 1].type, packet_cb_.last_frame_type()) |
| 439 << "Wrong frame type for lap " << i; | 439 << "Wrong frame type for lap " << i; |
| 440 EXPECT_EQ(cng_pt, packet_cb_.last_payload_type()); | 440 EXPECT_EQ(cng_pt, packet_cb_.last_payload_type()); |
| 441 } else { | 441 } else { |
| 442 EXPECT_EQ(num_calls, num_calls_before); | 442 EXPECT_EQ(num_calls, num_calls_before); |
| 443 } | 443 } |
| 444 } | 444 } |
| 445 } | 445 } |
| 446 }; | 446 }; |
| 447 | 447 |
| 448 // Checks that the transport callback is invoked once per frame period of the | 448 // Checks that the transport callback is invoked once per frame period of the |
| 449 // underlying speech encoder, even when comfort noise is produced. | 449 // underlying speech encoder, even when comfort noise is produced. |
| 450 // Also checks that the frame type is kAudioFrameCN or kFrameEmpty. | 450 // Also checks that the frame type is kAudioFrameCN or kEmptyFrame. |
| 451 // This test and the next check the same thing, but differ in the order of | 451 // This test and the next check the same thing, but differ in the order of |
| 452 // speech codec and CNG registration. | 452 // speech codec and CNG registration. |
| 453 TEST_F(AudioCodingModuleTestWithComfortNoiseOldApi, | 453 TEST_F(AudioCodingModuleTestWithComfortNoiseOldApi, |
| 454 TransportCallbackTestForComfortNoiseRegisterCngLast) { | 454 TransportCallbackTestForComfortNoiseRegisterCngLast) { |
| 455 const int k10MsBlocksPerPacket = 3; | 455 const int k10MsBlocksPerPacket = 3; |
| 456 codec_.pacsize = k10MsBlocksPerPacket * kSampleRateHz / 100; | 456 codec_.pacsize = k10MsBlocksPerPacket * kSampleRateHz / 100; |
| 457 RegisterCodec(); | 457 RegisterCodec(); |
| 458 const int kCngPayloadType = 105; | 458 const int kCngPayloadType = 105; |
| 459 RegisterCngCodec(kCngPayloadType); | 459 RegisterCngCodec(kCngPayloadType); |
| 460 ASSERT_EQ(0, acm_->SetVAD(true, true)); | 460 ASSERT_EQ(0, acm_->SetVAD(true, true)); |
| (...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1783 Run(16000, 8000, 1000); | 1783 Run(16000, 8000, 1000); |
| 1784 } | 1784 } |
| 1785 | 1785 |
| 1786 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { | 1786 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { |
| 1787 Run(8000, 16000, 1000); | 1787 Run(8000, 16000, 1000); |
| 1788 } | 1788 } |
| 1789 | 1789 |
| 1790 #endif | 1790 #endif |
| 1791 | 1791 |
| 1792 } // namespace webrtc | 1792 } // namespace webrtc |
| OLD | NEW |