| 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 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 | 313 |
| 314 ASSERT_TRUE(valid_rtp_header); | 314 ASSERT_TRUE(valid_rtp_header); |
| 315 ASSERT_FALSE(rtp_parser.RTCP()); | 315 ASSERT_FALSE(rtp_parser.RTCP()); |
| 316 VerifyRTPHeaderCommon(rtp_header); | 316 VerifyRTPHeaderCommon(rtp_header); |
| 317 EXPECT_EQ(length, rtp_header.headerLength); | 317 EXPECT_EQ(length, rtp_header.headerLength); |
| 318 EXPECT_FALSE(rtp_header.extension.hasTransmissionTimeOffset); | 318 EXPECT_FALSE(rtp_header.extension.hasTransmissionTimeOffset); |
| 319 EXPECT_FALSE(rtp_header.extension.hasAbsoluteSendTime); | 319 EXPECT_FALSE(rtp_header.extension.hasAbsoluteSendTime); |
| 320 EXPECT_FALSE(rtp_header.extension.hasAudioLevel); | 320 EXPECT_FALSE(rtp_header.extension.hasAudioLevel); |
| 321 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); | 321 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); |
| 322 EXPECT_EQ(0u, rtp_header.extension.absoluteSendTime); | 322 EXPECT_EQ(0u, rtp_header.extension.absoluteSendTime); |
| 323 EXPECT_FALSE(rtp_header.extension.voiceActivity); |
| 323 EXPECT_EQ(0u, rtp_header.extension.audioLevel); | 324 EXPECT_EQ(0u, rtp_header.extension.audioLevel); |
| 324 EXPECT_EQ(0u, rtp_header.extension.videoRotation); | 325 EXPECT_EQ(0u, rtp_header.extension.videoRotation); |
| 325 } | 326 } |
| 326 | 327 |
| 327 TEST_F(RtpSenderTest, BuildRTPPacketWithTransmissionOffsetExtension) { | 328 TEST_F(RtpSenderTest, BuildRTPPacketWithTransmissionOffsetExtension) { |
| 328 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset)); | 329 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset)); |
| 329 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 330 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 330 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 331 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); |
| 331 | 332 |
| 332 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( | 333 size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader( |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 | 498 |
| 498 RtpHeaderExtensionMap map; | 499 RtpHeaderExtensionMap map; |
| 499 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); | 500 map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId); |
| 500 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); | 501 const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map); |
| 501 | 502 |
| 502 ASSERT_TRUE(valid_rtp_header); | 503 ASSERT_TRUE(valid_rtp_header); |
| 503 ASSERT_FALSE(rtp_parser.RTCP()); | 504 ASSERT_FALSE(rtp_parser.RTCP()); |
| 504 VerifyRTPHeaderCommon(rtp_header); | 505 VerifyRTPHeaderCommon(rtp_header); |
| 505 EXPECT_EQ(length, rtp_header.headerLength); | 506 EXPECT_EQ(length, rtp_header.headerLength); |
| 506 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); | 507 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); |
| 507 // Expect kAudioLevel + 0x80 because we set "voiced" to true in the call to | 508 EXPECT_TRUE(rtp_header.extension.voiceActivity); |
| 508 // UpdateAudioLevel(), above. | 509 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); |
| 509 EXPECT_EQ(kAudioLevel + 0x80u, rtp_header.extension.audioLevel); | |
| 510 | 510 |
| 511 // Parse without map extension | 511 // Parse without map extension |
| 512 webrtc::RTPHeader rtp_header2; | 512 webrtc::RTPHeader rtp_header2; |
| 513 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 513 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); |
| 514 | 514 |
| 515 ASSERT_TRUE(valid_rtp_header2); | 515 ASSERT_TRUE(valid_rtp_header2); |
| 516 VerifyRTPHeaderCommon(rtp_header2); | 516 VerifyRTPHeaderCommon(rtp_header2); |
| 517 EXPECT_EQ(length, rtp_header2.headerLength); | 517 EXPECT_EQ(length, rtp_header2.headerLength); |
| 518 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); | 518 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); |
| 519 EXPECT_FALSE(rtp_header2.extension.voiceActivity); |
| 519 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); | 520 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); |
| 520 } | 521 } |
| 521 | 522 |
| 522 TEST_F(RtpSenderTest, BuildRTPPacketWithHeaderExtensions) { | 523 TEST_F(RtpSenderTest, BuildRTPPacketWithHeaderExtensions) { |
| 523 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset)); | 524 EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset)); |
| 524 EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime)); | 525 EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime)); |
| 525 EXPECT_EQ(0, | 526 EXPECT_EQ(0, |
| 526 rtp_sender_->SetTransportSequenceNumber(kTransportSequenceNumber)); | 527 rtp_sender_->SetTransportSequenceNumber(kTransportSequenceNumber)); |
| 527 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 528 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 528 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 529 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 559 ASSERT_TRUE(valid_rtp_header); | 560 ASSERT_TRUE(valid_rtp_header); |
| 560 ASSERT_FALSE(rtp_parser.RTCP()); | 561 ASSERT_FALSE(rtp_parser.RTCP()); |
| 561 VerifyRTPHeaderCommon(rtp_header); | 562 VerifyRTPHeaderCommon(rtp_header); |
| 562 EXPECT_EQ(length, rtp_header.headerLength); | 563 EXPECT_EQ(length, rtp_header.headerLength); |
| 563 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); | 564 EXPECT_TRUE(rtp_header.extension.hasTransmissionTimeOffset); |
| 564 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); | 565 EXPECT_TRUE(rtp_header.extension.hasAbsoluteSendTime); |
| 565 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); | 566 EXPECT_TRUE(rtp_header.extension.hasAudioLevel); |
| 566 EXPECT_TRUE(rtp_header.extension.hasTransportSequenceNumber); | 567 EXPECT_TRUE(rtp_header.extension.hasTransportSequenceNumber); |
| 567 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); | 568 EXPECT_EQ(kTimeOffset, rtp_header.extension.transmissionTimeOffset); |
| 568 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); | 569 EXPECT_EQ(kAbsoluteSendTime, rtp_header.extension.absoluteSendTime); |
| 569 EXPECT_EQ(kAudioLevel + 0x80u, rtp_header.extension.audioLevel); | 570 EXPECT_TRUE(rtp_header.extension.voiceActivity); |
| 571 EXPECT_EQ(kAudioLevel, rtp_header.extension.audioLevel); |
| 570 EXPECT_EQ(kTransportSequenceNumber, | 572 EXPECT_EQ(kTransportSequenceNumber, |
| 571 rtp_header.extension.transportSequenceNumber); | 573 rtp_header.extension.transportSequenceNumber); |
| 572 | 574 |
| 573 // Parse without map extension | 575 // Parse without map extension |
| 574 webrtc::RTPHeader rtp_header2; | 576 webrtc::RTPHeader rtp_header2; |
| 575 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); | 577 const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr); |
| 576 | 578 |
| 577 ASSERT_TRUE(valid_rtp_header2); | 579 ASSERT_TRUE(valid_rtp_header2); |
| 578 VerifyRTPHeaderCommon(rtp_header2); | 580 VerifyRTPHeaderCommon(rtp_header2); |
| 579 EXPECT_EQ(length, rtp_header2.headerLength); | 581 EXPECT_EQ(length, rtp_header2.headerLength); |
| 580 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); | 582 EXPECT_FALSE(rtp_header2.extension.hasTransmissionTimeOffset); |
| 581 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); | 583 EXPECT_FALSE(rtp_header2.extension.hasAbsoluteSendTime); |
| 582 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); | 584 EXPECT_FALSE(rtp_header2.extension.hasAudioLevel); |
| 583 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); | 585 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); |
| 584 | 586 |
| 585 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); | 587 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); |
| 586 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); | 588 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); |
| 589 EXPECT_FALSE(rtp_header2.extension.voiceActivity); |
| 587 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); | 590 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); |
| 588 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber); | 591 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber); |
| 589 } | 592 } |
| 590 | 593 |
| 591 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { | 594 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { |
| 592 EXPECT_CALL(mock_paced_sender_, | 595 EXPECT_CALL(mock_paced_sender_, |
| 593 SendPacket(PacedSender::kNormalPriority, _, kSeqNum, _, _, _)). | 596 SendPacket(PacedSender::kNormalPriority, _, kSeqNum, _, _, _)). |
| 594 WillOnce(testing::Return(false)); | 597 WillOnce(testing::Return(false)); |
| 595 | 598 |
| 596 rtp_sender_->SetStorePacketsStatus(true, 10); | 599 rtp_sender_->SetStorePacketsStatus(true, 10); |
| (...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 1373 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), |
| 1371 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 1374 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); |
| 1372 | 1375 |
| 1373 // Verify that this packet does have CVO byte. | 1376 // Verify that this packet does have CVO byte. |
| 1374 VerifyCVOPacket( | 1377 VerifyCVOPacket( |
| 1375 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 1378 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), |
| 1376 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 1379 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, |
| 1377 hdr.rotation); | 1380 hdr.rotation); |
| 1378 } | 1381 } |
| 1379 } // namespace webrtc | 1382 } // namespace webrtc |
| OLD | NEW |