Add clockdrift to RtpGenerator
RtpGenerator is a help class for NetEq testing. This change add the possibility to simulate clockdrift. If no clockdrift is set, the default is 0 (i.e., no drift). R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2175005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4680 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -33,9 +33,16 @@ uint32_t RtpGenerator::GetRtpHeader(uint8_t payload_type,
|
|||||||
|
|
||||||
uint32_t this_send_time = next_send_time_ms_;
|
uint32_t this_send_time = next_send_time_ms_;
|
||||||
assert(samples_per_ms_ > 0);
|
assert(samples_per_ms_ > 0);
|
||||||
next_send_time_ms_ += payload_length_samples / samples_per_ms_;
|
next_send_time_ms_ += ((1.0 + drift_factor_) * payload_length_samples) /
|
||||||
|
samples_per_ms_;
|
||||||
return this_send_time;
|
return this_send_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RtpGenerator::set_drift_factor(double factor) {
|
||||||
|
if (factor > -1.0) {
|
||||||
|
drift_factor_ = factor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace test
|
} // namespace test
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ class RtpGenerator {
|
|||||||
timestamp_(start_timestamp),
|
timestamp_(start_timestamp),
|
||||||
next_send_time_ms_(start_send_time_ms),
|
next_send_time_ms_(start_send_time_ms),
|
||||||
ssrc_(ssrc),
|
ssrc_(ssrc),
|
||||||
samples_per_ms_(samples_per_ms) {
|
samples_per_ms_(samples_per_ms),
|
||||||
|
drift_factor_(0.0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writes the next RTP header to |rtp_header|, which will be of type
|
// Writes the next RTP header to |rtp_header|, which will be of type
|
||||||
@@ -39,12 +40,15 @@ class RtpGenerator {
|
|||||||
uint32_t GetRtpHeader(uint8_t payload_type, size_t payload_length_samples,
|
uint32_t GetRtpHeader(uint8_t payload_type, size_t payload_length_samples,
|
||||||
WebRtcRTPHeader* rtp_header);
|
WebRtcRTPHeader* rtp_header);
|
||||||
|
|
||||||
|
void set_drift_factor(double factor);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint16_t seq_number_;
|
uint16_t seq_number_;
|
||||||
uint32_t timestamp_;
|
uint32_t timestamp_;
|
||||||
uint32_t next_send_time_ms_;
|
uint32_t next_send_time_ms_;
|
||||||
const uint32_t ssrc_;
|
const uint32_t ssrc_;
|
||||||
const int samples_per_ms_;
|
const int samples_per_ms_;
|
||||||
|
double drift_factor_;
|
||||||
DISALLOW_COPY_AND_ASSIGN(RtpGenerator);
|
DISALLOW_COPY_AND_ASSIGN(RtpGenerator);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user