mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
[Unwrap] Delete rtc::TimestampWrapAroundHandler
Bug: webrtc:13982 Change-Id: Ia2999e952a55d97dbd69ff19cf12c8f712b1a62f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290882 Commit-Queue: Evan Shrubsole <eshr@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39087}
This commit is contained in:
parent
83fd843535
commit
d8b6b06e70
3 changed files with 0 additions and 86 deletions
|
@ -175,28 +175,6 @@ int64_t TimeDiff(int64_t later, int64_t earlier) {
|
||||||
return later - earlier;
|
return later - earlier;
|
||||||
}
|
}
|
||||||
|
|
||||||
TimestampWrapAroundHandler::TimestampWrapAroundHandler()
|
|
||||||
: last_ts_(0), num_wrap_(-1) {}
|
|
||||||
|
|
||||||
int64_t TimestampWrapAroundHandler::Unwrap(uint32_t ts) {
|
|
||||||
if (num_wrap_ == -1) {
|
|
||||||
last_ts_ = ts;
|
|
||||||
num_wrap_ = 0;
|
|
||||||
return ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ts < last_ts_) {
|
|
||||||
if (last_ts_ >= 0xf0000000 && ts < 0x0fffffff)
|
|
||||||
++num_wrap_;
|
|
||||||
} else if ((ts - last_ts_) > 0xf0000000) {
|
|
||||||
// Backwards wrap. Unwrap with last wrap count and don't update last_ts_.
|
|
||||||
return ts + (num_wrap_ - 1) * (int64_t{1} << 32);
|
|
||||||
}
|
|
||||||
|
|
||||||
last_ts_ = ts;
|
|
||||||
return ts + (num_wrap_ << 32);
|
|
||||||
}
|
|
||||||
|
|
||||||
int64_t TmToSeconds(const tm& tm) {
|
int64_t TmToSeconds(const tm& tm) {
|
||||||
static short int mdays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
static short int mdays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||||
static short int cumul_mdays[12] = {0, 31, 59, 90, 120, 151,
|
static short int cumul_mdays[12] = {0, 31, 59, 90, 120, 151,
|
||||||
|
|
|
@ -114,17 +114,6 @@ inline int64_t TimeUntil(int64_t later) {
|
||||||
return later - TimeMillis();
|
return later - TimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
class TimestampWrapAroundHandler {
|
|
||||||
public:
|
|
||||||
TimestampWrapAroundHandler();
|
|
||||||
|
|
||||||
int64_t Unwrap(uint32_t ts);
|
|
||||||
|
|
||||||
private:
|
|
||||||
uint32_t last_ts_;
|
|
||||||
int64_t num_wrap_;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Convert from tm, which is relative to 1900-01-01 00:00 to number of
|
// Convert from tm, which is relative to 1900-01-01 00:00 to number of
|
||||||
// seconds from 1970-01-01 00:00 ("epoch"). Don't return time_t since that
|
// seconds from 1970-01-01 00:00 ("epoch"). Don't return time_t since that
|
||||||
// is still 32 bits on many systems.
|
// is still 32 bits on many systems.
|
||||||
|
|
|
@ -63,59 +63,6 @@ TEST(TimeTest, TestTimeDiff64) {
|
||||||
EXPECT_EQ(-ts_diff, rtc::TimeDiff(ts_earlier, ts_later));
|
EXPECT_EQ(-ts_diff, rtc::TimeDiff(ts_earlier, ts_later));
|
||||||
}
|
}
|
||||||
|
|
||||||
class TimestampWrapAroundHandlerTest : public ::testing::Test {
|
|
||||||
public:
|
|
||||||
TimestampWrapAroundHandlerTest() {}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
TimestampWrapAroundHandler wraparound_handler_;
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST_F(TimestampWrapAroundHandlerTest, Unwrap) {
|
|
||||||
// Start value.
|
|
||||||
int64_t ts = 2;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
|
|
||||||
// Wrap backwards.
|
|
||||||
ts = -2;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
|
|
||||||
// Forward to 2 again.
|
|
||||||
ts = 2;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
|
|
||||||
// Max positive skip ahead, until max value (0xffffffff).
|
|
||||||
for (uint32_t i = 0; i <= 0xf; ++i) {
|
|
||||||
ts = (i << 28) + 0x0fffffff;
|
|
||||||
EXPECT_EQ(
|
|
||||||
ts, wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wrap around.
|
|
||||||
ts += 2;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
|
|
||||||
// Max wrap backward...
|
|
||||||
ts -= 0x0fffffff;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
|
|
||||||
// ...and back again.
|
|
||||||
ts += 0x0fffffff;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(TimestampWrapAroundHandlerTest, NoNegativeStart) {
|
|
||||||
int64_t ts = 0xfffffff0;
|
|
||||||
EXPECT_EQ(ts,
|
|
||||||
wraparound_handler_.Unwrap(static_cast<uint32_t>(ts & 0xffffffff)));
|
|
||||||
}
|
|
||||||
|
|
||||||
class TmToSeconds : public ::testing::Test {
|
class TmToSeconds : public ::testing::Test {
|
||||||
public:
|
public:
|
||||||
TmToSeconds() {
|
TmToSeconds() {
|
||||||
|
|
Loading…
Reference in a new issue