summaryrefslogtreecommitdiffstats
path: root/media/cast/test
diff options
context:
space:
mode:
authorhubbe <hubbe@chromium.org>2014-09-12 13:52:07 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-12 20:57:28 +0000
commita7dbb823c2d7d5cfc7e310aca7acd6efd8e4a009 (patch)
tree7adeaa35447c3f5e613b0a7853df156207bf4e1e /media/cast/test
parent79fae2e8bf9f295e70b9dba9744121faae076c37 (diff)
downloadchromium_src-a7dbb823c2d7d5cfc7e310aca7acd6efd8e4a009.zip
chromium_src-a7dbb823c2d7d5cfc7e310aca7acd6efd8e4a009.tar.gz
chromium_src-a7dbb823c2d7d5cfc7e310aca7acd6efd8e4a009.tar.bz2
Cast: First stab at implementing adaptive latency
After a bunch of testing, it seems like there is a direct linear relationship between RTT and the optimal playout delay. Packet loss is also a factor, but since we expect packet loss to be low in normal networks, perhaps we can make the formula as easy as RTT * 4. This is disabled by default, the extension needs to set min_latency_ms in order to activate it. BUG=405339 Review URL: https://codereview.chromium.org/562653004 Cr-Commit-Position: refs/heads/master@{#294655}
Diffstat (limited to 'media/cast/test')
-rw-r--r--media/cast/test/cast_benchmarks.cc4
-rw-r--r--media/cast/test/end2end_unittest.cc14
-rw-r--r--media/cast/test/sender.cc4
-rw-r--r--media/cast/test/simulator.cc8
-rw-r--r--media/cast/test/utility/default_config.cc4
5 files changed, 20 insertions, 14 deletions
diff --git a/media/cast/test/cast_benchmarks.cc b/media/cast/test/cast_benchmarks.cc
index 6a6f8b2..880f4ad 100644
--- a/media/cast/test/cast_benchmarks.cc
+++ b/media/cast/test/cast_benchmarks.cc
@@ -225,7 +225,7 @@ class RunOneBenchmark {
int max_number_of_video_buffers_used) {
audio_sender_config_.ssrc = 1;
audio_sender_config_.incoming_feedback_ssrc = 2;
- audio_sender_config_.target_playout_delay =
+ audio_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
audio_sender_config_.rtp_payload_type = 96;
audio_sender_config_.use_external_encoder = false;
@@ -247,7 +247,7 @@ class RunOneBenchmark {
video_sender_config_.ssrc = 3;
video_sender_config_.incoming_feedback_ssrc = 4;
- video_sender_config_.target_playout_delay =
+ video_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
video_sender_config_.rtp_payload_type = 97;
video_sender_config_.use_external_encoder = false;
diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
index eea3902..a0a7d1e 100644
--- a/media/cast/test/end2end_unittest.cc
+++ b/media/cast/test/end2end_unittest.cc
@@ -474,7 +474,7 @@ class End2EndTest : public ::testing::Test {
int max_number_of_video_buffers_used) {
audio_sender_config_.ssrc = 1;
audio_sender_config_.incoming_feedback_ssrc = 2;
- audio_sender_config_.target_playout_delay =
+ audio_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
audio_sender_config_.rtp_payload_type = 96;
audio_sender_config_.use_external_encoder = false;
@@ -499,7 +499,7 @@ class End2EndTest : public ::testing::Test {
video_sender_config_.ssrc = 3;
video_sender_config_.incoming_feedback_ssrc = 4;
- video_sender_config_.target_playout_delay =
+ video_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
video_sender_config_.rtp_payload_type = 97;
video_sender_config_.use_external_encoder = false;
@@ -995,9 +995,9 @@ TEST_F(End2EndTest, DISABLED_StartSenderBeforeReceiver) {
TEST_F(End2EndTest, DropEveryOtherFrame3Buffers) {
Configure(CODEC_VIDEO_VP8, CODEC_AUDIO_OPUS, kDefaultAudioSamplingRate, 3);
int target_delay = 300;
- video_sender_config_.target_playout_delay =
+ video_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(target_delay);
- audio_sender_config_.target_playout_delay =
+ audio_sender_config_.max_playout_delay =
base::TimeDelta::FromMilliseconds(target_delay);
video_receiver_config_.rtp_max_delay_ms = target_delay;
Create();
@@ -1436,6 +1436,12 @@ TEST_F(End2EndTest, OldPacketNetwork) {
TEST_F(End2EndTest, TestSetPlayoutDelay) {
Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1);
+ video_sender_config_.min_playout_delay =
+ video_sender_config_.max_playout_delay;
+ audio_sender_config_.min_playout_delay =
+ audio_sender_config_.max_playout_delay;
+ video_sender_config_.max_playout_delay = base::TimeDelta::FromSeconds(1);
+ audio_sender_config_.max_playout_delay = base::TimeDelta::FromSeconds(1);
Create();
StartBasicPlayer();
const int kNewDelay = 600;
diff --git a/media/cast/test/sender.cc b/media/cast/test/sender.cc
index c18645a..38aef30 100644
--- a/media/cast/test/sender.cc
+++ b/media/cast/test/sender.cc
@@ -75,7 +75,7 @@ media::cast::AudioSenderConfig GetAudioSenderConfig() {
audio_config.rtp_payload_type = 127;
// TODO(miu): The default in cast_defines.h is 100. Should this be 100, and
// should receiver.cc's config also be 100?
- audio_config.target_playout_delay = base::TimeDelta::FromMilliseconds(300);
+ audio_config.max_playout_delay = base::TimeDelta::FromMilliseconds(300);
return audio_config;
}
@@ -109,7 +109,7 @@ media::cast::VideoSenderConfig GetVideoSenderConfig() {
video_config.rtp_payload_type = 96;
// TODO(miu): The default in cast_defines.h is 100. Should this be 100, and
// should receiver.cc's config also be 100?
- video_config.target_playout_delay = base::TimeDelta::FromMilliseconds(300);
+ video_config.max_playout_delay = base::TimeDelta::FromMilliseconds(300);
return video_config;
}
diff --git a/media/cast/test/simulator.cc b/media/cast/test/simulator.cc
index fbb36f8..df1c739 100644
--- a/media/cast/test/simulator.cc
+++ b/media/cast/test/simulator.cc
@@ -219,28 +219,28 @@ void RunSimulation(const base::FilePath& source_path,
// Audio sender config.
AudioSenderConfig audio_sender_config = GetDefaultAudioSenderConfig();
- audio_sender_config.target_playout_delay =
+ audio_sender_config.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetDelay);
// Audio receiver config.
FrameReceiverConfig audio_receiver_config =
GetDefaultAudioReceiverConfig();
audio_receiver_config.rtp_max_delay_ms =
- audio_sender_config.target_playout_delay.InMilliseconds();
+ audio_sender_config.max_playout_delay.InMilliseconds();
// Video sender config.
VideoSenderConfig video_sender_config = GetDefaultVideoSenderConfig();
video_sender_config.max_bitrate = 2500000;
video_sender_config.min_bitrate = 2000000;
video_sender_config.start_bitrate = 2000000;
- video_sender_config.target_playout_delay =
+ video_sender_config.max_playout_delay =
base::TimeDelta::FromMilliseconds(kTargetDelay);
// Video receiver config.
FrameReceiverConfig video_receiver_config =
GetDefaultVideoReceiverConfig();
video_receiver_config.rtp_max_delay_ms =
- video_sender_config.target_playout_delay.InMilliseconds();
+ video_sender_config.max_playout_delay.InMilliseconds();
// Loopback transport.
LoopBackTransport receiver_to_sender(receiver_env);
diff --git a/media/cast/test/utility/default_config.cc b/media/cast/test/utility/default_config.cc
index ce81eba..2496e71 100644
--- a/media/cast/test/utility/default_config.cc
+++ b/media/cast/test/utility/default_config.cc
@@ -62,7 +62,7 @@ AudioSenderConfig GetDefaultAudioSenderConfig() {
config.channels = recv_config.channels;
config.bitrate = kDefaultAudioEncoderBitrate;
config.codec = recv_config.codec;
- config.target_playout_delay =
+ config.max_playout_delay =
base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs);
return config;
}
@@ -83,7 +83,7 @@ VideoSenderConfig GetDefaultVideoSenderConfig() {
config.max_number_of_video_buffers_used = 1;
config.codec = recv_config.codec;
config.number_of_encode_threads = 2;
- config.target_playout_delay =
+ config.max_playout_delay =
base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs);
return config;
}