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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
100 test::RtpFormatVp8TestHelper* helper_; | 100 test::RtpFormatVp8TestHelper* helper_; |
101 }; | 101 }; |
102 | 102 |
103 TEST_F(RtpPacketizerVp8Test, TestStrictMode) { | 103 TEST_F(RtpPacketizerVp8Test, TestStrictMode) { |
104 const size_t kSizeVector[] = {10, 8, 27}; | 104 const size_t kSizeVector[] = {10, 8, 27}; |
105 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 105 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
106 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 106 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
107 | 107 |
108 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID. | 108 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID. |
109 const size_t kMaxPayloadSize = 13; | 109 const size_t kMaxPayloadSize = 13; |
110 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kStrict); | 110 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kStrict); |
111 packetizer.SetPayloadData(helper_->payload_data(), | 111 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
112 helper_->payload_size(), | 112 helper_->payload_size(), |
113 helper_->fragmentation()); | 113 helper_->fragmentation()); |
114 | 114 |
115 // The expected sizes are obtained by running a verified good implementation. | 115 // The expected sizes are obtained by hand. |
116 const size_t kExpectedSizes[] = {9, 9, 12, 11, 11, 11, 10}; | 116 const size_t kExpectedSizes[] = {9, 9, 12, 13, 13, 13}; |
117 const int kExpectedPart[] = {0, 0, 1, 2, 2, 2, 2}; | 117 const int kExpectedPart[] = {0, 0, 1, 2, 2, 2}; |
118 const bool kExpectedFragStart[] = {true, false, true, true, | 118 const bool kExpectedFragStart[] = {true, false, true, true, false, false}; |
119 false, false, false}; | |
120 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 119 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
121 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 120 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
122 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 121 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
122 ASSERT_EQ(num_packets, kExpectedNum); | |
123 | 123 |
124 helper_->GetAllPacketsAndCheck(&packetizer, | 124 helper_->GetAllPacketsAndCheck(&packetizer, |
125 kExpectedSizes, | 125 kExpectedSizes, |
126 kExpectedPart, | 126 kExpectedPart, |
127 kExpectedFragStart, | 127 kExpectedFragStart, |
128 kExpectedNum); | 128 kExpectedNum); |
129 } | 129 } |
130 | 130 |
131 // Verify that we get a minimal number of packets if the partition plus header | 131 // Verify that we get a minimal number of packets if the partition plus header |
132 // size fits exactly in the maximum packet size. | 132 // size fits exactly in the maximum packet size. |
133 // Test is disabled: https://code.google.com/p/webrtc/issues/detail?id=4019. | 133 // Test is disabled: https://code.google.com/p/webrtc/issues/detail?id=4019. |
danilchap
2017/05/19 12:03:46
with you changes, can this test be reenabled?
ilnik
2017/05/19 12:57:45
Yes, I've reenabled it.
| |
134 TEST_F(RtpPacketizerVp8Test, DISABLED_TestStrictEqualTightPartitions) { | 134 TEST_F(RtpPacketizerVp8Test, DISABLED_TestStrictEqualTightPartitions) { |
135 const size_t kSizeVector[] = {10, 10, 10}; | 135 const size_t kSizeVector[] = {10, 10, 10}; |
136 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 136 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
137 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 137 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
138 | 138 |
139 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID. | 139 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID. |
140 const int kMaxPayloadSize = 14; | 140 const int kMaxPayloadSize = 14; |
141 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kStrict); | 141 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kStrict); |
142 packetizer.SetPayloadData(helper_->payload_data(), helper_->payload_size(), | 142 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
143 helper_->fragmentation()); | 143 helper_->payload_size(), |
144 helper_->fragmentation()); | |
144 | 145 |
145 // The expected sizes are obtained by running a verified good implementation. | 146 // The expected sizes are obtained by hand. |
146 const size_t kExpectedSizes[] = {14, 14, 14}; | 147 const size_t kExpectedSizes[] = {14, 14, 14}; |
147 const int kExpectedPart[] = {0, 1, 2}; | 148 const int kExpectedPart[] = {0, 1, 2}; |
148 const bool kExpectedFragStart[] = {true, true, true}; | 149 const bool kExpectedFragStart[] = {true, true, true}; |
149 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 150 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
150 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 151 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
151 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 152 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
153 ASSERT_EQ(num_packets, kExpectedNum); | |
152 | 154 |
153 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | 155 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, |
154 kExpectedFragStart, kExpectedNum); | 156 kExpectedFragStart, kExpectedNum); |
155 } | 157 } |
156 | 158 |
157 TEST_F(RtpPacketizerVp8Test, TestAggregateMode) { | 159 TEST_F(RtpPacketizerVp8Test, TestAggregateMode) { |
158 const size_t kSizeVector[] = {60, 10, 10}; | 160 const size_t kSizeVector[] = {60, 10, 10}; |
159 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 161 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
160 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 162 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
161 | 163 |
162 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 164 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
163 const size_t kMaxPayloadSize = 25; | 165 const size_t kMaxPayloadSize = 25; |
164 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 166 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
165 packetizer.SetPayloadData(helper_->payload_data(), | 167 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
166 helper_->payload_size(), | 168 helper_->payload_size(), |
167 helper_->fragmentation()); | 169 helper_->fragmentation()); |
168 | 170 |
169 // The expected sizes are obtained by running a verified good implementation. | 171 // The expected sizes are obtained by hand. |
170 const size_t kExpectedSizes[] = {23, 23, 23, 23}; | 172 const size_t kExpectedSizes[] = {23, 23, 23, 23}; |
171 const int kExpectedPart[] = {0, 0, 0, 1}; | 173 const int kExpectedPart[] = {0, 0, 0, 1}; |
172 const bool kExpectedFragStart[] = {true, false, false, true}; | 174 const bool kExpectedFragStart[] = {true, false, false, true}; |
173 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 175 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
174 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 176 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
175 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 177 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
178 ASSERT_EQ(num_packets, kExpectedNum); | |
176 | 179 |
177 helper_->GetAllPacketsAndCheck(&packetizer, | 180 helper_->GetAllPacketsAndCheck(&packetizer, |
178 kExpectedSizes, | 181 kExpectedSizes, |
179 kExpectedPart, | 182 kExpectedPart, |
180 kExpectedFragStart, | 183 kExpectedFragStart, |
181 kExpectedNum); | 184 kExpectedNum); |
182 } | 185 } |
183 | 186 |
187 TEST_F(RtpPacketizerVp8Test, TestAggregateModePacketReductionCauseExtraPacket) { | |
188 const size_t kSizeVector[] = {60, 10, 10}; | |
189 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
190 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
191 | |
192 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | |
193 const size_t kMaxPayloadSize = 25; | |
194 const size_t kLastPacketReductionLen = 5; | |
195 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, | |
196 kLastPacketReductionLen, kAggregate); | |
197 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
198 helper_->payload_size(), | |
199 helper_->fragmentation()); | |
200 | |
201 // The expected sizes are obtained by hand. | |
202 const size_t kExpectedSizes[] = {23, 23, 23, 13, 13}; | |
203 const int kExpectedPart[] = {0, 0, 0, 1, 2}; | |
204 const bool kExpectedFragStart[] = {true, false, false, true, true}; | |
205 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
206 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
207 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
208 ASSERT_EQ(num_packets, kExpectedNum); | |
209 | |
210 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
211 kExpectedFragStart, kExpectedNum); | |
212 } | |
213 | |
214 TEST_F(RtpPacketizerVp8Test, TestAggregateModePacketReduction) { | |
215 const size_t kSizeVector[] = {60, 10, 10}; | |
216 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
217 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
218 | |
219 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | |
220 const size_t kMaxPayloadSize = 25; | |
221 const size_t kLastPacketReductionLen = 1; | |
222 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, | |
223 kLastPacketReductionLen, kAggregate); | |
224 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
225 helper_->payload_size(), | |
226 helper_->fragmentation()); | |
227 | |
228 // The expected sizes are obtained by hand. | |
229 const size_t kExpectedSizes[] = {23, 23, 23, 23}; | |
230 const int kExpectedPart[] = {0, 0, 0, 1}; | |
231 const bool kExpectedFragStart[] = {true, false, false, true}; | |
232 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
233 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
234 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
235 ASSERT_EQ(num_packets, kExpectedNum); | |
236 | |
237 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
238 kExpectedFragStart, kExpectedNum); | |
239 } | |
240 | |
241 TEST_F(RtpPacketizerVp8Test, TestAggregateModeSmallPartitions) { | |
242 const size_t kSizeVector[] = {3, 4, 2, 5, 2, 4}; | |
danilchap
2017/05/19 12:03:46
what happen with same kSizeVector but with kLastPa
ilnik
2017/05/19 12:57:45
Nothing really changes. last packet still has 4 fr
| |
243 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
244 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
245 | |
246 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | |
247 const size_t kMaxPayloadSize = 13; | |
248 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); | |
249 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
250 helper_->payload_size(), | |
251 helper_->fragmentation()); | |
252 | |
253 // The expected sizes are obtained by hand. | |
254 const size_t kExpectedSizes[] = {10, 10, 9}; | |
255 const int kExpectedPart[] = {0, 2, 4}; | |
256 const bool kExpectedFragStart[] = {true, true, true}; | |
257 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
258 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
259 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
260 ASSERT_EQ(num_packets, kExpectedNum); | |
261 | |
262 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
263 kExpectedFragStart, kExpectedNum); | |
264 } | |
265 | |
184 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) { | 266 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) { |
185 const size_t kSizeVector[] = {1600, 200, 200, 200, 200, 200, 200, 200, 200}; | 267 const size_t kSizeVector[] = {1600, 200, 200, 200, 200, 200, 200, 200, 200}; |
186 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 268 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
187 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 269 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
188 | 270 |
189 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 271 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
190 const size_t kMaxPayloadSize = 1000; | 272 const size_t kMaxPayloadSize = 1000; |
191 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 273 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
192 packetizer.SetPayloadData(helper_->payload_data(), | 274 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
193 helper_->payload_size(), | 275 helper_->payload_size(), |
194 helper_->fragmentation()); | 276 helper_->fragmentation()); |
195 | 277 |
196 // The expected sizes are obtained by running a verified good implementation. | 278 // The expected sizes are obtained by hand. |
197 const size_t kExpectedSizes[] = {803, 803, 803, 803}; | 279 const size_t kExpectedSizes[] = {803, 803, 803, 803}; |
198 const int kExpectedPart[] = {0, 0, 1, 5}; | 280 const int kExpectedPart[] = {0, 0, 1, 5}; |
199 const bool kExpectedFragStart[] = {true, false, true, true}; | 281 const bool kExpectedFragStart[] = {true, false, true, true}; |
200 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 282 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
201 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 283 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
202 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 284 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
285 ASSERT_EQ(num_packets, kExpectedNum); | |
203 | 286 |
204 helper_->GetAllPacketsAndCheck(&packetizer, | 287 helper_->GetAllPacketsAndCheck(&packetizer, |
205 kExpectedSizes, | 288 kExpectedSizes, |
206 kExpectedPart, | 289 kExpectedPart, |
207 kExpectedFragStart, | 290 kExpectedFragStart, |
208 kExpectedNum); | 291 kExpectedNum); |
209 } | 292 } |
210 | 293 |
211 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) { | 294 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) { |
212 const size_t kSizeVector[] = {1599, 200, 200, 200, 1600, 200, 200, 200, 200}; | 295 const size_t kSizeVector[] = {1599, 200, 200, 200, 1600, 200, 200, 200, 200}; |
213 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 296 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
214 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 297 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
215 | 298 |
216 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 299 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
217 const size_t kMaxPayloadSize = 1000; | 300 const size_t kMaxPayloadSize = 1000; |
218 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 301 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
219 packetizer.SetPayloadData(helper_->payload_data(), | 302 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
220 helper_->payload_size(), | 303 helper_->payload_size(), |
221 helper_->fragmentation()); | 304 helper_->fragmentation()); |
222 | 305 |
223 // The expected sizes are obtained by running a verified good implementation. | 306 // The expected sizes are obtained by hand. |
224 const size_t kExpectedSizes[] = {803, 802, 603, 803, 803, 803}; | 307 const size_t kExpectedSizes[] = {802, 803, 603, 803, 803, 803}; |
225 const int kExpectedPart[] = {0, 0, 1, 4, 4, 5}; | 308 const int kExpectedPart[] = {0, 0, 1, 4, 4, 5}; |
226 const bool kExpectedFragStart[] = {true, false, true, true, false, true}; | 309 const bool kExpectedFragStart[] = {true, false, true, true, false, true}; |
227 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 310 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
228 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 311 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
229 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 312 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
313 ASSERT_EQ(num_packets, kExpectedNum); | |
230 | 314 |
231 helper_->GetAllPacketsAndCheck(&packetizer, | 315 helper_->GetAllPacketsAndCheck(&packetizer, |
232 kExpectedSizes, | 316 kExpectedSizes, |
233 kExpectedPart, | 317 kExpectedPart, |
234 kExpectedFragStart, | 318 kExpectedFragStart, |
235 kExpectedNum); | 319 kExpectedNum); |
236 } | 320 } |
237 | 321 |
238 TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) { | 322 TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) { |
239 const size_t kSizeVector[] = {1654, 2268}; | 323 const size_t kSizeVector[] = {1654, 2268}; |
240 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 324 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
241 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 325 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
242 | 326 |
243 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 327 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
244 const size_t kMaxPayloadSize = 1460; | 328 const size_t kMaxPayloadSize = 1460; |
245 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 329 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
246 packetizer.SetPayloadData(helper_->payload_data(), | 330 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
247 helper_->payload_size(), | 331 helper_->payload_size(), |
248 helper_->fragmentation()); | 332 helper_->fragmentation()); |
249 | 333 |
250 // The expected sizes are obtained by running a verified good implementation. | 334 // The expected sizes are obtained by hand. |
251 const size_t kExpectedSizes[] = {830, 830, 1137, 1137}; | 335 const size_t kExpectedSizes[] = {830, 830, 1137, 1137}; |
252 const int kExpectedPart[] = {0, 0, 1, 1}; | 336 const int kExpectedPart[] = {0, 0, 1, 1}; |
253 const bool kExpectedFragStart[] = {true, false, true, false}; | 337 const bool kExpectedFragStart[] = {true, false, true, false}; |
254 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 338 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
255 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 339 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
256 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 340 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
341 ASSERT_EQ(num_packets, kExpectedNum); | |
257 | 342 |
258 helper_->GetAllPacketsAndCheck(&packetizer, | 343 helper_->GetAllPacketsAndCheck(&packetizer, |
259 kExpectedSizes, | 344 kExpectedSizes, |
260 kExpectedPart, | 345 kExpectedPart, |
261 kExpectedFragStart, | 346 kExpectedFragStart, |
262 kExpectedNum); | 347 kExpectedNum); |
263 } | 348 } |
264 | 349 |
265 // Verify that EqualSize mode is forced if fragmentation info is missing. | 350 // Verify that EqualSize mode is forced if fragmentation info is missing. |
266 TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) { | 351 TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) { |
267 const size_t kSizeVector[] = {10, 10, 10}; | 352 const size_t kSizeVector[] = {10, 10, 10}; |
268 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 353 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
269 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 354 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
270 | 355 |
271 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID | 356 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID |
272 const size_t kMaxPayloadSize = 12; // Small enough to produce 4 packets. | 357 const size_t kMaxPayloadSize = 12; // Small enough to produce 4 packets. |
273 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize); | 358 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0); |
274 packetizer.SetPayloadData( | 359 size_t num_packets = packetizer.SetPayloadData( |
275 helper_->payload_data(), helper_->payload_size(), NULL); | 360 helper_->payload_data(), helper_->payload_size(), nullptr); |
276 | 361 |
277 // Expecting three full packets, and one with the remainder. | 362 // Expecting three full packets, and one with the remainder. |
278 const size_t kExpectedSizes[] = {12, 11, 12, 11}; | 363 const size_t kExpectedSizes[] = {11, 11, 12, 12}; |
279 const int kExpectedPart[] = {0, 0, 0, 0}; // Always 0 for equal size mode. | 364 const int kExpectedPart[] = {0, 0, 0, 0}; // Always 0 for equal size mode. |
280 // Frag start only true for first packet in equal size mode. | 365 // Frag start only true for first packet in equal size mode. |
281 const bool kExpectedFragStart[] = {true, false, false, false}; | 366 const bool kExpectedFragStart[] = {true, false, false, false}; |
282 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 367 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
283 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 368 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
284 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 369 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
370 ASSERT_EQ(num_packets, kExpectedNum); | |
285 | 371 |
286 helper_->set_sloppy_partitioning(true); | 372 helper_->set_sloppy_partitioning(true); |
287 helper_->GetAllPacketsAndCheck(&packetizer, | 373 helper_->GetAllPacketsAndCheck(&packetizer, |
288 kExpectedSizes, | 374 kExpectedSizes, |
289 kExpectedPart, | 375 kExpectedPart, |
290 kExpectedFragStart, | 376 kExpectedFragStart, |
291 kExpectedNum); | 377 kExpectedNum); |
292 } | 378 } |
293 | 379 |
380 TEST_F(RtpPacketizerVp8Test, TestEqualSizeWithLastPacketReduction) { | |
381 const size_t kSizeVector[] = {30, 10, 3}; | |
382 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
383 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
384 | |
385 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID | |
386 const size_t kMaxPayloadSize = 15; // Small enough to produce 5 packets. | |
387 const size_t kLastPacketReduction = 5; | |
388 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kLastPacketReduction); | |
389 size_t num_packets = packetizer.SetPayloadData( | |
390 helper_->payload_data(), helper_->payload_size(), nullptr); | |
391 | |
392 // Expecting three full packets, and one with the remainder. | |
393 const size_t kExpectedSizes[] = {13, 13, 14, 14, 9}; | |
danilchap
2017/05/19 12:03:46
Can you add comment explaining expected sizes beca
ilnik
2017/05/19 12:57:45
Descriptor is 4 bytes in that case according to rf
| |
394 const int kExpectedPart[] = {0, 0, 0, 0, 0}; // Always 0 for equal size mode. | |
395 // Frag start only true for first packet in equal size mode. | |
396 const bool kExpectedFragStart[] = {true, false, false, false, false}; | |
397 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
398 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
399 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
400 ASSERT_EQ(num_packets, kExpectedNum); | |
401 | |
402 helper_->set_sloppy_partitioning(true); | |
403 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
404 kExpectedFragStart, kExpectedNum); | |
405 } | |
406 | |
294 // Verify that non-reference bit is set. EqualSize mode fallback is expected. | 407 // Verify that non-reference bit is set. EqualSize mode fallback is expected. |
295 TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) { | 408 TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) { |
296 const size_t kSizeVector[] = {10, 10, 10}; | 409 const size_t kSizeVector[] = {10, 10, 10}; |
297 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 410 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
298 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 411 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
299 | 412 |
300 hdr_info_.nonReference = true; | 413 hdr_info_.nonReference = true; |
301 const size_t kMaxPayloadSize = 25; // Small enough to produce two packets. | 414 const size_t kMaxPayloadSize = 25; // Small enough to produce two packets. |
302 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize); | 415 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0); |
303 packetizer.SetPayloadData( | 416 size_t num_packets = packetizer.SetPayloadData( |
304 helper_->payload_data(), helper_->payload_size(), NULL); | 417 helper_->payload_data(), helper_->payload_size(), nullptr); |
305 | 418 |
306 // EqualSize mode => First packet full; other not. | 419 // EqualSize mode => First packet full; other not. |
307 const size_t kExpectedSizes[] = {16, 16}; | 420 const size_t kExpectedSizes[] = {16, 16}; |
308 const int kExpectedPart[] = {0, 0}; // Always 0 for equal size mode. | 421 const int kExpectedPart[] = {0, 0}; // Always 0 for equal size mode. |
309 // Frag start only true for first packet in equal size mode. | 422 // Frag start only true for first packet in equal size mode. |
310 const bool kExpectedFragStart[] = {true, false}; | 423 const bool kExpectedFragStart[] = {true, false}; |
311 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 424 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
312 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 425 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
313 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 426 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
427 ASSERT_EQ(num_packets, kExpectedNum); | |
314 | 428 |
315 helper_->set_sloppy_partitioning(true); | 429 helper_->set_sloppy_partitioning(true); |
316 helper_->GetAllPacketsAndCheck(&packetizer, | 430 helper_->GetAllPacketsAndCheck(&packetizer, |
317 kExpectedSizes, | 431 kExpectedSizes, |
318 kExpectedPart, | 432 kExpectedPart, |
319 kExpectedFragStart, | 433 kExpectedFragStart, |
320 kExpectedNum); | 434 kExpectedNum); |
321 } | 435 } |
322 | 436 |
323 // Verify Tl0PicIdx and TID fields, and layerSync bit. | 437 // Verify Tl0PicIdx and TID fields, and layerSync bit. |
324 TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) { | 438 TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) { |
325 const size_t kSizeVector[] = {10, 10, 10}; | 439 const size_t kSizeVector[] = {10, 10, 10}; |
326 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 440 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
327 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 441 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
328 | 442 |
329 hdr_info_.tl0PicIdx = 117; | 443 hdr_info_.tl0PicIdx = 117; |
330 hdr_info_.temporalIdx = 2; | 444 hdr_info_.temporalIdx = 2; |
331 hdr_info_.layerSync = true; | 445 hdr_info_.layerSync = true; |
332 // kMaxPayloadSize is only limited by allocated buffer size. | 446 // kMaxPayloadSize is only limited by allocated buffer size. |
333 const size_t kMaxPayloadSize = helper_->buffer_size(); | 447 const size_t kMaxPayloadSize = helper_->buffer_size(); |
334 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 448 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
335 packetizer.SetPayloadData(helper_->payload_data(), | 449 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
336 helper_->payload_size(), | 450 helper_->payload_size(), |
337 helper_->fragmentation()); | 451 helper_->fragmentation()); |
338 | 452 |
339 // Expect one single packet of payload_size() + 4 bytes header. | 453 // Expect one single packet of payload_size() + 4 bytes header. |
340 const size_t kExpectedSizes[1] = {helper_->payload_size() + 4}; | 454 const size_t kExpectedSizes[1] = {helper_->payload_size() + 4}; |
341 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 455 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
342 const bool kExpectedFragStart[1] = {true}; | 456 const bool kExpectedFragStart[1] = {true}; |
343 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 457 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
344 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 458 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
345 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 459 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
460 ASSERT_EQ(num_packets, kExpectedNum); | |
346 | 461 |
347 helper_->GetAllPacketsAndCheck(&packetizer, | 462 helper_->GetAllPacketsAndCheck(&packetizer, |
348 kExpectedSizes, | 463 kExpectedSizes, |
349 kExpectedPart, | 464 kExpectedPart, |
350 kExpectedFragStart, | 465 kExpectedFragStart, |
351 kExpectedNum); | 466 kExpectedNum); |
352 } | 467 } |
353 | 468 |
354 // Verify KeyIdx field. | 469 // Verify KeyIdx field. |
355 TEST_F(RtpPacketizerVp8Test, TestKeyIdx) { | 470 TEST_F(RtpPacketizerVp8Test, TestKeyIdx) { |
356 const size_t kSizeVector[] = {10, 10, 10}; | 471 const size_t kSizeVector[] = {10, 10, 10}; |
357 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 472 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
358 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 473 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
359 | 474 |
360 hdr_info_.keyIdx = 17; | 475 hdr_info_.keyIdx = 17; |
361 // kMaxPayloadSize is only limited by allocated buffer size. | 476 // kMaxPayloadSize is only limited by allocated buffer size. |
362 const size_t kMaxPayloadSize = helper_->buffer_size(); | 477 const size_t kMaxPayloadSize = helper_->buffer_size(); |
363 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 478 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
364 packetizer.SetPayloadData(helper_->payload_data(), | 479 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
365 helper_->payload_size(), | 480 helper_->payload_size(), |
366 helper_->fragmentation()); | 481 helper_->fragmentation()); |
367 | 482 |
368 // Expect one single packet of payload_size() + 3 bytes header. | 483 // Expect one single packet of payload_size() + 3 bytes header. |
369 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; | 484 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; |
370 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 485 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
371 const bool kExpectedFragStart[1] = {true}; | 486 const bool kExpectedFragStart[1] = {true}; |
372 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 487 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
373 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 488 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
374 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 489 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
490 ASSERT_EQ(num_packets, kExpectedNum); | |
375 | 491 |
376 helper_->GetAllPacketsAndCheck(&packetizer, | 492 helper_->GetAllPacketsAndCheck(&packetizer, |
377 kExpectedSizes, | 493 kExpectedSizes, |
378 kExpectedPart, | 494 kExpectedPart, |
379 kExpectedFragStart, | 495 kExpectedFragStart, |
380 kExpectedNum); | 496 kExpectedNum); |
381 } | 497 } |
382 | 498 |
383 // Verify TID field and KeyIdx field in combination. | 499 // Verify TID field and KeyIdx field in combination. |
384 TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) { | 500 TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) { |
385 const size_t kSizeVector[] = {10, 10, 10}; | 501 const size_t kSizeVector[] = {10, 10, 10}; |
386 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 502 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
387 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 503 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
388 | 504 |
389 hdr_info_.temporalIdx = 1; | 505 hdr_info_.temporalIdx = 1; |
390 hdr_info_.keyIdx = 5; | 506 hdr_info_.keyIdx = 5; |
391 // kMaxPayloadSize is only limited by allocated buffer size. | 507 // kMaxPayloadSize is only limited by allocated buffer size. |
392 const size_t kMaxPayloadSize = helper_->buffer_size(); | 508 const size_t kMaxPayloadSize = helper_->buffer_size(); |
393 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 509 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
394 packetizer.SetPayloadData(helper_->payload_data(), | 510 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
395 helper_->payload_size(), | 511 helper_->payload_size(), |
396 helper_->fragmentation()); | 512 helper_->fragmentation()); |
397 | 513 |
398 // Expect one single packet of payload_size() + 3 bytes header. | 514 // Expect one single packet of payload_size() + 3 bytes header. |
399 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; | 515 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; |
400 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 516 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
401 const bool kExpectedFragStart[1] = {true}; | 517 const bool kExpectedFragStart[1] = {true}; |
402 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 518 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
403 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 519 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
404 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 520 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
521 ASSERT_EQ(num_packets, kExpectedNum); | |
405 | 522 |
406 helper_->GetAllPacketsAndCheck(&packetizer, | 523 helper_->GetAllPacketsAndCheck(&packetizer, |
407 kExpectedSizes, | 524 kExpectedSizes, |
408 kExpectedPart, | 525 kExpectedPart, |
409 kExpectedFragStart, | 526 kExpectedFragStart, |
410 kExpectedNum); | 527 kExpectedNum); |
411 } | 528 } |
412 | 529 |
413 class RtpDepacketizerVp8Test : public ::testing::Test { | 530 class RtpDepacketizerVp8Test : public ::testing::Test { |
414 protected: | 531 protected: |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
572 const uint8_t kHeaderLength = 5; | 689 const uint8_t kHeaderLength = 5; |
573 uint8_t data[10] = {0}; | 690 uint8_t data[10] = {0}; |
574 RtpPacketToSend packet(kNoExtensions); | 691 RtpPacketToSend packet(kNoExtensions); |
575 RTPVideoHeaderVP8 input_header; | 692 RTPVideoHeaderVP8 input_header; |
576 input_header.nonReference = true; | 693 input_header.nonReference = true; |
577 input_header.pictureId = 300; | 694 input_header.pictureId = 300; |
578 input_header.temporalIdx = 1; | 695 input_header.temporalIdx = 1; |
579 input_header.layerSync = false; | 696 input_header.layerSync = false; |
580 input_header.tl0PicIdx = kNoTl0PicIdx; // Disable. | 697 input_header.tl0PicIdx = kNoTl0PicIdx; // Disable. |
581 input_header.keyIdx = 31; | 698 input_header.keyIdx = 31; |
582 RtpPacketizerVp8 packetizer(input_header, 20); | 699 RtpPacketizerVp8 packetizer(input_header, 20, 0); |
583 packetizer.SetPayloadData(data, 10, NULL); | 700 EXPECT_EQ(packetizer.SetPayloadData(data, 10, NULL), 1u); |
584 bool last; | 701 ASSERT_TRUE(packetizer.NextPacket(&packet)); |
585 ASSERT_TRUE(packetizer.NextPacket(&packet, &last)); | |
586 EXPECT_TRUE(last); | |
587 EXPECT_TRUE(packet.Marker()); | 702 EXPECT_TRUE(packet.Marker()); |
588 | 703 |
589 auto rtp_payload = packet.payload(); | 704 auto rtp_payload = packet.payload(); |
590 RtpDepacketizer::ParsedPayload payload; | 705 RtpDepacketizer::ParsedPayload payload; |
591 ASSERT_TRUE( | 706 ASSERT_TRUE( |
592 depacketizer_->Parse(&payload, rtp_payload.data(), rtp_payload.size())); | 707 depacketizer_->Parse(&payload, rtp_payload.data(), rtp_payload.size())); |
593 auto vp8_payload = rtp_payload.subview(kHeaderLength); | 708 auto vp8_payload = rtp_payload.subview(kHeaderLength); |
594 ExpectPacket(&payload, vp8_payload.data(), vp8_payload.size()); | 709 ExpectPacket(&payload, vp8_payload.data(), vp8_payload.size()); |
595 EXPECT_EQ(kVideoFrameKey, payload.frame_type); | 710 EXPECT_EQ(kVideoFrameKey, payload.frame_type); |
596 EXPECT_EQ(kRtpVideoVp8, payload.type.Video.codec); | 711 EXPECT_EQ(kRtpVideoVp8, payload.type.Video.codec); |
597 VerifyBasicHeader(&payload.type, 1, 1, 0); | 712 VerifyBasicHeader(&payload.type, 1, 1, 0); |
598 VerifyExtensions(&payload.type, | 713 VerifyExtensions(&payload.type, |
599 input_header.pictureId, | 714 input_header.pictureId, |
600 input_header.tl0PicIdx, | 715 input_header.tl0PicIdx, |
601 input_header.temporalIdx, | 716 input_header.temporalIdx, |
602 input_header.keyIdx); | 717 input_header.keyIdx); |
603 EXPECT_EQ(payload.type.Video.codecHeader.VP8.layerSync, | 718 EXPECT_EQ(payload.type.Video.codecHeader.VP8.layerSync, |
604 input_header.layerSync); | 719 input_header.layerSync); |
605 } | 720 } |
606 | 721 |
607 TEST_F(RtpDepacketizerVp8Test, TestEmptyPayload) { | 722 TEST_F(RtpDepacketizerVp8Test, TestEmptyPayload) { |
608 // Using a wild pointer to crash on accesses from inside the depacketizer. | 723 // Using a wild pointer to crash on accesses from inside the depacketizer. |
609 uint8_t* garbage_ptr = reinterpret_cast<uint8_t*>(0x4711); | 724 uint8_t* garbage_ptr = reinterpret_cast<uint8_t*>(0x4711); |
610 RtpDepacketizer::ParsedPayload payload; | 725 RtpDepacketizer::ParsedPayload payload; |
611 EXPECT_FALSE(depacketizer_->Parse(&payload, garbage_ptr, 0)); | 726 EXPECT_FALSE(depacketizer_->Parse(&payload, garbage_ptr, 0)); |
612 } | 727 } |
613 } // namespace webrtc | 728 } // namespace webrtc |
OLD | NEW |