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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 ASSERT_EQ(kRtpHeaderSize, length); | 255 ASSERT_EQ(kRtpHeaderSize, length); |
256 } | 256 } |
257 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, map)); | 257 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, map)); |
258 ASSERT_FALSE(rtp_parser.RTCP()); | 258 ASSERT_FALSE(rtp_parser.RTCP()); |
259 EXPECT_EQ(payload_, rtp_header.payloadType); | 259 EXPECT_EQ(payload_, rtp_header.payloadType); |
260 EXPECT_EQ(seq_num, rtp_header.sequenceNumber); | 260 EXPECT_EQ(seq_num, rtp_header.sequenceNumber); |
261 EXPECT_EQ(kTimestamp, rtp_header.timestamp); | 261 EXPECT_EQ(kTimestamp, rtp_header.timestamp); |
262 EXPECT_EQ(rtp_sender_->SSRC(), rtp_header.ssrc); | 262 EXPECT_EQ(rtp_sender_->SSRC(), rtp_header.ssrc); |
263 EXPECT_EQ(0, rtp_header.numCSRCs); | 263 EXPECT_EQ(0, rtp_header.numCSRCs); |
264 EXPECT_EQ(0U, rtp_header.paddingLength); | 264 EXPECT_EQ(0U, rtp_header.paddingLength); |
265 EXPECT_EQ(ConvertVideoRotationToCVOByte(rotation), | 265 EXPECT_EQ(rotation, rtp_header.extension.videoRotation); |
266 rtp_header.extension.videoRotation); | |
267 } | 266 } |
268 }; | 267 }; |
269 | 268 |
270 TEST_F(RtpSenderTestWithoutPacer, | 269 TEST_F(RtpSenderTestWithoutPacer, |
271 RegisterRtpTransmissionTimeOffsetHeaderExtension) { | 270 RegisterRtpTransmissionTimeOffsetHeaderExtension) { |
272 EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionLength()); | 271 EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionLength()); |
273 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 272 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
274 kRtpExtensionTransmissionTimeOffset, | 273 kRtpExtensionTransmissionTimeOffset, |
275 kTransmissionTimeOffsetExtensionId)); | 274 kTransmissionTimeOffsetExtensionId)); |
276 EXPECT_EQ(kRtpOneByteHeaderLength + kTransmissionTimeOffsetLength, | 275 EXPECT_EQ(kRtpOneByteHeaderLength + kTransmissionTimeOffsetLength, |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 | 569 |
571 // Verify | 570 // Verify |
572 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); | 571 webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length); |
573 webrtc::RTPHeader rtp_header; | 572 webrtc::RTPHeader rtp_header; |
574 | 573 |
575 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map)); | 574 ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map)); |
576 ASSERT_FALSE(rtp_parser.RTCP()); | 575 ASSERT_FALSE(rtp_parser.RTCP()); |
577 VerifyRTPHeaderCommon(rtp_header); | 576 VerifyRTPHeaderCommon(rtp_header); |
578 EXPECT_EQ(length, rtp_header.headerLength); | 577 EXPECT_EQ(length, rtp_header.headerLength); |
579 EXPECT_TRUE(rtp_header.extension.hasVideoRotation); | 578 EXPECT_TRUE(rtp_header.extension.hasVideoRotation); |
580 EXPECT_EQ(ConvertVideoRotationToCVOByte(kRotation), | 579 EXPECT_EQ(kRotation, rtp_header.extension.videoRotation); |
581 rtp_header.extension.videoRotation); | |
582 } | 580 } |
583 | 581 |
584 // Test CVO header extension is not set when marker bit is false. | 582 // Test CVO header extension is not set when marker bit is false. |
585 TEST_F(RtpSenderTestWithoutPacer, | 583 TEST_F(RtpSenderTestWithoutPacer, |
586 DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) { | 584 DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) { |
587 rtp_sender_->SetVideoRotation(kRotation); | 585 rtp_sender_->SetVideoRotation(kRotation); |
588 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 586 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
589 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); | 587 kRtpExtensionVideoRotation, kVideoRotationExtensionId)); |
590 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); | 588 EXPECT_TRUE(rtp_sender_->ActivateCVORtpHeaderExtension()); |
591 | 589 |
(...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1684 VerifyCVOPacket( | 1682 VerifyCVOPacket( |
1685 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 1683 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), |
1686 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 1684 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); |
1687 | 1685 |
1688 // Verify that this packet does have CVO byte. | 1686 // Verify that this packet does have CVO byte. |
1689 VerifyCVOPacket( | 1687 VerifyCVOPacket( |
1690 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 1688 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), |
1691 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 1689 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, |
1692 hdr.rotation); | 1690 hdr.rotation); |
1693 } | 1691 } |
| 1692 |
| 1693 // Make sure rotation is parsed correctly when the Camera (C) and Flip (F) bits |
| 1694 // are set in the CVO byte. |
| 1695 TEST_F(RtpSenderVideoTest, SendVideoWithCameraAndFlipCVO) { |
| 1696 // Test extracting rotation when Camera (C) and Flip (F) bits are zero. |
| 1697 EXPECT_EQ(kVideoRotation_0, ConvertCVOByteToVideoRotation(0)); |
| 1698 EXPECT_EQ(kVideoRotation_90, ConvertCVOByteToVideoRotation(1)); |
| 1699 EXPECT_EQ(kVideoRotation_180, ConvertCVOByteToVideoRotation(2)); |
| 1700 EXPECT_EQ(kVideoRotation_270, ConvertCVOByteToVideoRotation(3)); |
| 1701 // Test extracting rotation when Camera (C) and Flip (F) bits are set. |
| 1702 const int flip_bit = 1 << 2; |
| 1703 const int camera_bit = 1 << 3; |
| 1704 EXPECT_EQ(kVideoRotation_0, |
| 1705 ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 0)); |
| 1706 EXPECT_EQ(kVideoRotation_90, |
| 1707 ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 1)); |
| 1708 EXPECT_EQ(kVideoRotation_180, |
| 1709 ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 2)); |
| 1710 EXPECT_EQ(kVideoRotation_270, |
| 1711 ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 3)); |
| 1712 } |
| 1713 |
1694 } // namespace webrtc | 1714 } // namespace webrtc |
OLD | NEW |