OLD | NEW |
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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 } | 156 } |
157 if ((type == rtclog::Event::BWE_PROBE_RESULT_EVENT) != | 157 if ((type == rtclog::Event::BWE_PROBE_RESULT_EVENT) != |
158 event.has_probe_result()) { | 158 event.has_probe_result()) { |
159 return ::testing::AssertionFailure() | 159 return ::testing::AssertionFailure() |
160 << "Event of type " << type << " has " | 160 << "Event of type " << type << " has " |
161 << (event.has_probe_result() ? "" : "no ") << "bwe probe result"; | 161 << (event.has_probe_result() ? "" : "no ") << "bwe probe result"; |
162 } | 162 } |
163 return ::testing::AssertionSuccess(); | 163 return ::testing::AssertionSuccess(); |
164 } | 164 } |
165 | 165 |
| 166 void VerifyStreamConfigsAreEqual(const rtclog::StreamConfig& config_1, |
| 167 const rtclog::StreamConfig& config_2) { |
| 168 EXPECT_EQ(config_1.remote_ssrc, config_2.remote_ssrc); |
| 169 EXPECT_EQ(config_1.local_ssrc, config_2.local_ssrc); |
| 170 EXPECT_EQ(config_1.rtx_ssrc, config_2.rtx_ssrc); |
| 171 EXPECT_EQ(config_1.rtcp_mode, config_2.rtcp_mode); |
| 172 EXPECT_EQ(config_1.remb, config_2.remb); |
| 173 |
| 174 ASSERT_EQ(config_1.rtp_extensions.size(), config_2.rtp_extensions.size()); |
| 175 for (size_t i = 0; i < config_2.rtp_extensions.size(); i++) { |
| 176 EXPECT_EQ(config_1.rtp_extensions[i].uri, config_2.rtp_extensions[i].uri); |
| 177 EXPECT_EQ(config_1.rtp_extensions[i].id, config_2.rtp_extensions[i].id); |
| 178 } |
| 179 ASSERT_EQ(config_1.codecs.size(), config_2.codecs.size()); |
| 180 for (size_t i = 0; i < config_2.codecs.size(); i++) { |
| 181 EXPECT_EQ(config_1.codecs[i].payload_name, config_2.codecs[i].payload_name); |
| 182 EXPECT_EQ(config_1.codecs[i].payload_type, config_2.codecs[i].payload_type); |
| 183 EXPECT_EQ(config_1.codecs[i].rtx_payload_type, |
| 184 config_2.codecs[i].rtx_payload_type); |
| 185 } |
| 186 } |
| 187 |
166 void RtcEventLogTestHelper::VerifyVideoReceiveStreamConfig( | 188 void RtcEventLogTestHelper::VerifyVideoReceiveStreamConfig( |
167 const ParsedRtcEventLog& parsed_log, | 189 const ParsedRtcEventLog& parsed_log, |
168 size_t index, | 190 size_t index, |
169 const VideoReceiveStream::Config& config) { | 191 const rtclog::StreamConfig& config) { |
170 const rtclog::Event& event = parsed_log.events_[index]; | 192 const rtclog::Event& event = parsed_log.events_[index]; |
171 ASSERT_TRUE(IsValidBasicEvent(event)); | 193 ASSERT_TRUE(IsValidBasicEvent(event)); |
172 ASSERT_EQ(rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT, event.type()); | 194 ASSERT_EQ(rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT, event.type()); |
173 const rtclog::VideoReceiveConfig& receiver_config = | 195 const rtclog::VideoReceiveConfig& receiver_config = |
174 event.video_receiver_config(); | 196 event.video_receiver_config(); |
175 // Check SSRCs. | 197 // Check SSRCs. |
176 ASSERT_TRUE(receiver_config.has_remote_ssrc()); | 198 ASSERT_TRUE(receiver_config.has_remote_ssrc()); |
177 EXPECT_EQ(config.rtp.remote_ssrc, receiver_config.remote_ssrc()); | 199 EXPECT_EQ(config.remote_ssrc, receiver_config.remote_ssrc()); |
178 ASSERT_TRUE(receiver_config.has_local_ssrc()); | 200 ASSERT_TRUE(receiver_config.has_local_ssrc()); |
179 EXPECT_EQ(config.rtp.local_ssrc, receiver_config.local_ssrc()); | 201 EXPECT_EQ(config.local_ssrc, receiver_config.local_ssrc()); |
180 // Check RTCP settings. | 202 // Check RTCP settings. |
181 ASSERT_TRUE(receiver_config.has_rtcp_mode()); | 203 ASSERT_TRUE(receiver_config.has_rtcp_mode()); |
182 if (config.rtp.rtcp_mode == RtcpMode::kCompound) { | 204 if (config.rtcp_mode == RtcpMode::kCompound) { |
183 EXPECT_EQ(rtclog::VideoReceiveConfig::RTCP_COMPOUND, | 205 EXPECT_EQ(rtclog::VideoReceiveConfig::RTCP_COMPOUND, |
184 receiver_config.rtcp_mode()); | 206 receiver_config.rtcp_mode()); |
185 } else { | 207 } else { |
186 EXPECT_EQ(rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE, | 208 EXPECT_EQ(rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE, |
187 receiver_config.rtcp_mode()); | 209 receiver_config.rtcp_mode()); |
188 } | 210 } |
189 ASSERT_TRUE(receiver_config.has_remb()); | 211 ASSERT_TRUE(receiver_config.has_remb()); |
190 EXPECT_EQ(config.rtp.remb, receiver_config.remb()); | 212 EXPECT_EQ(config.remb, receiver_config.remb()); |
191 // Check RTX map. | 213 // Check RTX map. |
192 ASSERT_EQ(static_cast<int>(config.rtp.rtx_payload_types.size()), | |
193 receiver_config.rtx_map_size()); | |
194 for (const rtclog::RtxMap& rtx_map : receiver_config.rtx_map()) { | 214 for (const rtclog::RtxMap& rtx_map : receiver_config.rtx_map()) { |
195 ASSERT_TRUE(rtx_map.has_payload_type()); | 215 ASSERT_TRUE(rtx_map.has_payload_type()); |
196 ASSERT_TRUE(rtx_map.has_config()); | 216 ASSERT_TRUE(rtx_map.has_config()); |
197 EXPECT_EQ(1u, config.rtp.rtx_payload_types.count(rtx_map.payload_type())); | |
198 const rtclog::RtxConfig& rtx_config = rtx_map.config(); | 217 const rtclog::RtxConfig& rtx_config = rtx_map.config(); |
199 ASSERT_TRUE(rtx_config.has_rtx_ssrc()); | 218 ASSERT_TRUE(rtx_config.has_rtx_ssrc()); |
200 ASSERT_TRUE(rtx_config.has_rtx_payload_type()); | 219 ASSERT_TRUE(rtx_config.has_rtx_payload_type()); |
201 EXPECT_EQ(config.rtp.rtx_ssrc, rtx_config.rtx_ssrc()); | 220 |
202 EXPECT_EQ(config.rtp.rtx_payload_types.at(rtx_map.payload_type()), | 221 EXPECT_EQ(config.rtx_ssrc, rtx_config.rtx_ssrc()); |
203 rtx_config.rtx_payload_type()); | 222 auto codec_found = |
| 223 std::find_if(config.codecs.begin(), config.codecs.end(), |
| 224 [&rtx_map](const rtclog::StreamConfig::Codec& codec) { |
| 225 return rtx_map.payload_type() == codec.payload_type; |
| 226 }); |
| 227 ASSERT_TRUE(codec_found != config.codecs.end()); |
| 228 EXPECT_EQ(rtx_config.rtx_payload_type(), codec_found->rtx_payload_type); |
204 } | 229 } |
205 // Check header extensions. | 230 // Check header extensions. |
206 ASSERT_EQ(static_cast<int>(config.rtp.extensions.size()), | 231 ASSERT_EQ(static_cast<int>(config.rtp_extensions.size()), |
207 receiver_config.header_extensions_size()); | 232 receiver_config.header_extensions_size()); |
208 for (int i = 0; i < receiver_config.header_extensions_size(); i++) { | 233 for (int i = 0; i < receiver_config.header_extensions_size(); i++) { |
209 ASSERT_TRUE(receiver_config.header_extensions(i).has_name()); | 234 ASSERT_TRUE(receiver_config.header_extensions(i).has_name()); |
210 ASSERT_TRUE(receiver_config.header_extensions(i).has_id()); | 235 ASSERT_TRUE(receiver_config.header_extensions(i).has_id()); |
211 const std::string& name = receiver_config.header_extensions(i).name(); | 236 const std::string& name = receiver_config.header_extensions(i).name(); |
212 int id = receiver_config.header_extensions(i).id(); | 237 int id = receiver_config.header_extensions(i).id(); |
213 EXPECT_EQ(config.rtp.extensions[i].id, id); | 238 EXPECT_EQ(config.rtp_extensions[i].id, id); |
214 EXPECT_EQ(config.rtp.extensions[i].uri, name); | 239 EXPECT_EQ(config.rtp_extensions[i].uri, name); |
215 } | 240 } |
216 // Check decoders. | 241 // Check decoders. |
217 ASSERT_EQ(static_cast<int>(config.decoders.size()), | 242 ASSERT_EQ(static_cast<int>(config.codecs.size()), |
218 receiver_config.decoders_size()); | 243 receiver_config.decoders_size()); |
219 for (int i = 0; i < receiver_config.decoders_size(); i++) { | 244 for (int i = 0; i < receiver_config.decoders_size(); i++) { |
220 ASSERT_TRUE(receiver_config.decoders(i).has_name()); | 245 ASSERT_TRUE(receiver_config.decoders(i).has_name()); |
221 ASSERT_TRUE(receiver_config.decoders(i).has_payload_type()); | 246 ASSERT_TRUE(receiver_config.decoders(i).has_payload_type()); |
222 const std::string& decoder_name = receiver_config.decoders(i).name(); | 247 const std::string& decoder_name = receiver_config.decoders(i).name(); |
223 int decoder_type = receiver_config.decoders(i).payload_type(); | 248 int decoder_type = receiver_config.decoders(i).payload_type(); |
224 EXPECT_EQ(config.decoders[i].payload_name, decoder_name); | 249 EXPECT_EQ(config.codecs[i].payload_name, decoder_name); |
225 EXPECT_EQ(config.decoders[i].payload_type, decoder_type); | 250 EXPECT_EQ(config.codecs[i].payload_type, decoder_type); |
226 } | 251 } |
227 | 252 |
228 // Check consistency of the parser. | 253 // Check consistency of the parser. |
229 VideoReceiveStream::Config parsed_config(nullptr); | 254 rtclog::StreamConfig parsed_config; |
230 parsed_log.GetVideoReceiveConfig(index, &parsed_config); | 255 parsed_log.GetVideoReceiveConfig(index, &parsed_config); |
231 EXPECT_EQ(config.rtp.remote_ssrc, parsed_config.rtp.remote_ssrc); | 256 VerifyStreamConfigsAreEqual(config, parsed_config); |
232 EXPECT_EQ(config.rtp.local_ssrc, parsed_config.rtp.local_ssrc); | |
233 // Check RTCP settings. | |
234 EXPECT_EQ(config.rtp.rtcp_mode, parsed_config.rtp.rtcp_mode); | |
235 EXPECT_EQ(config.rtp.remb, parsed_config.rtp.remb); | |
236 // Check RTX map. | |
237 EXPECT_EQ(config.rtp.rtx_ssrc, parsed_config.rtp.rtx_ssrc); | |
238 EXPECT_EQ(config.rtp.rtx_payload_types.size(), | |
239 parsed_config.rtp.rtx_payload_types.size()); | |
240 for (const auto& kv : config.rtp.rtx_payload_types) { | |
241 auto parsed_kv = parsed_config.rtp.rtx_payload_types.find(kv.first); | |
242 EXPECT_EQ(kv.first, parsed_kv->first); | |
243 EXPECT_EQ(kv.second, parsed_kv->second); | |
244 } | |
245 // Check header extensions. | |
246 EXPECT_EQ(config.rtp.extensions.size(), parsed_config.rtp.extensions.size()); | |
247 for (size_t i = 0; i < parsed_config.rtp.extensions.size(); i++) { | |
248 EXPECT_EQ(config.rtp.extensions[i].uri, | |
249 parsed_config.rtp.extensions[i].uri); | |
250 EXPECT_EQ(config.rtp.extensions[i].id, parsed_config.rtp.extensions[i].id); | |
251 } | |
252 // Check decoders. | |
253 EXPECT_EQ(config.decoders.size(), parsed_config.decoders.size()); | |
254 for (size_t i = 0; i < parsed_config.decoders.size(); i++) { | |
255 EXPECT_EQ(config.decoders[i].payload_name, | |
256 parsed_config.decoders[i].payload_name); | |
257 EXPECT_EQ(config.decoders[i].payload_type, | |
258 parsed_config.decoders[i].payload_type); | |
259 } | |
260 } | 257 } |
261 | 258 |
262 void RtcEventLogTestHelper::VerifyVideoSendStreamConfig( | 259 void RtcEventLogTestHelper::VerifyVideoSendStreamConfig( |
263 const ParsedRtcEventLog& parsed_log, | 260 const ParsedRtcEventLog& parsed_log, |
264 size_t index, | 261 size_t index, |
265 const VideoSendStream::Config& config) { | 262 const VideoSendStream::Config& config) { |
266 const rtclog::Event& event = parsed_log.events_[index]; | 263 const rtclog::Event& event = parsed_log.events_[index]; |
267 ASSERT_TRUE(IsValidBasicEvent(event)); | 264 ASSERT_TRUE(IsValidBasicEvent(event)); |
268 ASSERT_EQ(rtclog::Event::VIDEO_SENDER_CONFIG_EVENT, event.type()); | 265 ASSERT_EQ(rtclog::Event::VIDEO_SENDER_CONFIG_EVENT, event.type()); |
269 const rtclog::VideoSendConfig& sender_config = event.video_sender_config(); | 266 const rtclog::VideoSendConfig& sender_config = event.video_sender_config(); |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 ASSERT_TRUE(bwe_event.has_id()); | 630 ASSERT_TRUE(bwe_event.has_id()); |
634 EXPECT_EQ(id, bwe_event.id()); | 631 EXPECT_EQ(id, bwe_event.id()); |
635 ASSERT_TRUE(bwe_event.has_result()); | 632 ASSERT_TRUE(bwe_event.has_result()); |
636 EXPECT_EQ(GetProbeResultType(failure_reason), bwe_event.result()); | 633 EXPECT_EQ(GetProbeResultType(failure_reason), bwe_event.result()); |
637 ASSERT_FALSE(bwe_event.has_bitrate_bps()); | 634 ASSERT_FALSE(bwe_event.has_bitrate_bps()); |
638 | 635 |
639 // TODO(philipel): Verify the parser when parsing has been implemented. | 636 // TODO(philipel): Verify the parser when parsing has been implemented. |
640 } | 637 } |
641 | 638 |
642 } // namespace webrtc | 639 } // namespace webrtc |
OLD | NEW |