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

Side by Side Diff: webrtc/modules/video_coding/main/source/jitter_buffer_unittest.cc

Issue 1371043003: Unify FrameType and VideoFrameType. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 2 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) 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2011 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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 packet.dataPtr = data_buffer_; 161 packet.dataPtr = data_buffer_;
162 bool packet_available = stream_generator_->GetPacket(&packet, index); 162 bool packet_available = stream_generator_->GetPacket(&packet, index);
163 EXPECT_TRUE(packet_available); 163 EXPECT_TRUE(packet_available);
164 if (!packet_available) 164 if (!packet_available)
165 return kGeneralError; // Return here to avoid crashes below. 165 return kGeneralError; // Return here to avoid crashes below.
166 bool retransmitted = false; 166 bool retransmitted = false;
167 return jitter_buffer_->InsertPacket(packet, &retransmitted); 167 return jitter_buffer_->InsertPacket(packet, &retransmitted);
168 } 168 }
169 169
170 VCMFrameBufferEnum InsertFrame(FrameType frame_type) { 170 VCMFrameBufferEnum InsertFrame(FrameType frame_type) {
171 stream_generator_->GenerateFrame(frame_type, 171 stream_generator_->GenerateFrame(
172 (frame_type != kFrameEmpty) ? 1 : 0, 172 frame_type, (frame_type != kEmptyFrame) ? 1 : 0,
173 (frame_type == kFrameEmpty) ? 1 : 0, 173 (frame_type == kEmptyFrame) ? 1 : 0, clock_->TimeInMilliseconds());
174 clock_->TimeInMilliseconds());
175 VCMFrameBufferEnum ret = InsertPacketAndPop(0); 174 VCMFrameBufferEnum ret = InsertPacketAndPop(0);
176 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs); 175 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs);
177 return ret; 176 return ret;
178 } 177 }
179 178
180 VCMFrameBufferEnum InsertFrames(int num_frames, FrameType frame_type) { 179 VCMFrameBufferEnum InsertFrames(int num_frames, FrameType frame_type) {
181 VCMFrameBufferEnum ret_for_all = kNoError; 180 VCMFrameBufferEnum ret_for_all = kNoError;
182 for (int i = 0; i < num_frames; ++i) { 181 for (int i = 0; i < num_frames; ++i) {
183 VCMFrameBufferEnum ret = InsertFrame(frame_type); 182 VCMFrameBufferEnum ret = InsertFrame(frame_type);
184 if (ret < kNoError) { 183 if (ret < kNoError) {
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 1042
1044 EXPECT_EQ(jitter_buffer_->InsertPacket(*packet_, &retransmitted), 1043 EXPECT_EQ(jitter_buffer_->InsertPacket(*packet_, &retransmitted),
1045 kDecodableSession); 1044 kDecodableSession);
1046 1045
1047 // Insert an empty (non-media) packet. 1046 // Insert an empty (non-media) packet.
1048 seq_num_++; 1047 seq_num_++;
1049 packet_->isFirstPacket = false; 1048 packet_->isFirstPacket = false;
1050 packet_->markerBit = false; 1049 packet_->markerBit = false;
1051 packet_->seqNum = seq_num_; 1050 packet_->seqNum = seq_num_;
1052 packet_->completeNALU = kNaluEnd; 1051 packet_->completeNALU = kNaluEnd;
1053 packet_->frameType = kFrameEmpty; 1052 packet_->frameType = kEmptyFrame;
1054 1053
1055 EXPECT_EQ(jitter_buffer_->InsertPacket(*packet_, &retransmitted), 1054 EXPECT_EQ(jitter_buffer_->InsertPacket(*packet_, &retransmitted),
1056 kDecodableSession); 1055 kDecodableSession);
1057 frame_out = DecodeIncompleteFrame(); 1056 frame_out = DecodeIncompleteFrame();
1058 1057
1059 // One of the packets has been discarded by the jitter buffer. 1058 // One of the packets has been discarded by the jitter buffer.
1060 // Last frame can't be extracted yet. 1059 // Last frame can't be extracted yet.
1061 if (i < 10) { 1060 if (i < 10) {
1062 CheckOutFrame(frame_out, size_, false); 1061 CheckOutFrame(frame_out, size_, false);
1063 1062
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
1517 // inserted. Only return empty frames in the presence of subsequent frames. 1516 // inserted. Only return empty frames in the presence of subsequent frames.
1518 int maxSize = 1000; 1517 int maxSize = 1000;
1519 bool retransmitted = false; 1518 bool retransmitted = false;
1520 for (int i = 0; i < maxSize + 10; i++) { 1519 for (int i = 0; i < maxSize + 10; i++) {
1521 timestamp_ += 33 * 90; 1520 timestamp_ += 33 * 90;
1522 seq_num_++; 1521 seq_num_++;
1523 packet_->isFirstPacket = false; 1522 packet_->isFirstPacket = false;
1524 packet_->markerBit = false; 1523 packet_->markerBit = false;
1525 packet_->seqNum = seq_num_; 1524 packet_->seqNum = seq_num_;
1526 packet_->timestamp = timestamp_; 1525 packet_->timestamp = timestamp_;
1527 packet_->frameType = kFrameEmpty; 1526 packet_->frameType = kEmptyFrame;
1528 1527
1529 EXPECT_EQ(kNoError, jitter_buffer_->InsertPacket(*packet_, 1528 EXPECT_EQ(kNoError, jitter_buffer_->InsertPacket(*packet_,
1530 &retransmitted)); 1529 &retransmitted));
1531 VCMEncodedFrame* testFrame = DecodeIncompleteFrame(); 1530 VCMEncodedFrame* testFrame = DecodeIncompleteFrame();
1532 // Timestamp should never be the last TS inserted. 1531 // Timestamp should never be the last TS inserted.
1533 if (testFrame != NULL) { 1532 if (testFrame != NULL) {
1534 EXPECT_TRUE(testFrame->TimeStamp() < timestamp_); 1533 EXPECT_TRUE(testFrame->TimeStamp() < timestamp_);
1535 jitter_buffer_->ReleaseFrame(testFrame); 1534 jitter_buffer_->ReleaseFrame(testFrame);
1536 } 1535 }
1537 } 1536 }
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
1888 EXPECT_EQ(kCompleteSession, InsertPacketAndPop(1)); 1887 EXPECT_EQ(kCompleteSession, InsertPacketAndPop(1));
1889 EXPECT_FALSE(DecodeCompleteFrame()); 1888 EXPECT_FALSE(DecodeCompleteFrame());
1890 EXPECT_EQ(kCompleteSession, InsertPacketAndPop(0)); 1889 EXPECT_EQ(kCompleteSession, InsertPacketAndPop(0));
1891 EXPECT_TRUE(DecodeCompleteFrame()); 1890 EXPECT_TRUE(DecodeCompleteFrame());
1892 EXPECT_TRUE(DecodeCompleteFrame()); 1891 EXPECT_TRUE(DecodeCompleteFrame());
1893 } 1892 }
1894 1893
1895 TEST_F(TestJitterBufferNack, EmptyPackets) { 1894 TEST_F(TestJitterBufferNack, EmptyPackets) {
1896 // Make sure empty packets doesn't clog the jitter buffer. 1895 // Make sure empty packets doesn't clog the jitter buffer.
1897 jitter_buffer_->SetNackMode(kNack, media_optimization::kLowRttNackMs, -1); 1896 jitter_buffer_->SetNackMode(kNack, media_optimization::kLowRttNackMs, -1);
1898 EXPECT_GE(InsertFrames(kMaxNumberOfFrames, kFrameEmpty), kNoError); 1897 EXPECT_GE(InsertFrames(kMaxNumberOfFrames, kEmptyFrame), kNoError);
1899 InsertFrame(kVideoFrameKey); 1898 InsertFrame(kVideoFrameKey);
1900 EXPECT_TRUE(DecodeCompleteFrame()); 1899 EXPECT_TRUE(DecodeCompleteFrame());
1901 } 1900 }
1902 1901
1903 TEST_F(TestJitterBufferNack, NackTooOldPackets) { 1902 TEST_F(TestJitterBufferNack, NackTooOldPackets) {
1904 // Insert a key frame and decode it. 1903 // Insert a key frame and decode it.
1905 EXPECT_GE(InsertFrame(kVideoFrameKey), kNoError); 1904 EXPECT_GE(InsertFrame(kVideoFrameKey), kNoError);
1906 EXPECT_TRUE(DecodeCompleteFrame()); 1905 EXPECT_TRUE(DecodeCompleteFrame());
1907 1906
1908 // Drop one frame and insert |kNackHistoryLength| to trigger NACKing a too 1907 // Drop one frame and insert |kNackHistoryLength| to trigger NACKing a too
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
2198 2197
2199 // Stream should be decodable from this point. 2198 // Stream should be decodable from this point.
2200 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs); 2199 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs);
2201 InsertFrame(kVideoFrameDelta); 2200 InsertFrame(kVideoFrameDelta);
2202 EXPECT_TRUE(DecodeCompleteFrame()); 2201 EXPECT_TRUE(DecodeCompleteFrame());
2203 nack_list = jitter_buffer_->GetNackList(&extended); 2202 nack_list = jitter_buffer_->GetNackList(&extended);
2204 EXPECT_EQ(0u, nack_list.size()); 2203 EXPECT_EQ(0u, nack_list.size());
2205 } 2204 }
2206 2205
2207 } // namespace webrtc 2206 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/main/source/jitter_buffer.cc ('k') | webrtc/modules/video_coding/main/source/packet.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698