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}
This commit is contained in:
danilchap 2016-11-15 09:21:00 -08:00 committed by Commit bot
parent cd188f6031
commit 4aecc5885a
4 changed files with 20 additions and 33 deletions

View File

@ -72,7 +72,7 @@ RtpHeaderExtensionMap::RtpHeaderExtensionMap() {
}
RtpHeaderExtensionMap::RtpHeaderExtensionMap(
std::initializer_list<RtpExtension> extensions)
rtc::ArrayView<const RtpExtension> extensions)
: RtpHeaderExtensionMap() {
for (const RtpExtension& extension : extensions)
RegisterByUri(extension.id, extension.uri);

View File

@ -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 <initializer_list>
#include <string>
#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<RtpExtension>);
explicit RtpHeaderExtensionMap(rtc::ArrayView<const RtpExtension> extensions);
template <typename Extension>
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_

View File

@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include <vector>
#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<RtpExtension> 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));

View File

@ -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<webrtc::RtpExtension>& 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<AudioLevel>(webrtc::RtpExtension::kAudioLevelDefaultId);
default_map.Register<AbsoluteSendTime>(
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;
}