Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h

Issue 2871813003: Add write support for the RtpStreamId and RepairedRtpStreamId header extensions. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698