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 |
(...skipping 127 matching lines...) Loading... |
138 size_t payload_pos_; | 138 size_t payload_pos_; |
139 RTPVideoHeaderVP9 expected_; | 139 RTPVideoHeaderVP9 expected_; |
140 std::unique_ptr<RtpPacketizerVp9> packetizer_; | 140 std::unique_ptr<RtpPacketizerVp9> packetizer_; |
141 | 141 |
142 void Init(size_t payload_size, size_t packet_size) { | 142 void Init(size_t payload_size, size_t packet_size) { |
143 payload_.reset(new uint8_t[payload_size]); | 143 payload_.reset(new uint8_t[payload_size]); |
144 memset(payload_.get(), 7, payload_size); | 144 memset(payload_.get(), 7, payload_size); |
145 payload_size_ = payload_size; | 145 payload_size_ = payload_size; |
146 payload_pos_ = 0; | 146 payload_pos_ = 0; |
147 packetizer_.reset(new RtpPacketizerVp9(expected_, packet_size)); | 147 packetizer_.reset(new RtpPacketizerVp9(expected_, packet_size)); |
148 packetizer_->SetPayloadData(payload_.get(), payload_size_, NULL); | 148 packetizer_->SetPayloadData(payload_.get(), payload_size_, nullptr); |
149 } | 149 } |
150 | 150 |
151 void CheckPayload(const uint8_t* packet, | 151 void CheckPayload(const uint8_t* packet, |
152 size_t start_pos, | 152 size_t start_pos, |
153 size_t end_pos, | 153 size_t end_pos, |
154 bool last) { | 154 bool last) { |
155 for (size_t i = start_pos; i < end_pos; ++i) { | 155 for (size_t i = start_pos; i < end_pos; ++i) { |
156 EXPECT_EQ(packet[i], payload_[payload_pos_++]); | 156 EXPECT_EQ(packet[i], payload_[payload_pos_++]); |
157 } | 157 } |
158 EXPECT_EQ(last, payload_pos_ == payload_size_); | 158 EXPECT_EQ(last, payload_pos_ == payload_size_); |
159 } | 159 } |
160 | 160 |
161 void CreateParseAndCheckPackets(const size_t* expected_hdr_sizes, | 161 void CreateParseAndCheckPackets(const size_t* expected_hdr_sizes, |
162 const size_t* expected_sizes, | 162 const size_t* expected_sizes, |
163 size_t expected_num_packets) { | 163 size_t expected_num_packets) { |
164 ASSERT_TRUE(packetizer_.get() != NULL); | 164 ASSERT_TRUE(packetizer_.get() != nullptr); |
165 bool last = false; | 165 bool last = false; |
166 if (expected_num_packets == 0) { | 166 if (expected_num_packets == 0) { |
167 EXPECT_FALSE(packetizer_->NextPacket(&packet_, &last)); | 167 EXPECT_FALSE(packetizer_->NextPacket(&packet_, &last)); |
168 return; | 168 return; |
169 } | 169 } |
170 for (size_t i = 0; i < expected_num_packets; ++i) { | 170 for (size_t i = 0; i < expected_num_packets; ++i) { |
171 EXPECT_TRUE(packetizer_->NextPacket(&packet_, &last)); | 171 EXPECT_TRUE(packetizer_->NextPacket(&packet_, &last)); |
172 auto rtp_payload = packet_.payload(); | 172 auto rtp_payload = packet_.payload(); |
173 EXPECT_EQ(expected_sizes[i], rtp_payload.size()); | 173 EXPECT_EQ(expected_sizes[i], rtp_payload.size()); |
174 RTPVideoHeaderVP9 hdr = expected_; | 174 RTPVideoHeaderVP9 hdr = expected_; |
(...skipping 34 matching lines...) Loading... |
209 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 209 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
210 CreateParseAndCheckPackets(kExpectedHdrSizes, kExpectedSizes, kExpectedNum); | 210 CreateParseAndCheckPackets(kExpectedHdrSizes, kExpectedSizes, kExpectedNum); |
211 } | 211 } |
212 | 212 |
213 TEST_F(RtpPacketizerVp9Test, TestTooShortBufferToFitPayload) { | 213 TEST_F(RtpPacketizerVp9Test, TestTooShortBufferToFitPayload) { |
214 const size_t kFrameSize = 1; | 214 const size_t kFrameSize = 1; |
215 const size_t kPacketSize = 1; | 215 const size_t kPacketSize = 1; |
216 Init(kFrameSize, kPacketSize); // 1hdr + 1 payload | 216 Init(kFrameSize, kPacketSize); // 1hdr + 1 payload |
217 | 217 |
218 const size_t kExpectedNum = 0; | 218 const size_t kExpectedNum = 0; |
219 CreateParseAndCheckPackets(NULL, NULL, kExpectedNum); | 219 CreateParseAndCheckPackets(nullptr, nullptr, kExpectedNum); |
220 } | 220 } |
221 | 221 |
222 TEST_F(RtpPacketizerVp9Test, TestOneBytePictureId) { | 222 TEST_F(RtpPacketizerVp9Test, TestOneBytePictureId) { |
223 const size_t kFrameSize = 30; | 223 const size_t kFrameSize = 30; |
224 const size_t kPacketSize = 12; | 224 const size_t kPacketSize = 12; |
225 | 225 |
226 expected_.picture_id = kMaxOneBytePictureId; // 2 byte payload descriptor | 226 expected_.picture_id = kMaxOneBytePictureId; // 2 byte payload descriptor |
227 expected_.max_picture_id = kMaxOneBytePictureId; | 227 expected_.max_picture_id = kMaxOneBytePictureId; |
228 Init(kFrameSize, kPacketSize); | 228 Init(kFrameSize, kPacketSize); |
229 | 229 |
(...skipping 103 matching lines...) Loading... |
333 const size_t kFrameSize = 16; | 333 const size_t kFrameSize = 16; |
334 const size_t kPacketSize = 21; | 334 const size_t kPacketSize = 21; |
335 | 335 |
336 expected_.inter_pic_predicted = true; | 336 expected_.inter_pic_predicted = true; |
337 expected_.flexible_mode = true; | 337 expected_.flexible_mode = true; |
338 expected_.num_ref_pics = 1; | 338 expected_.num_ref_pics = 1; |
339 expected_.pid_diff[0] = 3; | 339 expected_.pid_diff[0] = 3; |
340 Init(kFrameSize, kPacketSize); | 340 Init(kFrameSize, kPacketSize); |
341 | 341 |
342 const size_t kExpectedNum = 0; | 342 const size_t kExpectedNum = 0; |
343 CreateParseAndCheckPackets(NULL, NULL, kExpectedNum); | 343 CreateParseAndCheckPackets(nullptr, nullptr, kExpectedNum); |
344 } | 344 } |
345 | 345 |
346 TEST_F(RtpPacketizerVp9Test, TestSsDataWithoutSpatialResolutionPresent) { | 346 TEST_F(RtpPacketizerVp9Test, TestSsDataWithoutSpatialResolutionPresent) { |
347 const size_t kFrameSize = 21; | 347 const size_t kFrameSize = 21; |
348 const size_t kPacketSize = 26; | 348 const size_t kPacketSize = 26; |
349 | 349 |
350 expected_.ss_data_available = true; | 350 expected_.ss_data_available = true; |
351 expected_.num_spatial_layers = 1; | 351 expected_.num_spatial_layers = 1; |
352 expected_.spatial_layer_resolution_present = false; | 352 expected_.spatial_layer_resolution_present = false; |
353 expected_.gof.num_frames_in_gof = 1; | 353 expected_.gof.num_frames_in_gof = 1; |
(...skipping 376 matching lines...) Loading... |
730 } | 730 } |
731 | 731 |
732 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) { | 732 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) { |
733 const uint8_t kHeaderLength = 1; | 733 const uint8_t kHeaderLength = 1; |
734 uint8_t packet[kHeaderLength] = {0}; | 734 uint8_t packet[kHeaderLength] = {0}; |
735 RtpDepacketizer::ParsedPayload parsed; | 735 RtpDepacketizer::ParsedPayload parsed; |
736 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); | 736 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); |
737 } | 737 } |
738 | 738 |
739 } // namespace webrtc | 739 } // namespace webrtc |
OLD | NEW |