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:
parent
84bc98509b
commit
a897f26f17
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user