Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/ulpfec_receiver_unittest.cc

Issue 2536653002: Update video histograms that do not have a minimum lifetime limit before being recorded. (Closed)
Patch Set: Split from https://codereview.webrtc.org/2482763003/ Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 } 180 }
181 181
182 TEST_F(UlpfecReceiverTest, TwoMediaOneFec) { 182 TEST_F(UlpfecReceiverTest, TwoMediaOneFec) {
183 constexpr size_t kNumFecPackets = 1u; 183 constexpr size_t kNumFecPackets = 1u;
184 std::list<AugmentedPacket*> augmented_media_packets; 184 std::list<AugmentedPacket*> augmented_media_packets;
185 ForwardErrorCorrection::PacketList media_packets; 185 ForwardErrorCorrection::PacketList media_packets;
186 PacketizeFrame(2, 0, &augmented_media_packets, &media_packets); 186 PacketizeFrame(2, 0, &augmented_media_packets, &media_packets);
187 std::list<ForwardErrorCorrection::Packet*> fec_packets; 187 std::list<ForwardErrorCorrection::Packet*> fec_packets;
188 EncodeFec(media_packets, kNumFecPackets, &fec_packets); 188 EncodeFec(media_packets, kNumFecPackets, &fec_packets);
189 189
190 FecPacketCounter counter = receiver_fec_->GetPacketCounter();
191 EXPECT_EQ(0u, counter.num_packets);
192 EXPECT_EQ(-1, counter.first_packet_time_ms);
193
190 // Recovery 194 // Recovery
191 auto it = augmented_media_packets.begin(); 195 auto it = augmented_media_packets.begin();
192 BuildAndAddRedMediaPacket(*it); 196 BuildAndAddRedMediaPacket(*it);
193 VerifyReconstructedMediaPacket(**it, 1); 197 VerifyReconstructedMediaPacket(**it, 1);
194 EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec()); 198 EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
199 counter = receiver_fec_->GetPacketCounter();
200 EXPECT_EQ(1u, counter.num_packets);
201 EXPECT_EQ(0u, counter.num_fec_packets);
202 EXPECT_EQ(0u, counter.num_recovered_packets);
203 const int64_t first_packet_time_ms = counter.first_packet_time_ms;
204 EXPECT_NE(-1, first_packet_time_ms);
205
195 // Drop one media packet. 206 // Drop one media packet.
196 auto fec_it = fec_packets.begin(); 207 auto fec_it = fec_packets.begin();
197 BuildAndAddRedFecPacket(*fec_it); 208 BuildAndAddRedFecPacket(*fec_it);
198 ++it; 209 ++it;
199 VerifyReconstructedMediaPacket(**it, 1); 210 VerifyReconstructedMediaPacket(**it, 1);
200 EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec()); 211 EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
201 212
202 FecPacketCounter counter = receiver_fec_->GetPacketCounter(); 213 counter = receiver_fec_->GetPacketCounter();
203 EXPECT_EQ(2u, counter.num_packets); 214 EXPECT_EQ(2u, counter.num_packets);
204 EXPECT_EQ(1u, counter.num_fec_packets); 215 EXPECT_EQ(1u, counter.num_fec_packets);
205 EXPECT_EQ(1u, counter.num_recovered_packets); 216 EXPECT_EQ(1u, counter.num_recovered_packets);
217 EXPECT_EQ(first_packet_time_ms, counter.first_packet_time_ms);
206 } 218 }
207 219
208 TEST_F(UlpfecReceiverTest, InjectGarbageFecHeaderLengthRecovery) { 220 TEST_F(UlpfecReceiverTest, InjectGarbageFecHeaderLengthRecovery) {
209 // Byte offset 8 is the 'length recovery' field of the FEC header. 221 // Byte offset 8 is the 'length recovery' field of the FEC header.
210 InjectGarbagePacketLength(8); 222 InjectGarbagePacketLength(8);
211 } 223 }
212 224
213 TEST_F(UlpfecReceiverTest, InjectGarbageFecLevelHeaderProtectionLength) { 225 TEST_F(UlpfecReceiverTest, InjectGarbageFecLevelHeaderProtectionLength) {
214 // Byte offset 10 is the 'protection length' field in the first FEC level 226 // Byte offset 10 is the 'protection length' field in the first FEC level
215 // header. 227 // header.
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 476
465 TEST_F(UlpfecReceiverTest, TruncatedPacketWithoutDataPastFirstBlock) { 477 TEST_F(UlpfecReceiverTest, TruncatedPacketWithoutDataPastFirstBlock) {
466 const uint8_t kPacket[] = { 478 const uint8_t kPacket[] = {
467 0x82, 0x38, 0x92, 0x38, 0x92, 0x38, 0xde, 0x2a, 0x11, 0xc8, 0xa3, 0xc4, 479 0x82, 0x38, 0x92, 0x38, 0x92, 0x38, 0xde, 0x2a, 0x11, 0xc8, 0xa3, 0xc4,
468 0x82, 0x38, 0x2a, 0x21, 0x2a, 0x28, 0x92, 0x38, 0x92, 0x00, 0x00, 0x0a, 480 0x82, 0x38, 0x2a, 0x21, 0x2a, 0x28, 0x92, 0x38, 0x92, 0x00, 0x00, 0x0a,
469 0x3a, 0xc8, 0xa3, 0x3a, 0x27, 0xc4, 0x2a, 0x21, 0x2a, 0x28}; 481 0x3a, 0xc8, 0xa3, 0x3a, 0x27, 0xc4, 0x2a, 0x21, 0x2a, 0x28};
470 SurvivesMaliciousPacket(kPacket, sizeof(kPacket), 100); 482 SurvivesMaliciousPacket(kPacket, sizeof(kPacket), 100);
471 } 483 }
472 484
473 } // namespace webrtc 485 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/ulpfec_receiver_impl.cc ('k') | webrtc/video/receive_statistics_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698