Ensure the RtcEventLog parser is backwards compatible

The old video send stream configs could contain multiple SSRCs and RTX SSRCs (in case of simulcast). To ensure that the RtcEventLog parser is backwards compatible, we have to return one config for every SSRC.

Also update the parsing functions for the other config types to return the config instead of passing in an output parameter.

BUG=webrtc:7731

Review-Url: https://codereview.webrtc.org/2912113002
Cr-Commit-Position: refs/heads/master@{#18343}
This commit is contained in:
terelius
2017-05-31 02:03:16 -07:00
committed by Commit Bot
parent f93f5a4a99
commit 8fbc765421
5 changed files with 131 additions and 133 deletions

View File

@ -331,8 +331,7 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log)
switch (parsed_log_.GetEventType(i)) {
case ParsedRtcEventLog::VIDEO_RECEIVER_CONFIG_EVENT: {
rtclog::StreamConfig config;
parsed_log_.GetVideoReceiveConfig(i, &config);
rtclog::StreamConfig config = parsed_log_.GetVideoReceiveConfig(i);
StreamId stream(config.remote_ssrc, kIncomingPacket);
extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
video_ssrcs_.insert(stream);
@ -344,29 +343,30 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log)
break;
}
case ParsedRtcEventLog::VIDEO_SENDER_CONFIG_EVENT: {
rtclog::StreamConfig config;
parsed_log_.GetVideoSendConfig(i, &config);
StreamId stream(config.local_ssrc, kOutgoingPacket);
extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
video_ssrcs_.insert(stream);
StreamId rtx_stream(config.rtx_ssrc, kOutgoingPacket);
extension_maps[rtx_stream] =
RtpHeaderExtensionMap(config.rtp_extensions);
video_ssrcs_.insert(rtx_stream);
rtx_ssrcs_.insert(rtx_stream);
std::vector<rtclog::StreamConfig> configs =
parsed_log_.GetVideoSendConfig(i);
for (size_t j = 0; j < configs.size(); j++) {
StreamId stream(configs[i].local_ssrc, kOutgoingPacket);
extension_maps[stream] =
RtpHeaderExtensionMap(configs[i].rtp_extensions);
video_ssrcs_.insert(stream);
StreamId rtx_stream(configs[i].rtx_ssrc, kOutgoingPacket);
extension_maps[rtx_stream] =
RtpHeaderExtensionMap(configs[i].rtp_extensions);
video_ssrcs_.insert(rtx_stream);
rtx_ssrcs_.insert(rtx_stream);
}
break;
}
case ParsedRtcEventLog::AUDIO_RECEIVER_CONFIG_EVENT: {
rtclog::StreamConfig config;
parsed_log_.GetAudioReceiveConfig(i, &config);
rtclog::StreamConfig config = parsed_log_.GetAudioReceiveConfig(i);
StreamId stream(config.remote_ssrc, kIncomingPacket);
extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
audio_ssrcs_.insert(stream);
break;
}
case ParsedRtcEventLog::AUDIO_SENDER_CONFIG_EVENT: {
rtclog::StreamConfig config;
parsed_log_.GetAudioSendConfig(i, &config);
rtclog::StreamConfig config = parsed_log_.GetAudioSendConfig(i);
StreamId stream(config.local_ssrc, kOutgoingPacket);
extension_maps[stream] = RtpHeaderExtensionMap(config.rtp_extensions);
audio_ssrcs_.insert(stream);