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

Side by Side Diff: webrtc/logging/rtc_event_log/rtc_event_log2text.cc

Issue 2686823002: Add option to print information about configured SSRCs from RTC event logs. (Closed)
Patch Set: Label SSRCs as ssrc or feedback_ssrc in the output. Remove some debug logging. Created 3 years, 10 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
« no previous file with comments | « webrtc/logging/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2017 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 19 matching lines...) Expand all
30 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sdes.h" 30 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sdes.h"
31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h" 31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
32 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sli.h" 32 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sli.h"
33 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h" 33 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h"
34 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h" 34 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h"
35 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" 35 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
36 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" 36 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
37 37
38 namespace { 38 namespace {
39 39
40 DEFINE_bool(noconfig, true, "Excludes stream configurations.");
40 DEFINE_bool(noincoming, false, "Excludes incoming packets."); 41 DEFINE_bool(noincoming, false, "Excludes incoming packets.");
41 DEFINE_bool(nooutgoing, false, "Excludes outgoing packets."); 42 DEFINE_bool(nooutgoing, false, "Excludes outgoing packets.");
42 // TODO(terelius): Note that the media type doesn't work with outgoing packets. 43 // TODO(terelius): Note that the media type doesn't work with outgoing packets.
43 DEFINE_bool(noaudio, false, "Excludes audio packets."); 44 DEFINE_bool(noaudio, false, "Excludes audio packets.");
44 // TODO(terelius): Note that the media type doesn't work with outgoing packets. 45 // TODO(terelius): Note that the media type doesn't work with outgoing packets.
45 DEFINE_bool(novideo, false, "Excludes video packets."); 46 DEFINE_bool(novideo, false, "Excludes video packets.");
46 // TODO(terelius): Note that the media type doesn't work with outgoing packets. 47 // TODO(terelius): Note that the media type doesn't work with outgoing packets.
47 DEFINE_bool(nodata, false, "Excludes data packets."); 48 DEFINE_bool(nodata, false, "Excludes data packets.");
48 DEFINE_bool(nortp, false, "Excludes RTP packets."); 49 DEFINE_bool(nortp, false, "Excludes RTP packets.");
49 DEFINE_bool(nortcp, false, "Excludes RTCP packets."); 50 DEFINE_bool(nortcp, false, "Excludes RTCP packets.");
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 uint64_t log_timestamp, 122 uint64_t log_timestamp,
122 webrtc::PacketDirection direction, 123 webrtc::PacketDirection direction,
123 webrtc::MediaType media_type) { 124 webrtc::MediaType media_type) {
124 webrtc::rtcp::SenderReport sr; 125 webrtc::rtcp::SenderReport sr;
125 if (!sr.Parse(rtcp_block)) 126 if (!sr.Parse(rtcp_block))
126 return; 127 return;
127 if (ExcludePacket(direction, media_type, sr.sender_ssrc())) 128 if (ExcludePacket(direction, media_type, sr.sender_ssrc()))
128 return; 129 return;
129 std::cout << log_timestamp << "\t" 130 std::cout << log_timestamp << "\t"
130 << "RTCP_SR" << StreamInfo(direction, media_type) 131 << "RTCP_SR" << StreamInfo(direction, media_type)
131 << "\tSSRC=" << sr.sender_ssrc() 132 << "\tssrc=" << sr.sender_ssrc()
132 << "\ttimestamp=" << sr.rtp_timestamp() << std::endl; 133 << "\ttimestamp=" << sr.rtp_timestamp() << std::endl;
133 } 134 }
134 135
135 void PrintReceiverReport(const webrtc::rtcp::CommonHeader& rtcp_block, 136 void PrintReceiverReport(const webrtc::rtcp::CommonHeader& rtcp_block,
136 uint64_t log_timestamp, 137 uint64_t log_timestamp,
137 webrtc::PacketDirection direction, 138 webrtc::PacketDirection direction,
138 webrtc::MediaType media_type) { 139 webrtc::MediaType media_type) {
139 webrtc::rtcp::ReceiverReport rr; 140 webrtc::rtcp::ReceiverReport rr;
140 if (!rr.Parse(rtcp_block)) 141 if (!rr.Parse(rtcp_block))
141 return; 142 return;
142 if (ExcludePacket(direction, media_type, rr.sender_ssrc())) 143 if (ExcludePacket(direction, media_type, rr.sender_ssrc()))
143 return; 144 return;
144 std::cout << log_timestamp << "\t" 145 std::cout << log_timestamp << "\t"
145 << "RTCP_RR" << StreamInfo(direction, media_type) 146 << "RTCP_RR" << StreamInfo(direction, media_type)
146 << "\tSSRC=" << rr.sender_ssrc() << std::endl; 147 << "\tssrc=" << rr.sender_ssrc() << std::endl;
147 } 148 }
148 149
149 void PrintXr(const webrtc::rtcp::CommonHeader& rtcp_block, 150 void PrintXr(const webrtc::rtcp::CommonHeader& rtcp_block,
150 uint64_t log_timestamp, 151 uint64_t log_timestamp,
151 webrtc::PacketDirection direction, 152 webrtc::PacketDirection direction,
152 webrtc::MediaType media_type) { 153 webrtc::MediaType media_type) {
153 webrtc::rtcp::ExtendedReports xr; 154 webrtc::rtcp::ExtendedReports xr;
154 if (!xr.Parse(rtcp_block)) 155 if (!xr.Parse(rtcp_block))
155 return; 156 return;
156 if (ExcludePacket(direction, media_type, xr.sender_ssrc())) 157 if (ExcludePacket(direction, media_type, xr.sender_ssrc()))
157 return; 158 return;
158 std::cout << log_timestamp << "\t" 159 std::cout << log_timestamp << "\t"
159 << "RTCP_XR" << StreamInfo(direction, media_type) 160 << "RTCP_XR" << StreamInfo(direction, media_type)
160 << "\tSSRC=" << xr.sender_ssrc() << std::endl; 161 << "\tssrc=" << xr.sender_ssrc() << std::endl;
161 } 162 }
162 163
163 void PrintSdes(const webrtc::rtcp::CommonHeader& rtcp_block, 164 void PrintSdes(const webrtc::rtcp::CommonHeader& rtcp_block,
164 uint64_t log_timestamp, 165 uint64_t log_timestamp,
165 webrtc::PacketDirection direction, 166 webrtc::PacketDirection direction,
166 webrtc::MediaType media_type) { 167 webrtc::MediaType media_type) {
167 std::cout << log_timestamp << "\t" 168 std::cout << log_timestamp << "\t"
168 << "RTCP_SDES" << StreamInfo(direction, media_type) << std::endl; 169 << "RTCP_SDES" << StreamInfo(direction, media_type) << std::endl;
169 RTC_NOTREACHED() << "SDES should have been redacted when writing the log"; 170 RTC_NOTREACHED() << "SDES should have been redacted when writing the log";
170 } 171 }
171 172
172 void PrintBye(const webrtc::rtcp::CommonHeader& rtcp_block, 173 void PrintBye(const webrtc::rtcp::CommonHeader& rtcp_block,
173 uint64_t log_timestamp, 174 uint64_t log_timestamp,
174 webrtc::PacketDirection direction, 175 webrtc::PacketDirection direction,
175 webrtc::MediaType media_type) { 176 webrtc::MediaType media_type) {
176 webrtc::rtcp::Bye bye; 177 webrtc::rtcp::Bye bye;
177 if (!bye.Parse(rtcp_block)) 178 if (!bye.Parse(rtcp_block))
178 return; 179 return;
179 if (ExcludePacket(direction, media_type, bye.sender_ssrc())) 180 if (ExcludePacket(direction, media_type, bye.sender_ssrc()))
180 return; 181 return;
181 std::cout << log_timestamp << "\t" 182 std::cout << log_timestamp << "\t"
182 << "RTCP_BYE" << StreamInfo(direction, media_type) 183 << "RTCP_BYE" << StreamInfo(direction, media_type)
183 << "\tSSRC=" << bye.sender_ssrc() << std::endl; 184 << "\tssrc=" << bye.sender_ssrc() << std::endl;
184 } 185 }
185 186
186 void PrintRtpFeedback(const webrtc::rtcp::CommonHeader& rtcp_block, 187 void PrintRtpFeedback(const webrtc::rtcp::CommonHeader& rtcp_block,
187 uint64_t log_timestamp, 188 uint64_t log_timestamp,
188 webrtc::PacketDirection direction, 189 webrtc::PacketDirection direction,
189 webrtc::MediaType media_type) { 190 webrtc::MediaType media_type) {
190 std::cout << "Rtp feedback found";
191 switch (rtcp_block.fmt()) { 191 switch (rtcp_block.fmt()) {
192 case webrtc::rtcp::Nack::kFeedbackMessageType: { 192 case webrtc::rtcp::Nack::kFeedbackMessageType: {
193 webrtc::rtcp::Nack nack; 193 webrtc::rtcp::Nack nack;
194 if (!nack.Parse(rtcp_block)) 194 if (!nack.Parse(rtcp_block))
195 return; 195 return;
196 if (ExcludePacket(direction, media_type, nack.sender_ssrc())) 196 if (ExcludePacket(direction, media_type, nack.sender_ssrc()))
197 return; 197 return;
198 std::cout << log_timestamp << "\t" 198 std::cout << log_timestamp << "\t"
199 << "RTCP_NACK" << StreamInfo(direction, media_type) 199 << "RTCP_NACK" << StreamInfo(direction, media_type)
200 << "\tSSRC=" << nack.sender_ssrc() << std::endl; 200 << "\tssrc=" << nack.sender_ssrc() << std::endl;
201 break; 201 break;
202 } 202 }
203 case webrtc::rtcp::Tmmbr::kFeedbackMessageType: { 203 case webrtc::rtcp::Tmmbr::kFeedbackMessageType: {
204 webrtc::rtcp::Tmmbr tmmbr; 204 webrtc::rtcp::Tmmbr tmmbr;
205 if (!tmmbr.Parse(rtcp_block)) 205 if (!tmmbr.Parse(rtcp_block))
206 return; 206 return;
207 if (ExcludePacket(direction, media_type, tmmbr.sender_ssrc())) 207 if (ExcludePacket(direction, media_type, tmmbr.sender_ssrc()))
208 return; 208 return;
209 std::cout << log_timestamp << "\t" 209 std::cout << log_timestamp << "\t"
210 << "RTCP_TMMBR" << StreamInfo(direction, media_type) 210 << "RTCP_TMMBR" << StreamInfo(direction, media_type)
211 << "\tSSRC=" << tmmbr.sender_ssrc() << std::endl; 211 << "\tssrc=" << tmmbr.sender_ssrc() << std::endl;
212 break; 212 break;
213 } 213 }
214 case webrtc::rtcp::Tmmbn::kFeedbackMessageType: { 214 case webrtc::rtcp::Tmmbn::kFeedbackMessageType: {
215 webrtc::rtcp::Tmmbn tmmbn; 215 webrtc::rtcp::Tmmbn tmmbn;
216 if (!tmmbn.Parse(rtcp_block)) 216 if (!tmmbn.Parse(rtcp_block))
217 return; 217 return;
218 if (ExcludePacket(direction, media_type, tmmbn.sender_ssrc())) 218 if (ExcludePacket(direction, media_type, tmmbn.sender_ssrc()))
219 return; 219 return;
220 std::cout << log_timestamp << "\t" 220 std::cout << log_timestamp << "\t"
221 << "RTCP_TMMBN" << StreamInfo(direction, media_type) 221 << "RTCP_TMMBN" << StreamInfo(direction, media_type)
222 << "\tSSRC=" << tmmbn.sender_ssrc() << std::endl; 222 << "\tssrc=" << tmmbn.sender_ssrc() << std::endl;
223 break; 223 break;
224 } 224 }
225 case webrtc::rtcp::RapidResyncRequest::kFeedbackMessageType: { 225 case webrtc::rtcp::RapidResyncRequest::kFeedbackMessageType: {
226 webrtc::rtcp::RapidResyncRequest sr_req; 226 webrtc::rtcp::RapidResyncRequest sr_req;
227 if (!sr_req.Parse(rtcp_block)) 227 if (!sr_req.Parse(rtcp_block))
228 return; 228 return;
229 if (ExcludePacket(direction, media_type, sr_req.sender_ssrc())) 229 if (ExcludePacket(direction, media_type, sr_req.sender_ssrc()))
230 return; 230 return;
231 std::cout << log_timestamp << "\t" 231 std::cout << log_timestamp << "\t"
232 << "RTCP_SRREQ" << StreamInfo(direction, media_type) 232 << "RTCP_SRREQ" << StreamInfo(direction, media_type)
233 << "\tSSRC=" << sr_req.sender_ssrc() << std::endl; 233 << "\tssrc=" << sr_req.sender_ssrc() << std::endl;
234 break; 234 break;
235 } 235 }
236 case webrtc::rtcp::TransportFeedback::kFeedbackMessageType: { 236 case webrtc::rtcp::TransportFeedback::kFeedbackMessageType: {
237 webrtc::rtcp::TransportFeedback transport_feedback; 237 webrtc::rtcp::TransportFeedback transport_feedback;
238 if (!transport_feedback.Parse(rtcp_block)) 238 if (!transport_feedback.Parse(rtcp_block))
239 return; 239 return;
240 if (ExcludePacket(direction, media_type, 240 if (ExcludePacket(direction, media_type,
241 transport_feedback.sender_ssrc())) 241 transport_feedback.sender_ssrc()))
242 return; 242 return;
243 std::cout << log_timestamp << "\t" 243 std::cout << log_timestamp << "\t"
244 << "RTCP_NEWFB" << StreamInfo(direction, media_type) 244 << "RTCP_NEWFB" << StreamInfo(direction, media_type)
245 << "\tSSRC=" << transport_feedback.sender_ssrc() << std::endl; 245 << "\tssrc=" << transport_feedback.sender_ssrc() << std::endl;
246 break; 246 break;
247 } 247 }
248 default: 248 default:
249 RTC_DCHECK(false);
250 break; 249 break;
251 } 250 }
252 } 251 }
253 252
254 void PrintPsFeedback(const webrtc::rtcp::CommonHeader& rtcp_block, 253 void PrintPsFeedback(const webrtc::rtcp::CommonHeader& rtcp_block,
255 uint64_t log_timestamp, 254 uint64_t log_timestamp,
256 webrtc::PacketDirection direction, 255 webrtc::PacketDirection direction,
257 webrtc::MediaType media_type) { 256 webrtc::MediaType media_type) {
258 switch (rtcp_block.fmt()) { 257 switch (rtcp_block.fmt()) {
259 case webrtc::rtcp::Pli::kFeedbackMessageType: { 258 case webrtc::rtcp::Pli::kFeedbackMessageType: {
260 webrtc::rtcp::Pli pli; 259 webrtc::rtcp::Pli pli;
261 if (!pli.Parse(rtcp_block)) 260 if (!pli.Parse(rtcp_block))
262 return; 261 return;
263 if (ExcludePacket(direction, media_type, pli.sender_ssrc())) 262 if (ExcludePacket(direction, media_type, pli.sender_ssrc()))
264 return; 263 return;
265 std::cout << log_timestamp << "\t" 264 std::cout << log_timestamp << "\t"
266 << "RTCP_PLI" << StreamInfo(direction, media_type) 265 << "RTCP_PLI" << StreamInfo(direction, media_type)
267 << "\tSSRC=" << pli.sender_ssrc() << std::endl; 266 << "\tssrc=" << pli.sender_ssrc() << std::endl;
268 break; 267 break;
269 } 268 }
270 case webrtc::rtcp::Sli::kFeedbackMessageType: { 269 case webrtc::rtcp::Sli::kFeedbackMessageType: {
271 webrtc::rtcp::Sli sli; 270 webrtc::rtcp::Sli sli;
272 if (!sli.Parse(rtcp_block)) 271 if (!sli.Parse(rtcp_block))
273 return; 272 return;
274 if (ExcludePacket(direction, media_type, sli.sender_ssrc())) 273 if (ExcludePacket(direction, media_type, sli.sender_ssrc()))
275 return; 274 return;
276 std::cout << log_timestamp << "\t" 275 std::cout << log_timestamp << "\t"
277 << "RTCP_SLI" << StreamInfo(direction, media_type) 276 << "RTCP_SLI" << StreamInfo(direction, media_type)
278 << "\tSSRC=" << sli.sender_ssrc() << std::endl; 277 << "\tssrc=" << sli.sender_ssrc() << std::endl;
279 break; 278 break;
280 } 279 }
281 case webrtc::rtcp::Rpsi::kFeedbackMessageType: { 280 case webrtc::rtcp::Rpsi::kFeedbackMessageType: {
282 webrtc::rtcp::Rpsi rpsi; 281 webrtc::rtcp::Rpsi rpsi;
283 if (!rpsi.Parse(rtcp_block)) 282 if (!rpsi.Parse(rtcp_block))
284 return; 283 return;
285 if (ExcludePacket(direction, media_type, rpsi.sender_ssrc())) 284 if (ExcludePacket(direction, media_type, rpsi.sender_ssrc()))
286 return; 285 return;
287 std::cout << log_timestamp << "\t" 286 std::cout << log_timestamp << "\t"
288 << "RTCP_RPSI" << StreamInfo(direction, media_type) 287 << "RTCP_RPSI" << StreamInfo(direction, media_type)
289 << "\tSSRC=" << rpsi.sender_ssrc() << std::endl; 288 << "\tssrc=" << rpsi.sender_ssrc() << std::endl;
290 break; 289 break;
291 } 290 }
292 case webrtc::rtcp::Fir::kFeedbackMessageType: { 291 case webrtc::rtcp::Fir::kFeedbackMessageType: {
293 webrtc::rtcp::Fir fir; 292 webrtc::rtcp::Fir fir;
294 if (!fir.Parse(rtcp_block)) 293 if (!fir.Parse(rtcp_block))
295 return; 294 return;
296 if (ExcludePacket(direction, media_type, fir.sender_ssrc())) 295 if (ExcludePacket(direction, media_type, fir.sender_ssrc()))
297 return; 296 return;
298 std::cout << log_timestamp << "\t" 297 std::cout << log_timestamp << "\t"
299 << "RTCP_FIR" << StreamInfo(direction, media_type) 298 << "RTCP_FIR" << StreamInfo(direction, media_type)
300 << "\tSSRC=" << fir.sender_ssrc() << std::endl; 299 << "\tssrc=" << fir.sender_ssrc() << std::endl;
301 break; 300 break;
302 } 301 }
303 case webrtc::rtcp::Remb::kFeedbackMessageType: { 302 case webrtc::rtcp::Remb::kFeedbackMessageType: {
304 webrtc::rtcp::Remb remb; 303 webrtc::rtcp::Remb remb;
305 if (!remb.Parse(rtcp_block)) 304 if (!remb.Parse(rtcp_block))
306 return; 305 return;
307 if (ExcludePacket(direction, media_type, remb.sender_ssrc())) 306 if (ExcludePacket(direction, media_type, remb.sender_ssrc()))
308 return; 307 return;
309 std::cout << log_timestamp << "\t" 308 std::cout << log_timestamp << "\t"
310 << "RTCP_REMB" << StreamInfo(direction, media_type) 309 << "RTCP_REMB" << StreamInfo(direction, media_type)
311 << "\tSSRC=" << remb.sender_ssrc() << std::endl; 310 << "\tssrc=" << remb.sender_ssrc() << std::endl;
312 break; 311 break;
313 } 312 }
314 default: 313 default:
315 break; 314 break;
316 } 315 }
317 } 316 }
318 317
319 } // namespace 318 } // namespace
320 319
321 // This utility will print basic information about each packet to stdout. 320 // This utility will print basic information about each packet to stdout.
(...skipping 20 matching lines...) Expand all
342 if (!FLAGS_ssrc.empty()) 341 if (!FLAGS_ssrc.empty())
343 RTC_CHECK(ParseSsrc(FLAGS_ssrc)) << "Flag verification has failed."; 342 RTC_CHECK(ParseSsrc(FLAGS_ssrc)) << "Flag verification has failed.";
344 343
345 webrtc::ParsedRtcEventLog parsed_stream; 344 webrtc::ParsedRtcEventLog parsed_stream;
346 if (!parsed_stream.ParseFile(input_file)) { 345 if (!parsed_stream.ParseFile(input_file)) {
347 std::cerr << "Error while parsing input file: " << input_file << std::endl; 346 std::cerr << "Error while parsing input file: " << input_file << std::endl;
348 return -1; 347 return -1;
349 } 348 }
350 349
351 for (size_t i = 0; i < parsed_stream.GetNumberOfEvents(); i++) { 350 for (size_t i = 0; i < parsed_stream.GetNumberOfEvents(); i++) {
351 if (!FLAGS_noconfig && !FLAGS_novideo && !FLAGS_noincoming &&
352 parsed_stream.GetEventType(i) ==
353 webrtc::ParsedRtcEventLog::VIDEO_RECEIVER_CONFIG_EVENT) {
354 webrtc::VideoReceiveStream::Config config(nullptr);
355 parsed_stream.GetVideoReceiveConfig(i, &config);
356 std::cout << parsed_stream.GetTimestamp(i) << "\tVIDEO_RECV_CONFIG"
357 << "\tssrc=" << config.rtp.remote_ssrc
358 << "\tfeedback_ssrc=" << config.rtp.local_ssrc << std::endl;
359 }
360 if (!FLAGS_noconfig && !FLAGS_novideo && !FLAGS_nooutgoing &&
361 parsed_stream.GetEventType(i) ==
362 webrtc::ParsedRtcEventLog::VIDEO_SENDER_CONFIG_EVENT) {
363 webrtc::VideoSendStream::Config config(nullptr);
364 parsed_stream.GetVideoSendConfig(i, &config);
365 std::cout << parsed_stream.GetTimestamp(i) << "\tVIDEO_SEND_CONFIG";
366 std::cout << "\tssrcs=";
367 for (const auto& ssrc : config.rtp.ssrcs)
368 std::cout << ssrc << ',';
369 std::cout << "\trtx_ssrcs=";
370 for (const auto& ssrc : config.rtp.rtx.ssrcs)
371 std::cout << ssrc << ',';
372 std::cout << std::endl;
373 }
374 if (!FLAGS_noconfig && !FLAGS_noaudio && !FLAGS_noincoming &&
375 parsed_stream.GetEventType(i) ==
376 webrtc::ParsedRtcEventLog::AUDIO_RECEIVER_CONFIG_EVENT) {
377 webrtc::AudioReceiveStream::Config config;
378 parsed_stream.GetAudioReceiveConfig(i, &config);
379 std::cout << parsed_stream.GetTimestamp(i) << "\tAUDIO_RECV_CONFIG"
380 << "\tssrc=" << config.rtp.remote_ssrc
381 << "\tfeedback_ssrc=" << config.rtp.local_ssrc << std::endl;
382 }
383 if (!FLAGS_noconfig && !FLAGS_noaudio && !FLAGS_nooutgoing &&
384 parsed_stream.GetEventType(i) ==
385 webrtc::ParsedRtcEventLog::AUDIO_SENDER_CONFIG_EVENT) {
386 webrtc::AudioSendStream::Config config(nullptr);
387 parsed_stream.GetAudioSendConfig(i, &config);
388 std::cout << parsed_stream.GetTimestamp(i) << "\tAUDIO_SEND_CONFIG"
389 << "\tssrc=" << config.rtp.ssrc << std::endl;
390 }
352 if (!FLAGS_nortp && 391 if (!FLAGS_nortp &&
353 parsed_stream.GetEventType(i) == webrtc::ParsedRtcEventLog::RTP_EVENT) { 392 parsed_stream.GetEventType(i) == webrtc::ParsedRtcEventLog::RTP_EVENT) {
354 size_t header_length; 393 size_t header_length;
355 size_t total_length; 394 size_t total_length;
356 uint8_t header[IP_PACKET_SIZE]; 395 uint8_t header[IP_PACKET_SIZE];
357 webrtc::PacketDirection direction; 396 webrtc::PacketDirection direction;
358 webrtc::MediaType media_type; 397 webrtc::MediaType media_type;
359 parsed_stream.GetRtpHeader(i, &direction, &media_type, header, 398 parsed_stream.GetRtpHeader(i, &direction, &media_type, header,
360 &header_length, &total_length); 399 &header_length, &total_length);
361 400
362 // Parse header to get SSRC and RTP time. 401 // Parse header to get SSRC and RTP time.
363 webrtc::RtpUtility::RtpHeaderParser rtp_parser(header, header_length); 402 webrtc::RtpUtility::RtpHeaderParser rtp_parser(header, header_length);
364 webrtc::RTPHeader parsed_header; 403 webrtc::RTPHeader parsed_header;
365 rtp_parser.Parse(&parsed_header); 404 rtp_parser.Parse(&parsed_header);
366 405
367 if (ExcludePacket(direction, media_type, parsed_header.ssrc)) 406 if (ExcludePacket(direction, media_type, parsed_header.ssrc))
368 continue; 407 continue;
369 408
370 std::cout << parsed_stream.GetTimestamp(i) << "\tRTP" 409 std::cout << parsed_stream.GetTimestamp(i) << "\tRTP"
371 << StreamInfo(direction, media_type) 410 << StreamInfo(direction, media_type)
372 << "\tSSRC=" << parsed_header.ssrc 411 << "\tssrc=" << parsed_header.ssrc
373 << "\ttimestamp=" << parsed_header.timestamp << std::endl; 412 << "\ttimestamp=" << parsed_header.timestamp << std::endl;
374 } 413 }
375 if (!FLAGS_nortcp && 414 if (!FLAGS_nortcp &&
376 parsed_stream.GetEventType(i) == 415 parsed_stream.GetEventType(i) ==
377 webrtc::ParsedRtcEventLog::RTCP_EVENT) { 416 webrtc::ParsedRtcEventLog::RTCP_EVENT) {
378 size_t length; 417 size_t length;
379 uint8_t packet[IP_PACKET_SIZE]; 418 uint8_t packet[IP_PACKET_SIZE];
380 webrtc::PacketDirection direction; 419 webrtc::PacketDirection direction;
381 webrtc::MediaType media_type; 420 webrtc::MediaType media_type;
382 parsed_stream.GetRtcpPacket(i, &direction, &media_type, packet, &length); 421 parsed_stream.GetRtcpPacket(i, &direction, &media_type, packet, &length);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 PrintPsFeedback(rtcp_block, log_timestamp, direction, media_type); 455 PrintPsFeedback(rtcp_block, log_timestamp, direction, media_type);
417 break; 456 break;
418 default: 457 default:
419 break; 458 break;
420 } 459 }
421 } 460 }
422 } 461 }
423 } 462 }
424 return 0; 463 return 0;
425 } 464 }
OLDNEW
« no previous file with comments | « webrtc/logging/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698