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

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

Issue 2089773002: Add EncodedImageCallback::OnEncodedImage(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: . Created 4 years, 4 months 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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 } 257 }
258 258
259 void RunRtxTest(RtxMode rtx_method, int loss) { 259 void RunRtxTest(RtxMode rtx_method, int loss) {
260 rtp_payload_registry_.SetRtxSsrc(kTestSsrc + 1); 260 rtp_payload_registry_.SetRtxSsrc(kTestSsrc + 1);
261 rtp_rtcp_module_->SetRtxSendStatus(rtx_method); 261 rtp_rtcp_module_->SetRtxSendStatus(rtx_method);
262 rtp_rtcp_module_->SetRtxSsrc(kTestSsrc + 1); 262 rtp_rtcp_module_->SetRtxSsrc(kTestSsrc + 1);
263 transport_.DropEveryNthPacket(loss); 263 transport_.DropEveryNthPacket(loss);
264 uint32_t timestamp = 3000; 264 uint32_t timestamp = 3000;
265 uint16_t nack_list[kVideoNackListSize]; 265 uint16_t nack_list[kVideoNackListSize];
266 for (int frame = 0; frame < kNumFrames; ++frame) { 266 for (int frame = 0; frame < kNumFrames; ++frame) {
267 EXPECT_EQ(0, rtp_rtcp_module_->SendOutgoingData( 267 EXPECT_TRUE(rtp_rtcp_module_->SendOutgoingData(
268 webrtc::kVideoFrameDelta, kPayloadType, timestamp, 268 webrtc::kVideoFrameDelta, kPayloadType, timestamp, timestamp / 90,
269 timestamp / 90, payload_data, payload_data_length)); 269 payload_data, payload_data_length, nullptr, nullptr, nullptr));
270 // Min required delay until retransmit = 5 + RTT ms (RTT = 0). 270 // Min required delay until retransmit = 5 + RTT ms (RTT = 0).
271 fake_clock.AdvanceTimeMilliseconds(5); 271 fake_clock.AdvanceTimeMilliseconds(5);
272 int length = BuildNackList(nack_list); 272 int length = BuildNackList(nack_list);
273 if (length > 0) 273 if (length > 0)
274 rtp_rtcp_module_->SendNACK(nack_list, length); 274 rtp_rtcp_module_->SendNACK(nack_list, length);
275 fake_clock.AdvanceTimeMilliseconds(28); // 33ms - 5ms delay. 275 fake_clock.AdvanceTimeMilliseconds(28); // 33ms - 5ms delay.
276 rtp_rtcp_module_->Process(); 276 rtp_rtcp_module_->Process();
277 // Prepare next frame. 277 // Prepare next frame.
278 timestamp += 3000; 278 timestamp += 3000;
279 } 279 }
(...skipping 23 matching lines...) Expand all
303 // Disable StorePackets to be able to set a larger packet history. 303 // Disable StorePackets to be able to set a larger packet history.
304 rtp_rtcp_module_->SetStorePacketsStatus(false, 0); 304 rtp_rtcp_module_->SetStorePacketsStatus(false, 0);
305 // Enable StorePackets with a packet history of 2000 packets. 305 // Enable StorePackets with a packet history of 2000 packets.
306 rtp_rtcp_module_->SetStorePacketsStatus(true, 2000); 306 rtp_rtcp_module_->SetStorePacketsStatus(true, 2000);
307 // Drop 900 packets from the second one so that we get a NACK list which is 307 // Drop 900 packets from the second one so that we get a NACK list which is
308 // big enough to require 4 RTCP packets to be fully transmitted to the sender. 308 // big enough to require 4 RTCP packets to be fully transmitted to the sender.
309 transport_.DropConsecutivePackets(2, kNumPacketsToDrop); 309 transport_.DropConsecutivePackets(2, kNumPacketsToDrop);
310 // Send 30 frames which at the default size is roughly what we need to get 310 // Send 30 frames which at the default size is roughly what we need to get
311 // enough packets. 311 // enough packets.
312 for (int frame = 0; frame < kNumFrames; ++frame) { 312 for (int frame = 0; frame < kNumFrames; ++frame) {
313 EXPECT_EQ(0, rtp_rtcp_module_->SendOutgoingData( 313 EXPECT_TRUE(rtp_rtcp_module_->SendOutgoingData(
314 webrtc::kVideoFrameDelta, kPayloadType, timestamp, 314 webrtc::kVideoFrameDelta, kPayloadType, timestamp, timestamp / 90,
315 timestamp / 90, payload_data, payload_data_length)); 315 payload_data, payload_data_length, nullptr, nullptr, nullptr));
316 // Prepare next frame. 316 // Prepare next frame.
317 timestamp += 3000; 317 timestamp += 3000;
318 fake_clock.AdvanceTimeMilliseconds(33); 318 fake_clock.AdvanceTimeMilliseconds(33);
319 rtp_rtcp_module_->Process(); 319 rtp_rtcp_module_->Process();
320 } 320 }
321 EXPECT_FALSE(transport_.expected_sequence_numbers_.empty()); 321 EXPECT_FALSE(transport_.expected_sequence_numbers_.empty());
322 EXPECT_FALSE(receiver_.sequence_numbers_.empty()); 322 EXPECT_FALSE(receiver_.sequence_numbers_.empty());
323 size_t last_receive_count = receiver_.sequence_numbers_.size(); 323 size_t last_receive_count = receiver_.sequence_numbers_.size();
324 int length = BuildNackList(nack_list); 324 int length = BuildNackList(nack_list);
325 for (int i = 0; i < kNumRequiredRtcp - 1; ++i) { 325 for (int i = 0; i < kNumRequiredRtcp - 1; ++i) {
(...skipping 11 matching lines...) Expand all
337 RunRtxTest(kRtxRetransmitted, 10); 337 RunRtxTest(kRtxRetransmitted, 10);
338 EXPECT_EQ(kTestSequenceNumber, *(receiver_.sequence_numbers_.begin())); 338 EXPECT_EQ(kTestSequenceNumber, *(receiver_.sequence_numbers_.begin()));
339 EXPECT_EQ(kTestSequenceNumber + kTestNumberOfPackets - 1, 339 EXPECT_EQ(kTestSequenceNumber + kTestNumberOfPackets - 1,
340 *(receiver_.sequence_numbers_.rbegin())); 340 *(receiver_.sequence_numbers_.rbegin()));
341 EXPECT_EQ(kTestNumberOfPackets, receiver_.sequence_numbers_.size()); 341 EXPECT_EQ(kTestNumberOfPackets, receiver_.sequence_numbers_.size());
342 EXPECT_EQ(kTestNumberOfRtxPackets, transport_.count_rtx_ssrc_); 342 EXPECT_EQ(kTestNumberOfRtxPackets, transport_.count_rtx_ssrc_);
343 EXPECT_TRUE(ExpectedPacketsReceived()); 343 EXPECT_TRUE(ExpectedPacketsReceived());
344 } 344 }
345 345
346 } // namespace webrtc 346 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h ('k') | webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698