OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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 |
| 11 #include <memory> |
11 #include <vector> | 12 #include <vector> |
12 | 13 |
13 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
15 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp9.h" | 16 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp9.h" |
16 #include "webrtc/typedefs.h" | 17 #include "webrtc/typedefs.h" |
17 | 18 |
18 namespace webrtc { | 19 namespace webrtc { |
19 namespace { | 20 namespace { |
20 void VerifyHeader(const RTPVideoHeaderVP9& expected, | 21 void VerifyHeader(const RTPVideoHeaderVP9& expected, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 EXPECT_EQ(payload_length, parsed.payload_length); | 70 EXPECT_EQ(payload_length, parsed.payload_length); |
70 EXPECT_THAT(std::vector<uint8_t>(parsed.payload, | 71 EXPECT_THAT(std::vector<uint8_t>(parsed.payload, |
71 parsed.payload + parsed.payload_length), | 72 parsed.payload + parsed.payload_length), |
72 ::testing::ElementsAreArray(payload, payload_length)); | 73 ::testing::ElementsAreArray(payload, payload_length)); |
73 } | 74 } |
74 | 75 |
75 void ParseAndCheckPacket(const uint8_t* packet, | 76 void ParseAndCheckPacket(const uint8_t* packet, |
76 const RTPVideoHeaderVP9& expected, | 77 const RTPVideoHeaderVP9& expected, |
77 size_t expected_hdr_length, | 78 size_t expected_hdr_length, |
78 size_t expected_length) { | 79 size_t expected_length) { |
79 rtc::scoped_ptr<RtpDepacketizer> depacketizer(new RtpDepacketizerVp9()); | 80 std::unique_ptr<RtpDepacketizer> depacketizer(new RtpDepacketizerVp9()); |
80 RtpDepacketizer::ParsedPayload parsed; | 81 RtpDepacketizer::ParsedPayload parsed; |
81 ASSERT_TRUE(depacketizer->Parse(&parsed, packet, expected_length)); | 82 ASSERT_TRUE(depacketizer->Parse(&parsed, packet, expected_length)); |
82 EXPECT_EQ(kRtpVideoVp9, parsed.type.Video.codec); | 83 EXPECT_EQ(kRtpVideoVp9, parsed.type.Video.codec); |
83 VerifyHeader(expected, parsed.type.Video.codecHeader.VP9); | 84 VerifyHeader(expected, parsed.type.Video.codecHeader.VP9); |
84 const size_t kExpectedPayloadLength = expected_length - expected_hdr_length; | 85 const size_t kExpectedPayloadLength = expected_length - expected_hdr_length; |
85 VerifyPayload(parsed, packet + expected_hdr_length, kExpectedPayloadLength); | 86 VerifyPayload(parsed, packet + expected_hdr_length, kExpectedPayloadLength); |
86 } | 87 } |
87 } // namespace | 88 } // namespace |
88 | 89 |
89 // Payload descriptor for flexible mode | 90 // Payload descriptor for flexible mode |
(...skipping 30 matching lines...) Expand all Loading... |
120 // | .. | | 121 // | .. | |
121 // +-+-+-+-+-+-+-+-+ | 122 // +-+-+-+-+-+-+-+-+ |
122 | 123 |
123 class RtpPacketizerVp9Test : public ::testing::Test { | 124 class RtpPacketizerVp9Test : public ::testing::Test { |
124 protected: | 125 protected: |
125 RtpPacketizerVp9Test() {} | 126 RtpPacketizerVp9Test() {} |
126 virtual void SetUp() { | 127 virtual void SetUp() { |
127 expected_.InitRTPVideoHeaderVP9(); | 128 expected_.InitRTPVideoHeaderVP9(); |
128 } | 129 } |
129 | 130 |
130 rtc::scoped_ptr<uint8_t[]> packet_; | 131 std::unique_ptr<uint8_t[]> packet_; |
131 rtc::scoped_ptr<uint8_t[]> payload_; | 132 std::unique_ptr<uint8_t[]> payload_; |
132 size_t payload_size_; | 133 size_t payload_size_; |
133 size_t payload_pos_; | 134 size_t payload_pos_; |
134 RTPVideoHeaderVP9 expected_; | 135 RTPVideoHeaderVP9 expected_; |
135 rtc::scoped_ptr<RtpPacketizerVp9> packetizer_; | 136 std::unique_ptr<RtpPacketizerVp9> packetizer_; |
136 | 137 |
137 void Init(size_t payload_size, size_t packet_size) { | 138 void Init(size_t payload_size, size_t packet_size) { |
138 payload_.reset(new uint8_t[payload_size]); | 139 payload_.reset(new uint8_t[payload_size]); |
139 memset(payload_.get(), 7, payload_size); | 140 memset(payload_.get(), 7, payload_size); |
140 payload_size_ = payload_size; | 141 payload_size_ = payload_size; |
141 payload_pos_ = 0; | 142 payload_pos_ = 0; |
142 packetizer_.reset(new RtpPacketizerVp9(expected_, packet_size)); | 143 packetizer_.reset(new RtpPacketizerVp9(expected_, packet_size)); |
143 packetizer_->SetPayloadData(payload_.get(), payload_size_, NULL); | 144 packetizer_->SetPayloadData(payload_.get(), payload_size_, NULL); |
144 | 145 |
145 const int kMaxPayloadDescriptorLength = 100; | 146 const int kMaxPayloadDescriptorLength = 100; |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 class RtpDepacketizerVp9Test : public ::testing::Test { | 463 class RtpDepacketizerVp9Test : public ::testing::Test { |
463 protected: | 464 protected: |
464 RtpDepacketizerVp9Test() | 465 RtpDepacketizerVp9Test() |
465 : depacketizer_(new RtpDepacketizerVp9()) {} | 466 : depacketizer_(new RtpDepacketizerVp9()) {} |
466 | 467 |
467 virtual void SetUp() { | 468 virtual void SetUp() { |
468 expected_.InitRTPVideoHeaderVP9(); | 469 expected_.InitRTPVideoHeaderVP9(); |
469 } | 470 } |
470 | 471 |
471 RTPVideoHeaderVP9 expected_; | 472 RTPVideoHeaderVP9 expected_; |
472 rtc::scoped_ptr<RtpDepacketizer> depacketizer_; | 473 std::unique_ptr<RtpDepacketizer> depacketizer_; |
473 }; | 474 }; |
474 | 475 |
475 TEST_F(RtpDepacketizerVp9Test, ParseBasicHeader) { | 476 TEST_F(RtpDepacketizerVp9Test, ParseBasicHeader) { |
476 const uint8_t kHeaderLength = 1; | 477 const uint8_t kHeaderLength = 1; |
477 uint8_t packet[4] = {0}; | 478 uint8_t packet[4] = {0}; |
478 packet[0] = 0x0C; // I:0 P:0 L:0 F:0 B:1 E:1 V:0 R:0 | 479 packet[0] = 0x0C; // I:0 P:0 L:0 F:0 B:1 E:1 V:0 R:0 |
479 expected_.beginning_of_frame = true; | 480 expected_.beginning_of_frame = true; |
480 expected_.end_of_frame = true; | 481 expected_.end_of_frame = true; |
481 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet)); | 482 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet)); |
482 } | 483 } |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
681 } | 682 } |
682 | 683 |
683 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) { | 684 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) { |
684 const uint8_t kHeaderLength = 1; | 685 const uint8_t kHeaderLength = 1; |
685 uint8_t packet[kHeaderLength] = {0}; | 686 uint8_t packet[kHeaderLength] = {0}; |
686 RtpDepacketizer::ParsedPayload parsed; | 687 RtpDepacketizer::ParsedPayload parsed; |
687 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); | 688 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); |
688 } | 689 } |
689 | 690 |
690 } // namespace webrtc | 691 } // namespace webrtc |
OLD | NEW |