From 4aecc5885a671200f2b3a33c51008cc635132dc4 Mon Sep 17 00:00:00 2001 From: danilchap Date: Tue, 15 Nov 2016 09:21:00 -0800 Subject: [PATCH] Simplify creating RtpHeaderExtensionMap in EventLogAnalyzer RtpHeaderExtensionMap constructor accept array view instead of initializer_list Remove now unused RtpHeaderExtensionMap::Erase BUG=webrtc:1994 Review-Url: https://codereview.webrtc.org/2501893004 Cr-Commit-Position: refs/heads/master@{#15090} --- .../rtp_rtcp/source/rtp_header_extension.cc | 2 +- .../rtp_rtcp/source/rtp_header_extension.h | 6 +-- .../source/rtp_header_extension_unittest.cc | 7 +++- webrtc/tools/event_log_visualizer/analyzer.cc | 38 ++++++------------- 4 files changed, 20 insertions(+), 33 deletions(-) diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc index b7c7306275..67e62c272c 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc @@ -72,7 +72,7 @@ RtpHeaderExtensionMap::RtpHeaderExtensionMap() { } RtpHeaderExtensionMap::RtpHeaderExtensionMap( - std::initializer_list extensions) + rtc::ArrayView extensions) : RtpHeaderExtensionMap() { for (const RtpExtension& extension : extensions) RegisterByUri(extension.id, extension.uri); diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.h b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.h index a8591c77e9..1ec411dbcc 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.h +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.h @@ -11,9 +11,9 @@ #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_HEADER_EXTENSION_H_ #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_HEADER_EXTENSION_H_ -#include #include +#include "webrtc/base/array_view.h" #include "webrtc/base/basictypes.h" #include "webrtc/base/checks.h" #include "webrtc/config.h" @@ -44,7 +44,7 @@ class RtpHeaderExtensionMap { static constexpr uint8_t kInvalidId = 0; RtpHeaderExtensionMap(); - RtpHeaderExtensionMap(std::initializer_list); + explicit RtpHeaderExtensionMap(rtc::ArrayView extensions); template bool Register(uint8_t id) { @@ -73,7 +73,6 @@ class RtpHeaderExtensionMap { size_t GetTotalLengthInBytes() const; // TODO(danilchap): Remove use of the functions below. - void Erase() { *this = RtpHeaderExtensionMap(); } int32_t Register(RTPExtensionType type, uint8_t id) { return RegisterByType(id, type) ? 0 : -1; } @@ -96,6 +95,7 @@ class RtpHeaderExtensionMap { RTPExtensionType types_[kMaxId + 1]; uint8_t ids_[kRtpExtensionNumberOfExtensions]; }; + } // namespace webrtc #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_HEADER_EXTENSION_H_ diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extension_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extension_unittest.cc index 3794e831df..81f0526954 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extension_unittest.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extension_unittest.cc @@ -8,6 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ +#include + #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h" #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" @@ -48,8 +50,9 @@ TEST(RtpHeaderExtensionTest, RegisterWithTrait) { } TEST(RtpHeaderExtensionTest, RegisterDuringContruction) { - const RtpHeaderExtensionMap map = {{TransmissionOffset::kUri, 1}, - {AbsoluteSendTime::kUri, 3}}; + const std::vector config = {{TransmissionOffset::kUri, 1}, + {AbsoluteSendTime::kUri, 3}}; + const RtpHeaderExtensionMap map(config); EXPECT_EQ(1, map.GetId(TransmissionOffset::kId)); EXPECT_EQ(3, map.GetId(AbsoluteSendTime::kId)); diff --git a/webrtc/tools/event_log_visualizer/analyzer.cc b/webrtc/tools/event_log_visualizer/analyzer.cc index bf973800b4..d68ad8124e 100644 --- a/webrtc/tools/event_log_visualizer/analyzer.cc +++ b/webrtc/tools/event_log_visualizer/analyzer.cc @@ -28,6 +28,7 @@ #include "webrtc/modules/congestion_controller/include/congestion_controller.h" #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" +#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/common_header.h" #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" @@ -91,16 +92,6 @@ int64_t WrappingDifference(uint32_t later, uint32_t earlier, int64_t modulus) { return difference; } -void RegisterHeaderExtensions( - const std::vector& extensions, - webrtc::RtpHeaderExtensionMap* extension_map) { - extension_map->Erase(); - for (const webrtc::RtpExtension& extension : extensions) { - extension_map->Register(webrtc::StringToRtpExtensionType(extension.uri), - extension.id); - } -} - // Return default values for header extensions, to use on streams without stored // mapping data. Currently this only applies to audio streams, since the mapping // is not stored in the event log. @@ -108,11 +99,8 @@ void RegisterHeaderExtensions( // audio streams. Tracking bug: webrtc:6399 webrtc::RtpHeaderExtensionMap GetDefaultHeaderExtensionMap() { webrtc::RtpHeaderExtensionMap default_map; - default_map.Register( - webrtc::StringToRtpExtensionType(webrtc::RtpExtension::kAudioLevelUri), - webrtc::RtpExtension::kAudioLevelDefaultId); - default_map.Register( - webrtc::StringToRtpExtensionType(webrtc::RtpExtension::kAbsSendTimeUri), + default_map.Register(webrtc::RtpExtension::kAudioLevelDefaultId); + default_map.Register( webrtc::RtpExtension::kAbsSendTimeDefaultId); return default_map; } @@ -321,13 +309,12 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log) VideoReceiveStream::Config config(nullptr); parsed_log_.GetVideoReceiveConfig(i, &config); StreamId stream(config.rtp.remote_ssrc, kIncomingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[stream]); + extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions); video_ssrcs_.insert(stream); for (auto kv : config.rtp.rtx) { StreamId rtx_stream(kv.second.ssrc, kIncomingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[rtx_stream]); + extension_maps[rtx_stream] = + RtpHeaderExtensionMap(config.rtp.extensions); video_ssrcs_.insert(rtx_stream); rtx_ssrcs_.insert(rtx_stream); } @@ -338,14 +325,13 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log) parsed_log_.GetVideoSendConfig(i, &config); for (auto ssrc : config.rtp.ssrcs) { StreamId stream(ssrc, kOutgoingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[stream]); + extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions); video_ssrcs_.insert(stream); } for (auto ssrc : config.rtp.rtx.ssrcs) { StreamId rtx_stream(ssrc, kOutgoingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[rtx_stream]); + extension_maps[rtx_stream] = + RtpHeaderExtensionMap(config.rtp.extensions); video_ssrcs_.insert(rtx_stream); rtx_ssrcs_.insert(rtx_stream); } @@ -355,8 +341,7 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log) AudioReceiveStream::Config config; parsed_log_.GetAudioReceiveConfig(i, &config); StreamId stream(config.rtp.remote_ssrc, kIncomingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[stream]); + extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions); audio_ssrcs_.insert(stream); break; } @@ -364,8 +349,7 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log) AudioSendStream::Config config(nullptr); parsed_log_.GetAudioSendConfig(i, &config); StreamId stream(config.rtp.ssrc, kOutgoingPacket); - RegisterHeaderExtensions(config.rtp.extensions, - &extension_maps[stream]); + extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions); audio_ssrcs_.insert(stream); break; }