diff --git a/logging/rtc_event_log/rtc_event_log_parser_new.cc b/logging/rtc_event_log/rtc_event_log_parser_new.cc index 0107722baa..cadea745f9 100644 --- a/logging/rtc_event_log/rtc_event_log_parser_new.cc +++ b/logging/rtc_event_log/rtc_event_log_parser_new.cc @@ -1014,13 +1014,15 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT: { rtclog::StreamConfig config = GetVideoReceiveConfig(event); video_recv_configs_.emplace_back(GetTimestamp(event), config); - incoming_rtp_extensions_maps_[config.remote_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); - // TODO(terelius): I don't understand the reason for configuring header - // extensions for the local SSRC. I think it should be removed, but for - // now I want to preserve the previous functionality. - incoming_rtp_extensions_maps_[config.local_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); + if (!config.rtp_extensions.empty()) { + incoming_rtp_extensions_maps_[config.remote_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + // TODO(terelius): I don't understand the reason for configuring header + // extensions for the local SSRC. I think it should be removed, but for + // now I want to preserve the previous functionality. + incoming_rtp_extensions_maps_[config.local_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + } incoming_video_ssrcs_.insert(config.remote_ssrc); incoming_video_ssrcs_.insert(config.rtx_ssrc); incoming_rtx_ssrcs_.insert(config.rtx_ssrc); @@ -1030,10 +1032,12 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { std::vector configs = GetVideoSendConfig(event); video_send_configs_.emplace_back(GetTimestamp(event), configs); for (const auto& config : configs) { - outgoing_rtp_extensions_maps_[config.local_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); - outgoing_rtp_extensions_maps_[config.rtx_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); + if (!config.rtp_extensions.empty()) { + outgoing_rtp_extensions_maps_[config.local_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + outgoing_rtp_extensions_maps_[config.rtx_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + } outgoing_video_ssrcs_.insert(config.local_ssrc); outgoing_video_ssrcs_.insert(config.rtx_ssrc); outgoing_rtx_ssrcs_.insert(config.rtx_ssrc); @@ -1043,18 +1047,22 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) { case rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT: { rtclog::StreamConfig config = GetAudioReceiveConfig(event); audio_recv_configs_.emplace_back(GetTimestamp(event), config); - incoming_rtp_extensions_maps_[config.remote_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); - incoming_rtp_extensions_maps_[config.local_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); + if (!config.rtp_extensions.empty()) { + incoming_rtp_extensions_maps_[config.remote_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + incoming_rtp_extensions_maps_[config.local_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + } incoming_audio_ssrcs_.insert(config.remote_ssrc); break; } case rtclog::Event::AUDIO_SENDER_CONFIG_EVENT: { rtclog::StreamConfig config = GetAudioSendConfig(event); audio_send_configs_.emplace_back(GetTimestamp(event), config); - outgoing_rtp_extensions_maps_[config.local_ssrc] = - RtpHeaderExtensionMap(config.rtp_extensions); + if (!config.rtp_extensions.empty()) { + outgoing_rtp_extensions_maps_[config.local_ssrc] = + RtpHeaderExtensionMap(config.rtp_extensions); + } outgoing_audio_ssrcs_.insert(config.local_ssrc); break; }