From a897f26f1729699628426d47f6615f77f2399b94 Mon Sep 17 00:00:00 2001 From: danilchap Date: Fri, 26 Aug 2016 05:42:41 -0700 Subject: [PATCH] AbsoluteSendTime rtp header extension publish MsTo24Bit conversion Since this conversion is used in multiple place and extension seems right place to keep it in. BUG=webrtc:1994 NOTRY=true Review-Url: https://codereview.webrtc.org/2272563010 Cr-Commit-Position: refs/heads/master@{#13934} --- .../modules/rtp_rtcp/source/rtp_header_extensions.cc | 11 +++-------- .../modules/rtp_rtcp/source/rtp_header_extensions.h | 6 +++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc index 441c548906..2d5dbf91b4 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc @@ -37,18 +37,13 @@ bool AbsoluteSendTime::IsSupportedFor(MediaType type) { return true; } -bool AbsoluteSendTime::Parse(const uint8_t* data, uint32_t* value) { - *value = ByteReader::ReadBigEndian(data); +bool AbsoluteSendTime::Parse(const uint8_t* data, uint32_t* time_24bits) { + *time_24bits = ByteReader::ReadBigEndian(data); return true; } bool AbsoluteSendTime::Write(uint8_t* data, int64_t time_ms) { - const uint32_t kAbsSendTimeFraction = 18; - uint32_t time_24_bits = - static_cast(((time_ms << kAbsSendTimeFraction) + 500) / 1000) & - 0x00FFFFFF; - - ByteWriter::WriteBigEndian(data, time_24_bits); + ByteWriter::WriteBigEndian(data, MsTo24Bits(time_ms)); return true; } diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h index 116aaa6b93..4800a60c39 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h @@ -23,8 +23,12 @@ 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_ms); + static bool Parse(const uint8_t* data, uint32_t* time_24bits); static bool Write(uint8_t* data, int64_t time_ms); + + static constexpr uint32_t MsTo24Bits(int64_t time_ms) { + return static_cast(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF; + } }; class AudioLevel {