Added A/V sync tests with drifting clocks.
adding 30% drift to media generator (e.g. audio frame generated every 7ms instead of promised 10ms) works fine
adding 2% drift to video ntp-timestamp-stamper makes A/V sync fail.
BUG=webrtc:5504
R=pbos@webrtc.org,stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1674413004
Cr-Original-Commit-Position: refs/heads/master@{#11556}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 9c6a0c7f6dc4446431f5138170cc95751ee5af8b
diff --git a/test/call_test.cc b/test/call_test.cc
index e9651e3..a0b5234 100644
--- a/test/call_test.cc
+++ b/test/call_test.cc
@@ -236,6 +236,14 @@
}
}
+void CallTest::CreateFrameGeneratorCapturerWithDrift(Clock* clock,
+ float speed) {
+ VideoStream stream = video_encoder_config_.streams.back();
+ frame_generator_capturer_.reset(test::FrameGeneratorCapturer::Create(
+ video_send_stream_->Input(), stream.width, stream.height,
+ stream.max_framerate * speed, clock));
+}
+
void CallTest::CreateFrameGeneratorCapturer() {
VideoStream stream = video_encoder_config_.streams.back();
frame_generator_capturer_.reset(test::FrameGeneratorCapturer::Create(
@@ -245,9 +253,11 @@
void CallTest::CreateFakeAudioDevices() {
fake_send_audio_device_.reset(new FakeAudioDevice(
- clock_, test::ResourcePath("voice_engine/audio_long16", "pcm")));
+ clock_, test::ResourcePath("voice_engine/audio_long16", "pcm"),
+ DriftingClock::kNoDrift));
fake_recv_audio_device_.reset(new FakeAudioDevice(
- clock_, test::ResourcePath("voice_engine/audio_long16", "pcm")));
+ clock_, test::ResourcePath("voice_engine/audio_long16", "pcm"),
+ DriftingClock::kNoDrift));
}
void CallTest::CreateVideoStreams() {