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 |