Index: webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc |
index 26762b0e9662a567c14d21e92e779b6247819b0a..3aa1444f06b50ddf1fc567183791fb668b761ce8 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc |
@@ -23,13 +23,12 @@ using RtpUtility::Word32Align; |
struct ExtensionInfo { |
RTPExtensionType type; |
- size_t value_size; |
const char* uri; |
}; |
template <typename Extension> |
constexpr ExtensionInfo CreateExtensionInfo() { |
- return {Extension::kId, Extension::kValueSizeBytes, Extension::kUri}; |
+ return {Extension::kId, Extension::kUri}; |
} |
constexpr ExtensionInfo kExtensions[] = { |
@@ -50,15 +49,6 @@ static_assert(arraysize(kExtensions) == |
static_cast<int>(kRtpExtensionNumberOfExtensions) - 1, |
"kExtensions expect to list all known extensions"); |
-size_t ValueSize(RTPExtensionType type) { |
- for (const ExtensionInfo& extension : kExtensions) |
- if (type == extension.type) |
- return extension.value_size; |
- |
- RTC_NOTREACHED(); |
- return 0; |
-} |
- |
} // namespace |
constexpr RTPExtensionType RtpHeaderExtensionMap::kInvalidType; |
@@ -67,7 +57,6 @@ constexpr uint8_t RtpHeaderExtensionMap::kMinId; |
constexpr uint8_t RtpHeaderExtensionMap::kMaxId; |
RtpHeaderExtensionMap::RtpHeaderExtensionMap() { |
- total_values_size_bytes_ = 0; |
for (auto& type : types_) |
type = kInvalidType; |
for (auto& id : ids_) |
@@ -84,7 +73,7 @@ RtpHeaderExtensionMap::RtpHeaderExtensionMap( |
bool RtpHeaderExtensionMap::RegisterByType(uint8_t id, RTPExtensionType type) { |
for (const ExtensionInfo& extension : kExtensions) |
if (type == extension.type) |
- return Register(id, extension.type, extension.value_size, extension.uri); |
+ return Register(id, extension.type, extension.uri); |
RTC_NOTREACHED(); |
return false; |
} |
@@ -92,23 +81,28 @@ bool RtpHeaderExtensionMap::RegisterByType(uint8_t id, RTPExtensionType type) { |
bool RtpHeaderExtensionMap::RegisterByUri(uint8_t id, const std::string& uri) { |
for (const ExtensionInfo& extension : kExtensions) |
if (uri == extension.uri) |
- return Register(id, extension.type, extension.value_size, extension.uri); |
+ return Register(id, extension.type, extension.uri); |
LOG(LS_WARNING) << "Unknown extension uri:'" << uri |
<< "', id: " << static_cast<int>(id) << '.'; |
return false; |
} |
-size_t RtpHeaderExtensionMap::GetTotalLengthInBytes() const { |
+size_t RtpHeaderExtensionMap::GetTotalLengthInBytes( |
+ rtc::ArrayView<const RtpExtensionSize> extensions) const { |
static constexpr size_t kRtpOneByteHeaderLength = 4; |
- if (total_values_size_bytes_ == 0) |
+ size_t total = 0; |
danilchap
2017/05/09 12:33:49
may be values_size better describes this variable
erikvarga1
2017/05/09 13:30:30
Done.
|
+ for (const RtpExtensionSize& extension : extensions) { |
+ if (ids_[extension.type] != kInvalidId) |
danilchap
2017/05/09 12:33:49
if (IsRegistred(extension.type))
looks more readab
erikvarga1
2017/05/09 13:30:30
Done.
|
+ total += extension.value_size + 1; |
danilchap
2017/05/09 12:33:49
add a comment or constant for + 1
erikvarga1
2017/05/09 13:30:30
Done.
|
+ } |
+ if (total == 0) |
return 0; |
- return Word32Align(kRtpOneByteHeaderLength + total_values_size_bytes_); |
+ return Word32Align(kRtpOneByteHeaderLength + total); |
} |
int32_t RtpHeaderExtensionMap::Deregister(RTPExtensionType type) { |
if (IsRegistered(type)) { |
uint8_t id = GetId(type); |
- total_values_size_bytes_ -= (ValueSize(type) + 1); |
types_[id] = kInvalidType; |
ids_[type] = kInvalidId; |
} |
@@ -117,12 +111,9 @@ int32_t RtpHeaderExtensionMap::Deregister(RTPExtensionType type) { |
bool RtpHeaderExtensionMap::Register(uint8_t id, |
RTPExtensionType type, |
- size_t value_size, |
const char* uri) { |
RTC_DCHECK_GT(type, kRtpExtensionNone); |
RTC_DCHECK_LT(type, kRtpExtensionNumberOfExtensions); |
- RTC_DCHECK_GE(value_size, 1U); |
- RTC_DCHECK_LE(value_size, 16U); |
if (id < kMinId || id > kMaxId) { |
LOG(LS_WARNING) << "Failed to register extension uri:'" << uri |
@@ -147,7 +138,6 @@ bool RtpHeaderExtensionMap::Register(uint8_t id, |
types_[id] = type; |
ids_[type] = id; |
- total_values_size_bytes_ += (value_size + 1); |
return true; |
} |