Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc

Issue 2280703002: Ignore Camera and Flip bits in CVO when parsing video rotation (Closed)
Patch Set: Update unittests Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_receiver_video.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_utility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698