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

Side by Side Diff: webrtc/modules/video_coding/packet_buffer_unittest.cc

Issue 2007743003: Add sender controlled playout delay limits (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@cleanup_rtp_hdr_extensions
Patch Set: Rename OnReceivedRtcpReport to OnReceivedRtcpReportBlocks Created 4 years, 6 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) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 size_t data_size = 0, // size of data 91 size_t data_size = 0, // size of data
92 uint8_t* data = nullptr) { // data pointer 92 uint8_t* data = nullptr) { // data pointer
93 VCMPacket packet; 93 VCMPacket packet;
94 packet.codec = kVideoCodecVP8; 94 packet.codec = kVideoCodecVP8;
95 packet.seqNum = seq_num; 95 packet.seqNum = seq_num;
96 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; 96 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
97 packet.isFirstPacket = first; 97 packet.isFirstPacket = first;
98 packet.markerBit = last; 98 packet.markerBit = last;
99 packet.sizeBytes = data_size; 99 packet.sizeBytes = data_size;
100 packet.dataPtr = data; 100 packet.dataPtr = data;
101 packet.codecSpecificHeader.codecHeader.VP8.pictureId = pid % (1 << 15); 101 packet.video_header.codecHeader.VP8.pictureId = pid % (1 << 15);
102 packet.codecSpecificHeader.codecHeader.VP8.temporalIdx = tid; 102 packet.video_header.codecHeader.VP8.temporalIdx = tid;
103 packet.codecSpecificHeader.codecHeader.VP8.tl0PicIdx = tl0; 103 packet.video_header.codecHeader.VP8.tl0PicIdx = tl0;
104 packet.codecSpecificHeader.codecHeader.VP8.layerSync = sync; 104 packet.video_header.codecHeader.VP8.layerSync = sync;
105 105
106 EXPECT_TRUE(packet_buffer_->InsertPacket(packet)); 106 EXPECT_TRUE(packet_buffer_->InsertPacket(packet));
107 } 107 }
108 108
109 // Insert a Vp9 packet into the packet buffer. 109 // Insert a Vp9 packet into the packet buffer.
110 void InsertVp9Gof(uint16_t seq_num, // packet sequence number 110 void InsertVp9Gof(uint16_t seq_num, // packet sequence number
111 bool keyframe, // is keyframe 111 bool keyframe, // is keyframe
112 bool first, // is first packet of frame 112 bool first, // is first packet of frame
113 bool last, // is last packet of frame 113 bool last, // is last packet of frame
114 bool up = false, // frame is up-switch point 114 bool up = false, // frame is up-switch point
115 int32_t pid = kNoPictureId, // picture id 115 int32_t pid = kNoPictureId, // picture id
116 uint8_t sid = kNoSpatialIdx, // spatial id 116 uint8_t sid = kNoSpatialIdx, // spatial id
117 uint8_t tid = kNoTemporalIdx, // temporal id 117 uint8_t tid = kNoTemporalIdx, // temporal id
118 int32_t tl0 = kNoTl0PicIdx, // tl0 pic index 118 int32_t tl0 = kNoTl0PicIdx, // tl0 pic index
119 GofInfoVP9* ss = nullptr, // scalability structure 119 GofInfoVP9* ss = nullptr, // scalability structure
120 size_t data_size = 0, // size of data 120 size_t data_size = 0, // size of data
121 uint8_t* data = nullptr) { // data pointer 121 uint8_t* data = nullptr) { // data pointer
122 VCMPacket packet; 122 VCMPacket packet;
123 packet.codec = kVideoCodecVP9; 123 packet.codec = kVideoCodecVP9;
124 packet.seqNum = seq_num; 124 packet.seqNum = seq_num;
125 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; 125 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
126 packet.isFirstPacket = first; 126 packet.isFirstPacket = first;
127 packet.markerBit = last; 127 packet.markerBit = last;
128 packet.sizeBytes = data_size; 128 packet.sizeBytes = data_size;
129 packet.dataPtr = data; 129 packet.dataPtr = data;
130 packet.codecSpecificHeader.codecHeader.VP9.flexible_mode = false; 130 packet.video_header.codecHeader.VP9.flexible_mode = false;
131 packet.codecSpecificHeader.codecHeader.VP9.picture_id = pid % (1 << 15); 131 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15);
132 packet.codecSpecificHeader.codecHeader.VP9.temporal_idx = tid; 132 packet.video_header.codecHeader.VP9.temporal_idx = tid;
133 packet.codecSpecificHeader.codecHeader.VP9.spatial_idx = sid; 133 packet.video_header.codecHeader.VP9.spatial_idx = sid;
134 packet.codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = tl0; 134 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0;
135 packet.codecSpecificHeader.codecHeader.VP9.temporal_up_switch = up; 135 packet.video_header.codecHeader.VP9.temporal_up_switch = up;
136 if (ss != nullptr) { 136 if (ss != nullptr) {
137 packet.codecSpecificHeader.codecHeader.VP9.ss_data_available = true; 137 packet.video_header.codecHeader.VP9.ss_data_available = true;
138 packet.codecSpecificHeader.codecHeader.VP9.gof = *ss; 138 packet.video_header.codecHeader.VP9.gof = *ss;
139 } 139 }
140 140
141 EXPECT_TRUE(packet_buffer_->InsertPacket(packet)); 141 EXPECT_TRUE(packet_buffer_->InsertPacket(packet));
142 } 142 }
143 143
144 // Insert a Vp9 packet into the packet buffer. 144 // Insert a Vp9 packet into the packet buffer.
145 void InsertVp9Flex(uint16_t seq_num, // packet sequence number 145 void InsertVp9Flex(uint16_t seq_num, // packet sequence number
146 bool keyframe, // is keyframe 146 bool keyframe, // is keyframe
147 bool first, // is first packet of frame 147 bool first, // is first packet of frame
148 bool last, // is last packet of frame 148 bool last, // is last packet of frame
149 bool inter, // depends on S-1 layer 149 bool inter, // depends on S-1 layer
150 int32_t pid = kNoPictureId, // picture id 150 int32_t pid = kNoPictureId, // picture id
151 uint8_t sid = kNoSpatialIdx, // spatial id 151 uint8_t sid = kNoSpatialIdx, // spatial id
152 uint8_t tid = kNoTemporalIdx, // temporal id 152 uint8_t tid = kNoTemporalIdx, // temporal id
153 int32_t tl0 = kNoTl0PicIdx, // tl0 pic index 153 int32_t tl0 = kNoTl0PicIdx, // tl0 pic index
154 std::vector<uint8_t> refs = 154 std::vector<uint8_t> refs =
155 std::vector<uint8_t>(), // frame references 155 std::vector<uint8_t>(), // frame references
156 size_t data_size = 0, // size of data 156 size_t data_size = 0, // size of data
157 uint8_t* data = nullptr) { // data pointer 157 uint8_t* data = nullptr) { // data pointer
158 VCMPacket packet; 158 VCMPacket packet;
159 packet.codec = kVideoCodecVP9; 159 packet.codec = kVideoCodecVP9;
160 packet.seqNum = seq_num; 160 packet.seqNum = seq_num;
161 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; 161 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
162 packet.isFirstPacket = first; 162 packet.isFirstPacket = first;
163 packet.markerBit = last; 163 packet.markerBit = last;
164 packet.sizeBytes = data_size; 164 packet.sizeBytes = data_size;
165 packet.dataPtr = data; 165 packet.dataPtr = data;
166 packet.codecSpecificHeader.codecHeader.VP9.inter_layer_predicted = inter; 166 packet.video_header.codecHeader.VP9.inter_layer_predicted = inter;
167 packet.codecSpecificHeader.codecHeader.VP9.flexible_mode = true; 167 packet.video_header.codecHeader.VP9.flexible_mode = true;
168 packet.codecSpecificHeader.codecHeader.VP9.picture_id = pid % (1 << 15); 168 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15);
169 packet.codecSpecificHeader.codecHeader.VP9.temporal_idx = tid; 169 packet.video_header.codecHeader.VP9.temporal_idx = tid;
170 packet.codecSpecificHeader.codecHeader.VP9.spatial_idx = sid; 170 packet.video_header.codecHeader.VP9.spatial_idx = sid;
171 packet.codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = tl0; 171 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0;
172 packet.codecSpecificHeader.codecHeader.VP9.num_ref_pics = refs.size(); 172 packet.video_header.codecHeader.VP9.num_ref_pics = refs.size();
173 for (size_t i = 0; i < refs.size(); ++i) 173 for (size_t i = 0; i < refs.size(); ++i)
174 packet.codecSpecificHeader.codecHeader.VP9.pid_diff[i] = refs[i]; 174 packet.video_header.codecHeader.VP9.pid_diff[i] = refs[i];
175 175
176 EXPECT_TRUE(packet_buffer_->InsertPacket(packet)); 176 EXPECT_TRUE(packet_buffer_->InsertPacket(packet));
177 } 177 }
178 178
179 // Check if a frame with picture id |pid| and spatial index |sidx| has been 179 // Check if a frame with picture id |pid| and spatial index |sidx| has been
180 // delivered from the packet buffer, and if so, if it has the references 180 // delivered from the packet buffer, and if so, if it has the references
181 // specified by |refs|. 181 // specified by |refs|.
182 template <typename... T> 182 template <typename... T>
183 void CheckReferences(uint16_t pid, uint16_t sidx, T... refs) const { 183 void CheckReferences(uint16_t pid, uint16_t sidx, T... refs) const {
184 auto frame_it = frames_from_callback_.find(std::make_pair(pid, sidx)); 184 auto frame_it = frames_from_callback_.find(std::make_pair(pid, sidx));
(...skipping 1263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 CheckReferencesVp9(pid + 5, 1, pid + 4); 1448 CheckReferencesVp9(pid + 5, 1, pid + 4);
1449 CheckReferencesVp9(pid + 6, 0, pid + 4); 1449 CheckReferencesVp9(pid + 6, 0, pid + 4);
1450 CheckReferencesVp9(pid + 6, 1, pid + 5); 1450 CheckReferencesVp9(pid + 6, 1, pid + 5);
1451 CheckReferencesVp9(pid + 7, 1, pid + 6); 1451 CheckReferencesVp9(pid + 7, 1, pid + 6);
1452 CheckReferencesVp9(pid + 8, 0, pid + 6); 1452 CheckReferencesVp9(pid + 8, 0, pid + 6);
1453 CheckReferencesVp9(pid + 8, 1, pid + 7); 1453 CheckReferencesVp9(pid + 8, 1, pid + 7);
1454 } 1454 }
1455 1455
1456 } // namespace video_coding 1456 } // namespace video_coding
1457 } // namespace webrtc 1457 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698