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 4800a60c39d40c4ecc148d10cf27cde623aed7c0..0703c599c59d9d1edb08c4043fb3c13447bd98c1 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h |
@@ -23,12 +23,8 @@ class AbsoluteSendTime { |
static constexpr uint8_t kValueSizeBytes = 3; |
static const char* kName; |
static bool IsSupportedFor(MediaType type); |
- static bool Parse(const uint8_t* data, uint32_t* time_24bits); |
+ static bool Parse(const uint8_t* data, uint32_t* time_ms); |
static bool Write(uint8_t* data, int64_t time_ms); |
- |
- static constexpr uint32_t MsTo24Bits(int64_t time_ms) { |
- return static_cast<uint32_t>(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF; |
- } |
}; |
class AudioLevel { |
@@ -75,5 +71,22 @@ class VideoOrientation { |
static bool Write(uint8_t* data, uint8_t value); |
}; |
+class PlayoutDelayLimits { |
+ public: |
+ static constexpr RTPExtensionType kId = kRtpExtensionPlayoutDelay; |
+ static constexpr uint8_t kValueSizeBytes = 3; |
+ static const char* kName; |
+ static bool IsSupportedFor(MediaType type); |
+ // Playout delay in milliseconds. A playout delay limit (min or max) |
+ // has 12 bits allocated. This allows a range of 0-4095 values which |
+ // translates to a range of 0-40950 in milliseconds. |
+ static constexpr int kGranularityMs = 10; |
+ // Maximum playout delay value in milliseconds. |
+ static constexpr int kMaxMs = 0xfff * kGranularityMs; // 40950. |
+ |
+ static bool Parse(const uint8_t* data, PlayoutDelay* playout_delay); |
+ static bool Write(uint8_t* data, const PlayoutDelay& playout_delay); |
+}; |
+ |
} // namespace webrtc |
#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_HEADER_EXTENSIONS_H_ |