| 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 |