Index: webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
index c60f29050d5244fc6ea88d8648c7fd1c9762d56e..176b2133d04a0d333c203a6e8ed7040cc6c4b2a1 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
@@ -27,6 +27,7 @@ class AbsoluteSendTime { |
static constexpr const char* kUri = |
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; |
+ static size_t ValueSize(int64_t time_ms) { return kValueSizeBytes; } |
danilchap
2017/05/09 15:40:52
may be put this function just before Write functio
erikvarga1
2017/05/10 10:52:27
Done.
|
static bool Parse(rtc::ArrayView<const uint8_t> data, uint32_t* time_24bits); |
static bool Write(uint8_t* data, int64_t time_ms); |
@@ -42,6 +43,9 @@ class AudioLevel { |
static constexpr const char* kUri = |
"urn:ietf:params:rtp-hdrext:ssrc-audio-level"; |
+ static size_t ValueSize(bool voice_activity, uint8_t audio_level) { |
+ return kValueSizeBytes; |
+ } |
static bool Parse(rtc::ArrayView<const uint8_t> data, |
bool* voice_activity, |
uint8_t* audio_level); |
@@ -54,6 +58,7 @@ class TransmissionOffset { |
static constexpr uint8_t kValueSizeBytes = 3; |
static constexpr const char* kUri = "urn:ietf:params:rtp-hdrext:toffset"; |
+ static size_t ValueSize(int32_t rtp_time) { return kValueSizeBytes; } |
static bool Parse(rtc::ArrayView<const uint8_t> data, int32_t* rtp_time); |
static bool Write(uint8_t* data, int32_t rtp_time); |
}; |
@@ -65,6 +70,7 @@ class TransportSequenceNumber { |
static constexpr const char* kUri = |
"http://www.ietf.org/id/" |
"draft-holmer-rmcat-transport-wide-cc-extensions-01"; |
+ static size_t ValueSize(uint16_t value) { return kValueSizeBytes; } |
static bool Parse(rtc::ArrayView<const uint8_t> data, uint16_t* value); |
static bool Write(uint8_t* data, uint16_t value); |
}; |
@@ -75,8 +81,10 @@ class VideoOrientation { |
static constexpr uint8_t kValueSizeBytes = 1; |
static constexpr const char* kUri = "urn:3gpp:video-orientation"; |
+ static size_t ValueSize(VideoRotation* value) { return kValueSizeBytes; } |
danilchap
2017/05/09 15:40:51
remove *
erikvarga1
2017/05/10 10:52:27
Done.
|
static bool Parse(rtc::ArrayView<const uint8_t> data, VideoRotation* value); |
static bool Write(uint8_t* data, VideoRotation value); |
+ static size_t ValueSize(uint8_t value) { return kValueSizeBytes; } |
static bool Parse(rtc::ArrayView<const uint8_t> data, uint8_t* value); |
static bool Write(uint8_t* data, uint8_t value); |
}; |
@@ -95,6 +103,9 @@ class PlayoutDelayLimits { |
// Maximum playout delay value in milliseconds. |
static constexpr int kMaxMs = 0xfff * kGranularityMs; // 40950. |
+ static size_t ValueSize(const PlayoutDelay& playout_delay) { |
danilchap
2017/05/09 15:40:52
feel free to omit parameter name when it doesn't a
erikvarga1
2017/05/10 10:52:26
Done.
|
+ return kValueSizeBytes; |
+ } |
static bool Parse(rtc::ArrayView<const uint8_t> data, |
PlayoutDelay* playout_delay); |
static bool Write(uint8_t* data, const PlayoutDelay& playout_delay); |
@@ -107,6 +118,9 @@ class VideoContentTypeExtension { |
static constexpr const char* kUri = |
"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"; |
+ static size_t ValueSize(VideoContentType content_type) { |
+ return kValueSizeBytes; |
+ } |
static bool Parse(rtc::ArrayView<const uint8_t> data, |
VideoContentType* content_type); |
static bool Write(uint8_t* data, VideoContentType content_type); |
@@ -121,8 +135,13 @@ class RtpStreamId { |
static constexpr const char* kUri = |
"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"; |
- static bool Parse(rtc::ArrayView<const uint8_t> data, StreamId* rid); |
- static bool Parse(rtc::ArrayView<const uint8_t> data, std::string* rid); |
+ static size_t ValueSize(const StreamId& rsid) { return rsid.size(); } |
+ static bool Parse(rtc::ArrayView<const uint8_t> data, StreamId* rsid); |
+ static bool Write(uint8_t* data, const StreamId& rsid); |
+ |
+ static size_t ValueSize(const std::string& rsid) { return rsid.size(); } |
+ static bool Parse(rtc::ArrayView<const uint8_t> data, std::string* rsid); |
+ static bool Write(uint8_t* data, const std::string& rsid); |
}; |
class RepairedRtpStreamId { |
@@ -134,8 +153,17 @@ class RepairedRtpStreamId { |
static constexpr const char* kUri = |
"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"; |
- static bool Parse(rtc::ArrayView<const uint8_t> data, StreamId* rid); |
- static bool Parse(rtc::ArrayView<const uint8_t> data, std::string* rid); |
+ static size_t ValueSize(const StreamId& rsid) { |
+ return RtpStreamId::ValueSize(rsid); |
danilchap
2017/05/09 15:40:51
may be move implementation to .cc for consistency
erikvarga1
2017/05/10 10:52:27
Done. Should this also be done for the ValueSize f
danilchap
2017/05/10 11:25:17
it is not required - functions that short are ok t
erikvarga1
2017/05/10 14:48:19
Alright, in that case I think it should be OK like
|
+ } |
+ static bool Parse(rtc::ArrayView<const uint8_t> data, StreamId* rsid); |
+ static bool Write(uint8_t* data, const StreamId& rsid); |
+ |
+ static size_t ValueSize(const std::string& rsid) { |
+ return RtpStreamId::ValueSize(rsid); |
+ } |
+ static bool Parse(rtc::ArrayView<const uint8_t> data, std::string* rsid); |
+ static bool Write(uint8_t* data, const std::string& rsid); |
}; |
} // namespace webrtc |