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}
This commit is contained in:
danilchap 2016-08-26 05:42:41 -07:00 committed by Commit bot
parent 84bc98509b
commit a897f26f17
2 changed files with 8 additions and 9 deletions

View File

@ -37,18 +37,13 @@ bool AbsoluteSendTime::IsSupportedFor(MediaType type) {
return true;
}
bool AbsoluteSendTime::Parse(const uint8_t* data, uint32_t* value) {
*value = ByteReader<uint32_t, 3>::ReadBigEndian(data);
bool AbsoluteSendTime::Parse(const uint8_t* data, uint32_t* time_24bits) {
*time_24bits = ByteReader<uint32_t, 3>::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<uint32_t>(((time_ms << kAbsSendTimeFraction) + 500) / 1000) &
0x00FFFFFF;
ByteWriter<uint32_t, 3>::WriteBigEndian(data, time_24_bits);
ByteWriter<uint32_t, 3>::WriteBigEndian(data, MsTo24Bits(time_ms));
return true;
}

View File

@ -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<uint32_t>(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF;
}
};
class AudioLevel {