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 running a verified good implementation. |
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. |
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 running a verified good implementation. |
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 running a verified good implementation. |
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, TestAggregateModeExtentionNotFits) { | |
danilchap
2017/05/18 11:14:25
may be do not mention an abstract extension in the
ilnik
2017/05/18 12:22:52
Done.
| |
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 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 5, kAggregate); | |
danilchap
2017/05/18 11:14:24
since this '5' is important for the test, name it:
ilnik
2017/05/18 12:22:52
Done.
| |
195 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
196 helper_->payload_size(), | |
197 helper_->fragmentation()); | |
198 | |
199 // The expected sizes are obtained by running a verified good implementation. | |
danilchap
2017/05/18 11:14:24
can you mention which implementation that is? Can
ilnik
2017/05/18 12:22:52
The tested implementation, verified by hand. Bette
| |
200 const size_t kExpectedSizes[] = {23, 23, 23, 13, 13}; | |
201 const int kExpectedPart[] = {0, 0, 0, 1, 2}; | |
202 const bool kExpectedFragStart[] = {true, false, false, true, true}; | |
203 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
204 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
205 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
206 ASSERT_EQ(num_packets, kExpectedNum); | |
207 | |
208 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
209 kExpectedFragStart, kExpectedNum); | |
210 } | |
211 | |
212 TEST_F(RtpPacketizerVp8Test, TestAggregateModeExtentionFits) { | |
213 const size_t kSizeVector[] = {60, 10, 10}; | |
214 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
215 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
216 | |
217 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | |
218 const size_t kMaxPayloadSize = 25; | |
219 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 1, kAggregate); | |
220 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
221 helper_->payload_size(), | |
222 helper_->fragmentation()); | |
223 | |
224 // The expected sizes are obtained by running a verified good implementation. | |
225 const size_t kExpectedSizes[] = {23, 23, 23, 23}; | |
226 const int kExpectedPart[] = {0, 0, 0, 1}; | |
227 const bool kExpectedFragStart[] = {true, false, false, true}; | |
228 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
229 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
230 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
231 ASSERT_EQ(num_packets, kExpectedNum); | |
232 | |
233 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
234 kExpectedFragStart, kExpectedNum); | |
235 } | |
236 | |
237 TEST_F(RtpPacketizerVp8Test, TestAggregateModeSmallPartitions) { | |
238 const size_t kSizeVector[] = {3, 4, 2, 5, 2, 4}; | |
239 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
240 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
241 | |
242 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | |
243 const size_t kMaxPayloadSize = 13; | |
244 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); | |
245 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
246 helper_->payload_size(), | |
247 helper_->fragmentation()); | |
248 | |
249 // The expected sizes are obtained by running a verified good implementation. | |
250 const size_t kExpectedSizes[] = {10, 10, 9}; | |
251 const int kExpectedPart[] = {0, 2, 4}; | |
252 const bool kExpectedFragStart[] = {true, true, true}; | |
253 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
254 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
255 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
256 ASSERT_EQ(num_packets, kExpectedNum); | |
257 | |
258 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
259 kExpectedFragStart, kExpectedNum); | |
260 } | |
261 | |
184 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) { | 262 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions1) { |
185 const size_t kSizeVector[] = {1600, 200, 200, 200, 200, 200, 200, 200, 200}; | 263 const size_t kSizeVector[] = {1600, 200, 200, 200, 200, 200, 200, 200, 200}; |
186 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 264 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
187 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 265 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
188 | 266 |
189 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 267 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
190 const size_t kMaxPayloadSize = 1000; | 268 const size_t kMaxPayloadSize = 1000; |
191 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 269 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
192 packetizer.SetPayloadData(helper_->payload_data(), | 270 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
193 helper_->payload_size(), | 271 helper_->payload_size(), |
194 helper_->fragmentation()); | 272 helper_->fragmentation()); |
195 | 273 |
196 // The expected sizes are obtained by running a verified good implementation. | 274 // The expected sizes are obtained by running a verified good implementation. |
197 const size_t kExpectedSizes[] = {803, 803, 803, 803}; | 275 const size_t kExpectedSizes[] = {803, 803, 803, 803}; |
198 const int kExpectedPart[] = {0, 0, 1, 5}; | 276 const int kExpectedPart[] = {0, 0, 1, 5}; |
199 const bool kExpectedFragStart[] = {true, false, true, true}; | 277 const bool kExpectedFragStart[] = {true, false, true, true}; |
200 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 278 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
201 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 279 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
202 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 280 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
281 ASSERT_EQ(num_packets, kExpectedNum); | |
203 | 282 |
204 helper_->GetAllPacketsAndCheck(&packetizer, | 283 helper_->GetAllPacketsAndCheck(&packetizer, |
205 kExpectedSizes, | 284 kExpectedSizes, |
206 kExpectedPart, | 285 kExpectedPart, |
207 kExpectedFragStart, | 286 kExpectedFragStart, |
208 kExpectedNum); | 287 kExpectedNum); |
209 } | 288 } |
210 | 289 |
211 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) { | 290 TEST_F(RtpPacketizerVp8Test, TestAggregateModeManyPartitions2) { |
212 const size_t kSizeVector[] = {1599, 200, 200, 200, 1600, 200, 200, 200, 200}; | 291 const size_t kSizeVector[] = {1599, 200, 200, 200, 1600, 200, 200, 200, 200}; |
213 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 292 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
214 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 293 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
215 | 294 |
216 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 295 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
217 const size_t kMaxPayloadSize = 1000; | 296 const size_t kMaxPayloadSize = 1000; |
218 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 297 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
219 packetizer.SetPayloadData(helper_->payload_data(), | 298 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
220 helper_->payload_size(), | 299 helper_->payload_size(), |
221 helper_->fragmentation()); | 300 helper_->fragmentation()); |
222 | 301 |
223 // The expected sizes are obtained by running a verified good implementation. | 302 // The expected sizes are obtained by running a verified good implementation. |
224 const size_t kExpectedSizes[] = {803, 802, 603, 803, 803, 803}; | 303 const size_t kExpectedSizes[] = {802, 803, 603, 803, 803, 803}; |
225 const int kExpectedPart[] = {0, 0, 1, 4, 4, 5}; | 304 const int kExpectedPart[] = {0, 0, 1, 4, 4, 5}; |
226 const bool kExpectedFragStart[] = {true, false, true, true, false, true}; | 305 const bool kExpectedFragStart[] = {true, false, true, true, false, true}; |
227 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 306 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
228 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 307 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
229 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 308 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
309 ASSERT_EQ(num_packets, kExpectedNum); | |
230 | 310 |
231 helper_->GetAllPacketsAndCheck(&packetizer, | 311 helper_->GetAllPacketsAndCheck(&packetizer, |
232 kExpectedSizes, | 312 kExpectedSizes, |
233 kExpectedPart, | 313 kExpectedPart, |
234 kExpectedFragStart, | 314 kExpectedFragStart, |
235 kExpectedNum); | 315 kExpectedNum); |
236 } | 316 } |
237 | 317 |
238 TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) { | 318 TEST_F(RtpPacketizerVp8Test, TestAggregateModeTwoLargePartitions) { |
239 const size_t kSizeVector[] = {1654, 2268}; | 319 const size_t kSizeVector[] = {1654, 2268}; |
240 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 320 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
241 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 321 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
242 | 322 |
243 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. | 323 hdr_info_.pictureId = 20; // <= 0x7F should produce 1-byte PictureID. |
244 const size_t kMaxPayloadSize = 1460; | 324 const size_t kMaxPayloadSize = 1460; |
245 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 325 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
246 packetizer.SetPayloadData(helper_->payload_data(), | 326 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
247 helper_->payload_size(), | 327 helper_->payload_size(), |
248 helper_->fragmentation()); | 328 helper_->fragmentation()); |
249 | 329 |
250 // The expected sizes are obtained by running a verified good implementation. | 330 // The expected sizes are obtained by running a verified good implementation. |
251 const size_t kExpectedSizes[] = {830, 830, 1137, 1137}; | 331 const size_t kExpectedSizes[] = {830, 830, 1137, 1137}; |
252 const int kExpectedPart[] = {0, 0, 1, 1}; | 332 const int kExpectedPart[] = {0, 0, 1, 1}; |
253 const bool kExpectedFragStart[] = {true, false, true, false}; | 333 const bool kExpectedFragStart[] = {true, false, true, false}; |
254 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 334 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
255 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 335 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
256 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 336 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
337 ASSERT_EQ(num_packets, kExpectedNum); | |
257 | 338 |
258 helper_->GetAllPacketsAndCheck(&packetizer, | 339 helper_->GetAllPacketsAndCheck(&packetizer, |
259 kExpectedSizes, | 340 kExpectedSizes, |
260 kExpectedPart, | 341 kExpectedPart, |
261 kExpectedFragStart, | 342 kExpectedFragStart, |
262 kExpectedNum); | 343 kExpectedNum); |
263 } | 344 } |
264 | 345 |
265 // Verify that EqualSize mode is forced if fragmentation info is missing. | 346 // Verify that EqualSize mode is forced if fragmentation info is missing. |
266 TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) { | 347 TEST_F(RtpPacketizerVp8Test, TestEqualSizeModeFallback) { |
267 const size_t kSizeVector[] = {10, 10, 10}; | 348 const size_t kSizeVector[] = {10, 10, 10}; |
268 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 349 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
269 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 350 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
270 | 351 |
271 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID | 352 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID |
272 const size_t kMaxPayloadSize = 12; // Small enough to produce 4 packets. | 353 const size_t kMaxPayloadSize = 12; // Small enough to produce 4 packets. |
273 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize); | 354 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0); |
274 packetizer.SetPayloadData( | 355 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
275 helper_->payload_data(), helper_->payload_size(), NULL); | 356 helper_->payload_size(), NULL); |
danilchap
2017/05/18 11:14:24
nullptr instead of NULL here and below
ilnik
2017/05/18 12:22:52
Done.
| |
276 | 357 |
277 // Expecting three full packets, and one with the remainder. | 358 // Expecting three full packets, and one with the remainder. |
278 const size_t kExpectedSizes[] = {12, 11, 12, 11}; | 359 const size_t kExpectedSizes[] = {11, 11, 12, 12}; |
279 const int kExpectedPart[] = {0, 0, 0, 0}; // Always 0 for equal size mode. | 360 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. | 361 // Frag start only true for first packet in equal size mode. |
281 const bool kExpectedFragStart[] = {true, false, false, false}; | 362 const bool kExpectedFragStart[] = {true, false, false, false}; |
282 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 363 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
283 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 364 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
284 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 365 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
366 ASSERT_EQ(num_packets, kExpectedNum); | |
285 | 367 |
286 helper_->set_sloppy_partitioning(true); | 368 helper_->set_sloppy_partitioning(true); |
287 helper_->GetAllPacketsAndCheck(&packetizer, | 369 helper_->GetAllPacketsAndCheck(&packetizer, |
288 kExpectedSizes, | 370 kExpectedSizes, |
289 kExpectedPart, | 371 kExpectedPart, |
290 kExpectedFragStart, | 372 kExpectedFragStart, |
291 kExpectedNum); | 373 kExpectedNum); |
292 } | 374 } |
293 | 375 |
376 TEST_F(RtpPacketizerVp8Test, TestEqualSizeWithExtention) { | |
danilchap
2017/05/18 11:14:24
may be LastPacketReduction instead of Extension
ilnik
2017/05/18 12:22:52
Done.
| |
377 const size_t kSizeVector[] = {30, 10, 3}; | |
378 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | |
379 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | |
380 | |
381 hdr_info_.pictureId = 200; // > 0x7F should produce 2-byte PictureID | |
382 const size_t kMaxPayloadSize = 15; // Small enough to produce 5 packets. | |
383 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 5); | |
384 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), | |
385 helper_->payload_size(), NULL); | |
386 | |
387 // Expecting three full packets, and one with the remainder. | |
388 const size_t kExpectedSizes[] = {13, 13, 14, 14, 9}; | |
389 const int kExpectedPart[] = {0, 0, 0, 0, 0}; // Always 0 for equal size mode. | |
390 // Frag start only true for first packet in equal size mode. | |
391 const bool kExpectedFragStart[] = {true, false, false, false, false}; | |
392 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | |
393 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | |
394 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | |
395 ASSERT_EQ(num_packets, kExpectedNum); | |
396 | |
397 helper_->set_sloppy_partitioning(true); | |
398 helper_->GetAllPacketsAndCheck(&packetizer, kExpectedSizes, kExpectedPart, | |
399 kExpectedFragStart, kExpectedNum); | |
400 } | |
401 | |
294 // Verify that non-reference bit is set. EqualSize mode fallback is expected. | 402 // Verify that non-reference bit is set. EqualSize mode fallback is expected. |
295 TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) { | 403 TEST_F(RtpPacketizerVp8Test, TestNonReferenceBit) { |
296 const size_t kSizeVector[] = {10, 10, 10}; | 404 const size_t kSizeVector[] = {10, 10, 10}; |
297 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 405 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
298 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 406 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
299 | 407 |
300 hdr_info_.nonReference = true; | 408 hdr_info_.nonReference = true; |
301 const size_t kMaxPayloadSize = 25; // Small enough to produce two packets. | 409 const size_t kMaxPayloadSize = 25; // Small enough to produce two packets. |
302 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize); | 410 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0); |
303 packetizer.SetPayloadData( | 411 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
304 helper_->payload_data(), helper_->payload_size(), NULL); | 412 helper_->payload_size(), NULL); |
305 | 413 |
306 // EqualSize mode => First packet full; other not. | 414 // EqualSize mode => First packet full; other not. |
307 const size_t kExpectedSizes[] = {16, 16}; | 415 const size_t kExpectedSizes[] = {16, 16}; |
308 const int kExpectedPart[] = {0, 0}; // Always 0 for equal size mode. | 416 const int kExpectedPart[] = {0, 0}; // Always 0 for equal size mode. |
309 // Frag start only true for first packet in equal size mode. | 417 // Frag start only true for first packet in equal size mode. |
310 const bool kExpectedFragStart[] = {true, false}; | 418 const bool kExpectedFragStart[] = {true, false}; |
311 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 419 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
312 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 420 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
313 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 421 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
422 ASSERT_EQ(num_packets, kExpectedNum); | |
314 | 423 |
315 helper_->set_sloppy_partitioning(true); | 424 helper_->set_sloppy_partitioning(true); |
316 helper_->GetAllPacketsAndCheck(&packetizer, | 425 helper_->GetAllPacketsAndCheck(&packetizer, |
317 kExpectedSizes, | 426 kExpectedSizes, |
318 kExpectedPart, | 427 kExpectedPart, |
319 kExpectedFragStart, | 428 kExpectedFragStart, |
320 kExpectedNum); | 429 kExpectedNum); |
321 } | 430 } |
322 | 431 |
323 // Verify Tl0PicIdx and TID fields, and layerSync bit. | 432 // Verify Tl0PicIdx and TID fields, and layerSync bit. |
324 TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) { | 433 TEST_F(RtpPacketizerVp8Test, TestTl0PicIdxAndTID) { |
325 const size_t kSizeVector[] = {10, 10, 10}; | 434 const size_t kSizeVector[] = {10, 10, 10}; |
326 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 435 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
327 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 436 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
328 | 437 |
329 hdr_info_.tl0PicIdx = 117; | 438 hdr_info_.tl0PicIdx = 117; |
330 hdr_info_.temporalIdx = 2; | 439 hdr_info_.temporalIdx = 2; |
331 hdr_info_.layerSync = true; | 440 hdr_info_.layerSync = true; |
332 // kMaxPayloadSize is only limited by allocated buffer size. | 441 // kMaxPayloadSize is only limited by allocated buffer size. |
333 const size_t kMaxPayloadSize = helper_->buffer_size(); | 442 const size_t kMaxPayloadSize = helper_->buffer_size(); |
334 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 443 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
335 packetizer.SetPayloadData(helper_->payload_data(), | 444 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
336 helper_->payload_size(), | 445 helper_->payload_size(), |
337 helper_->fragmentation()); | 446 helper_->fragmentation()); |
338 | 447 |
339 // Expect one single packet of payload_size() + 4 bytes header. | 448 // Expect one single packet of payload_size() + 4 bytes header. |
340 const size_t kExpectedSizes[1] = {helper_->payload_size() + 4}; | 449 const size_t kExpectedSizes[1] = {helper_->payload_size() + 4}; |
341 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 450 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
342 const bool kExpectedFragStart[1] = {true}; | 451 const bool kExpectedFragStart[1] = {true}; |
343 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 452 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
344 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 453 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
345 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 454 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
455 ASSERT_EQ(num_packets, kExpectedNum); | |
346 | 456 |
347 helper_->GetAllPacketsAndCheck(&packetizer, | 457 helper_->GetAllPacketsAndCheck(&packetizer, |
348 kExpectedSizes, | 458 kExpectedSizes, |
349 kExpectedPart, | 459 kExpectedPart, |
350 kExpectedFragStart, | 460 kExpectedFragStart, |
351 kExpectedNum); | 461 kExpectedNum); |
352 } | 462 } |
353 | 463 |
354 // Verify KeyIdx field. | 464 // Verify KeyIdx field. |
355 TEST_F(RtpPacketizerVp8Test, TestKeyIdx) { | 465 TEST_F(RtpPacketizerVp8Test, TestKeyIdx) { |
356 const size_t kSizeVector[] = {10, 10, 10}; | 466 const size_t kSizeVector[] = {10, 10, 10}; |
357 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 467 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
358 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 468 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
359 | 469 |
360 hdr_info_.keyIdx = 17; | 470 hdr_info_.keyIdx = 17; |
361 // kMaxPayloadSize is only limited by allocated buffer size. | 471 // kMaxPayloadSize is only limited by allocated buffer size. |
362 const size_t kMaxPayloadSize = helper_->buffer_size(); | 472 const size_t kMaxPayloadSize = helper_->buffer_size(); |
363 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 473 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
364 packetizer.SetPayloadData(helper_->payload_data(), | 474 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
365 helper_->payload_size(), | 475 helper_->payload_size(), |
366 helper_->fragmentation()); | 476 helper_->fragmentation()); |
367 | 477 |
368 // Expect one single packet of payload_size() + 3 bytes header. | 478 // Expect one single packet of payload_size() + 3 bytes header. |
369 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; | 479 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; |
370 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 480 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
371 const bool kExpectedFragStart[1] = {true}; | 481 const bool kExpectedFragStart[1] = {true}; |
372 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 482 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
373 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 483 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
374 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 484 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
485 ASSERT_EQ(num_packets, kExpectedNum); | |
375 | 486 |
376 helper_->GetAllPacketsAndCheck(&packetizer, | 487 helper_->GetAllPacketsAndCheck(&packetizer, |
377 kExpectedSizes, | 488 kExpectedSizes, |
378 kExpectedPart, | 489 kExpectedPart, |
379 kExpectedFragStart, | 490 kExpectedFragStart, |
380 kExpectedNum); | 491 kExpectedNum); |
381 } | 492 } |
382 | 493 |
383 // Verify TID field and KeyIdx field in combination. | 494 // Verify TID field and KeyIdx field in combination. |
384 TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) { | 495 TEST_F(RtpPacketizerVp8Test, TestTIDAndKeyIdx) { |
385 const size_t kSizeVector[] = {10, 10, 10}; | 496 const size_t kSizeVector[] = {10, 10, 10}; |
386 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); | 497 const size_t kNumPartitions = GTEST_ARRAY_SIZE_(kSizeVector); |
387 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); | 498 ASSERT_TRUE(Init(kSizeVector, kNumPartitions)); |
388 | 499 |
389 hdr_info_.temporalIdx = 1; | 500 hdr_info_.temporalIdx = 1; |
390 hdr_info_.keyIdx = 5; | 501 hdr_info_.keyIdx = 5; |
391 // kMaxPayloadSize is only limited by allocated buffer size. | 502 // kMaxPayloadSize is only limited by allocated buffer size. |
392 const size_t kMaxPayloadSize = helper_->buffer_size(); | 503 const size_t kMaxPayloadSize = helper_->buffer_size(); |
393 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, kAggregate); | 504 RtpPacketizerVp8 packetizer(hdr_info_, kMaxPayloadSize, 0, kAggregate); |
394 packetizer.SetPayloadData(helper_->payload_data(), | 505 size_t num_packets = packetizer.SetPayloadData(helper_->payload_data(), |
395 helper_->payload_size(), | 506 helper_->payload_size(), |
396 helper_->fragmentation()); | 507 helper_->fragmentation()); |
397 | 508 |
398 // Expect one single packet of payload_size() + 3 bytes header. | 509 // Expect one single packet of payload_size() + 3 bytes header. |
399 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; | 510 const size_t kExpectedSizes[1] = {helper_->payload_size() + 3}; |
400 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. | 511 const int kExpectedPart[1] = {0}; // Packet starts with partition 0. |
401 const bool kExpectedFragStart[1] = {true}; | 512 const bool kExpectedFragStart[1] = {true}; |
402 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); | 513 const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
403 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); | 514 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedPart); |
404 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); | 515 CHECK_ARRAY_SIZE(kExpectedNum, kExpectedFragStart); |
516 ASSERT_EQ(num_packets, kExpectedNum); | |
405 | 517 |
406 helper_->GetAllPacketsAndCheck(&packetizer, | 518 helper_->GetAllPacketsAndCheck(&packetizer, |
407 kExpectedSizes, | 519 kExpectedSizes, |
408 kExpectedPart, | 520 kExpectedPart, |
409 kExpectedFragStart, | 521 kExpectedFragStart, |
410 kExpectedNum); | 522 kExpectedNum); |
411 } | 523 } |
412 | 524 |
413 class RtpDepacketizerVp8Test : public ::testing::Test { | 525 class RtpDepacketizerVp8Test : public ::testing::Test { |
414 protected: | 526 protected: |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
572 const uint8_t kHeaderLength = 5; | 684 const uint8_t kHeaderLength = 5; |
573 uint8_t data[10] = {0}; | 685 uint8_t data[10] = {0}; |
574 RtpPacketToSend packet(kNoExtensions); | 686 RtpPacketToSend packet(kNoExtensions); |
575 RTPVideoHeaderVP8 input_header; | 687 RTPVideoHeaderVP8 input_header; |
576 input_header.nonReference = true; | 688 input_header.nonReference = true; |
577 input_header.pictureId = 300; | 689 input_header.pictureId = 300; |
578 input_header.temporalIdx = 1; | 690 input_header.temporalIdx = 1; |
579 input_header.layerSync = false; | 691 input_header.layerSync = false; |
580 input_header.tl0PicIdx = kNoTl0PicIdx; // Disable. | 692 input_header.tl0PicIdx = kNoTl0PicIdx; // Disable. |
581 input_header.keyIdx = 31; | 693 input_header.keyIdx = 31; |
582 RtpPacketizerVp8 packetizer(input_header, 20); | 694 RtpPacketizerVp8 packetizer(input_header, 20, 0); |
583 packetizer.SetPayloadData(data, 10, NULL); | 695 EXPECT_EQ(packetizer.SetPayloadData(data, 10, NULL), 1u); |
584 bool last; | 696 ASSERT_TRUE(packetizer.NextPacket(&packet)); |
585 ASSERT_TRUE(packetizer.NextPacket(&packet, &last)); | |
586 EXPECT_TRUE(last); | |
587 EXPECT_TRUE(packet.Marker()); | 697 EXPECT_TRUE(packet.Marker()); |
588 | 698 |
589 auto rtp_payload = packet.payload(); | 699 auto rtp_payload = packet.payload(); |
590 RtpDepacketizer::ParsedPayload payload; | 700 RtpDepacketizer::ParsedPayload payload; |
591 ASSERT_TRUE( | 701 ASSERT_TRUE( |
592 depacketizer_->Parse(&payload, rtp_payload.data(), rtp_payload.size())); | 702 depacketizer_->Parse(&payload, rtp_payload.data(), rtp_payload.size())); |
593 auto vp8_payload = rtp_payload.subview(kHeaderLength); | 703 auto vp8_payload = rtp_payload.subview(kHeaderLength); |
594 ExpectPacket(&payload, vp8_payload.data(), vp8_payload.size()); | 704 ExpectPacket(&payload, vp8_payload.data(), vp8_payload.size()); |
595 EXPECT_EQ(kVideoFrameKey, payload.frame_type); | 705 EXPECT_EQ(kVideoFrameKey, payload.frame_type); |
596 EXPECT_EQ(kRtpVideoVp8, payload.type.Video.codec); | 706 EXPECT_EQ(kRtpVideoVp8, payload.type.Video.codec); |
597 VerifyBasicHeader(&payload.type, 1, 1, 0); | 707 VerifyBasicHeader(&payload.type, 1, 1, 0); |
598 VerifyExtensions(&payload.type, | 708 VerifyExtensions(&payload.type, |
599 input_header.pictureId, | 709 input_header.pictureId, |
600 input_header.tl0PicIdx, | 710 input_header.tl0PicIdx, |
601 input_header.temporalIdx, | 711 input_header.temporalIdx, |
602 input_header.keyIdx); | 712 input_header.keyIdx); |
603 EXPECT_EQ(payload.type.Video.codecHeader.VP8.layerSync, | 713 EXPECT_EQ(payload.type.Video.codecHeader.VP8.layerSync, |
604 input_header.layerSync); | 714 input_header.layerSync); |
605 } | 715 } |
606 | 716 |
607 TEST_F(RtpDepacketizerVp8Test, TestEmptyPayload) { | 717 TEST_F(RtpDepacketizerVp8Test, TestEmptyPayload) { |
608 // Using a wild pointer to crash on accesses from inside the depacketizer. | 718 // Using a wild pointer to crash on accesses from inside the depacketizer. |
609 uint8_t* garbage_ptr = reinterpret_cast<uint8_t*>(0x4711); | 719 uint8_t* garbage_ptr = reinterpret_cast<uint8_t*>(0x4711); |
610 RtpDepacketizer::ParsedPayload payload; | 720 RtpDepacketizer::ParsedPayload payload; |
611 EXPECT_FALSE(depacketizer_->Parse(&payload, garbage_ptr, 0)); | 721 EXPECT_FALSE(depacketizer_->Parse(&payload, garbage_ptr, 0)); |
612 } | 722 } |
613 } // namespace webrtc | 723 } // namespace webrtc |
OLD | NEW |