(Auto)update libjingle 69278008-> 69291002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6448 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
d6e2213edd
commit
27626a6256
@ -106,6 +106,10 @@ const char MediaConstraintsInterface::kCpuUnderuseThreshold[] =
|
|||||||
"googCpuUnderuseThreshold";
|
"googCpuUnderuseThreshold";
|
||||||
const char MediaConstraintsInterface::kCpuOveruseThreshold[] =
|
const char MediaConstraintsInterface::kCpuOveruseThreshold[] =
|
||||||
"googCpuOveruseThreshold";
|
"googCpuOveruseThreshold";
|
||||||
|
const char MediaConstraintsInterface::kCpuUnderuseEncodeRsdThreshold[] =
|
||||||
|
"googCpuUnderuseEncodeRsdThreshold";
|
||||||
|
const char MediaConstraintsInterface::kCpuOveruseEncodeRsdThreshold[] =
|
||||||
|
"googCpuOveruseEncodeRsdThreshold";
|
||||||
const char MediaConstraintsInterface::kCpuOveruseEncodeUsage[] =
|
const char MediaConstraintsInterface::kCpuOveruseEncodeUsage[] =
|
||||||
"googCpuOveruseEncodeUsage";
|
"googCpuOveruseEncodeUsage";
|
||||||
const char MediaConstraintsInterface::kHighStartBitrate[] =
|
const char MediaConstraintsInterface::kHighStartBitrate[] =
|
||||||
|
@ -122,6 +122,12 @@ class MediaConstraintsInterface {
|
|||||||
static const char kCpuOveruseDetection[]; // googCpuOveruseDetection
|
static const char kCpuOveruseDetection[]; // googCpuOveruseDetection
|
||||||
static const char kCpuUnderuseThreshold[]; // googCpuUnderuseThreshold
|
static const char kCpuUnderuseThreshold[]; // googCpuUnderuseThreshold
|
||||||
static const char kCpuOveruseThreshold[]; // googCpuOveruseThreshold
|
static const char kCpuOveruseThreshold[]; // googCpuOveruseThreshold
|
||||||
|
// Low cpu adaptation threshold for relative standard deviation of encode
|
||||||
|
// time.
|
||||||
|
static const char kCpuUnderuseEncodeRsdThreshold[];
|
||||||
|
// High cpu adaptation threshold for relative standard deviation of encode
|
||||||
|
// time.
|
||||||
|
static const char kCpuOveruseEncodeRsdThreshold[];
|
||||||
static const char kCpuOveruseEncodeUsage[]; // googCpuOveruseEncodeUsage
|
static const char kCpuOveruseEncodeUsage[]; // googCpuOveruseEncodeUsage
|
||||||
static const char kHighStartBitrate[]; // googHighStartBitrate
|
static const char kHighStartBitrate[]; // googHighStartBitrate
|
||||||
static const char kHighBitrate[]; // googHighBitrate
|
static const char kHighBitrate[]; // googHighBitrate
|
||||||
|
@ -564,6 +564,12 @@ bool WebRtcSession::Initialize(
|
|||||||
SetOptionFromOptionalConstraint(constraints,
|
SetOptionFromOptionalConstraint(constraints,
|
||||||
MediaConstraintsInterface::kCpuOveruseThreshold,
|
MediaConstraintsInterface::kCpuOveruseThreshold,
|
||||||
&video_options_.cpu_overuse_threshold);
|
&video_options_.cpu_overuse_threshold);
|
||||||
|
SetOptionFromOptionalConstraint(constraints,
|
||||||
|
MediaConstraintsInterface::kCpuUnderuseEncodeRsdThreshold,
|
||||||
|
&video_options_.cpu_underuse_encode_rsd_threshold);
|
||||||
|
SetOptionFromOptionalConstraint(constraints,
|
||||||
|
MediaConstraintsInterface::kCpuOveruseEncodeRsdThreshold,
|
||||||
|
&video_options_.cpu_overuse_encode_rsd_threshold);
|
||||||
|
|
||||||
if (FindConstraint(
|
if (FindConstraint(
|
||||||
constraints,
|
constraints,
|
||||||
|
@ -314,6 +314,10 @@ struct VideoOptions {
|
|||||||
cpu_overuse_detection.SetFrom(change.cpu_overuse_detection);
|
cpu_overuse_detection.SetFrom(change.cpu_overuse_detection);
|
||||||
cpu_underuse_threshold.SetFrom(change.cpu_underuse_threshold);
|
cpu_underuse_threshold.SetFrom(change.cpu_underuse_threshold);
|
||||||
cpu_overuse_threshold.SetFrom(change.cpu_overuse_threshold);
|
cpu_overuse_threshold.SetFrom(change.cpu_overuse_threshold);
|
||||||
|
cpu_underuse_encode_rsd_threshold.SetFrom(
|
||||||
|
change.cpu_underuse_encode_rsd_threshold);
|
||||||
|
cpu_overuse_encode_rsd_threshold.SetFrom(
|
||||||
|
change.cpu_overuse_encode_rsd_threshold);
|
||||||
cpu_overuse_encode_usage.SetFrom(change.cpu_overuse_encode_usage);
|
cpu_overuse_encode_usage.SetFrom(change.cpu_overuse_encode_usage);
|
||||||
conference_mode.SetFrom(change.conference_mode);
|
conference_mode.SetFrom(change.conference_mode);
|
||||||
process_adaptation_threshhold.SetFrom(change.process_adaptation_threshhold);
|
process_adaptation_threshhold.SetFrom(change.process_adaptation_threshhold);
|
||||||
@ -350,6 +354,10 @@ struct VideoOptions {
|
|||||||
cpu_overuse_detection == o.cpu_overuse_detection &&
|
cpu_overuse_detection == o.cpu_overuse_detection &&
|
||||||
cpu_underuse_threshold == o.cpu_underuse_threshold &&
|
cpu_underuse_threshold == o.cpu_underuse_threshold &&
|
||||||
cpu_overuse_threshold == o.cpu_overuse_threshold &&
|
cpu_overuse_threshold == o.cpu_overuse_threshold &&
|
||||||
|
cpu_underuse_encode_rsd_threshold ==
|
||||||
|
o.cpu_underuse_encode_rsd_threshold &&
|
||||||
|
cpu_overuse_encode_rsd_threshold ==
|
||||||
|
o.cpu_overuse_encode_rsd_threshold &&
|
||||||
cpu_overuse_encode_usage == o.cpu_overuse_encode_usage &&
|
cpu_overuse_encode_usage == o.cpu_overuse_encode_usage &&
|
||||||
conference_mode == o.conference_mode &&
|
conference_mode == o.conference_mode &&
|
||||||
process_adaptation_threshhold == o.process_adaptation_threshhold &&
|
process_adaptation_threshhold == o.process_adaptation_threshhold &&
|
||||||
@ -390,6 +398,10 @@ struct VideoOptions {
|
|||||||
ost << ToStringIfSet("cpu overuse detection", cpu_overuse_detection);
|
ost << ToStringIfSet("cpu overuse detection", cpu_overuse_detection);
|
||||||
ost << ToStringIfSet("cpu underuse threshold", cpu_underuse_threshold);
|
ost << ToStringIfSet("cpu underuse threshold", cpu_underuse_threshold);
|
||||||
ost << ToStringIfSet("cpu overuse threshold", cpu_overuse_threshold);
|
ost << ToStringIfSet("cpu overuse threshold", cpu_overuse_threshold);
|
||||||
|
ost << ToStringIfSet("cpu underuse encode rsd threshold",
|
||||||
|
cpu_underuse_encode_rsd_threshold);
|
||||||
|
ost << ToStringIfSet("cpu overuse encode rsd threshold",
|
||||||
|
cpu_overuse_encode_rsd_threshold);
|
||||||
ost << ToStringIfSet("cpu overuse encode usage",
|
ost << ToStringIfSet("cpu overuse encode usage",
|
||||||
cpu_overuse_encode_usage);
|
cpu_overuse_encode_usage);
|
||||||
ost << ToStringIfSet("conference mode", conference_mode);
|
ost << ToStringIfSet("conference mode", conference_mode);
|
||||||
@ -443,10 +455,22 @@ struct VideoOptions {
|
|||||||
// adaptation algorithm. So this option will override the
|
// adaptation algorithm. So this option will override the
|
||||||
// |adapt_input_to_cpu_usage|.
|
// |adapt_input_to_cpu_usage|.
|
||||||
Settable<bool> cpu_overuse_detection;
|
Settable<bool> cpu_overuse_detection;
|
||||||
// Low threshold for cpu overuse adaptation in ms. (Adapt up)
|
// Low threshold (t1) for cpu overuse adaptation. (Adapt up)
|
||||||
|
// Metric: encode usage (m1). m1 < t1 => underuse.
|
||||||
Settable<int> cpu_underuse_threshold;
|
Settable<int> cpu_underuse_threshold;
|
||||||
// High threshold for cpu overuse adaptation in ms. (Adapt down)
|
// High threshold (t1) for cpu overuse adaptation. (Adapt down)
|
||||||
|
// Metric: encode usage (m1). m1 > t1 => overuse.
|
||||||
Settable<int> cpu_overuse_threshold;
|
Settable<int> cpu_overuse_threshold;
|
||||||
|
// Low threshold (t2) for cpu overuse adaptation. (Adapt up)
|
||||||
|
// Metric: relative standard deviation of encode time (m2).
|
||||||
|
// Optional threshold. If set, (m1 < t1 && m2 < t2) => underuse.
|
||||||
|
// Note: t2 will have no effect if t1 is not set.
|
||||||
|
Settable<int> cpu_underuse_encode_rsd_threshold;
|
||||||
|
// High threshold (t2) for cpu overuse adaptation. (Adapt down)
|
||||||
|
// Metric: relative standard deviation of encode time (m2).
|
||||||
|
// Optional threshold. If set, (m1 > t1 || m2 > t2) => overuse.
|
||||||
|
// Note: t2 will have no effect if t1 is not set.
|
||||||
|
Settable<int> cpu_overuse_encode_rsd_threshold;
|
||||||
// Use encode usage for cpu detection.
|
// Use encode usage for cpu detection.
|
||||||
Settable<bool> cpu_overuse_encode_usage;
|
Settable<bool> cpu_overuse_encode_usage;
|
||||||
// Use conference mode?
|
// Use conference mode?
|
||||||
|
@ -886,6 +886,18 @@ static bool GetCpuOveruseOptions(const VideoOptions& options,
|
|||||||
// Use method based on encode usage.
|
// Use method based on encode usage.
|
||||||
overuse_options->low_encode_usage_threshold_percent = underuse_threshold;
|
overuse_options->low_encode_usage_threshold_percent = underuse_threshold;
|
||||||
overuse_options->high_encode_usage_threshold_percent = overuse_threshold;
|
overuse_options->high_encode_usage_threshold_percent = overuse_threshold;
|
||||||
|
#ifdef USE_WEBRTC_DEV_BRANCH
|
||||||
|
// Set optional thresholds, if configured.
|
||||||
|
int underuse_rsd_threshold = 0;
|
||||||
|
if (options.cpu_underuse_encode_rsd_threshold.Get(
|
||||||
|
&underuse_rsd_threshold)) {
|
||||||
|
overuse_options->low_encode_time_rsd_threshold = underuse_rsd_threshold;
|
||||||
|
}
|
||||||
|
int overuse_rsd_threshold = 0;
|
||||||
|
if (options.cpu_overuse_encode_rsd_threshold.Get(&overuse_rsd_threshold)) {
|
||||||
|
overuse_options->high_encode_time_rsd_threshold = overuse_rsd_threshold;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
// Use default method based on capture jitter.
|
// Use default method based on capture jitter.
|
||||||
overuse_options->low_capture_jitter_threshold_ms =
|
overuse_options->low_capture_jitter_threshold_ms =
|
||||||
|
@ -1186,6 +1186,11 @@ TEST_F(WebRtcVideoEngineTestFake, SetCpuOveruseOptionsWithEncodeUsageMethod) {
|
|||||||
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
||||||
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
||||||
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
||||||
|
#ifdef USE_WEBRTC_DEV_BRANCH
|
||||||
|
// Verify that optional encode rsd thresholds are not set.
|
||||||
|
EXPECT_EQ(-1, cpu_option.low_encode_time_rsd_threshold);
|
||||||
|
EXPECT_EQ(-1, cpu_option.high_encode_time_rsd_threshold);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Add a new send stream and verify that cpu options are set from start.
|
// Add a new send stream and verify that cpu options are set from start.
|
||||||
EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(3)));
|
EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(3)));
|
||||||
@ -1196,6 +1201,51 @@ TEST_F(WebRtcVideoEngineTestFake, SetCpuOveruseOptionsWithEncodeUsageMethod) {
|
|||||||
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
||||||
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
||||||
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
||||||
|
#ifdef USE_WEBRTC_DEV_BRANCH
|
||||||
|
// Verify that optional encode rsd thresholds are not set.
|
||||||
|
EXPECT_EQ(-1, cpu_option.low_encode_time_rsd_threshold);
|
||||||
|
EXPECT_EQ(-1, cpu_option.high_encode_time_rsd_threshold);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(WebRtcVideoEngineTestFake, SetCpuOveruseOptionsWithEncodeRsdThresholds) {
|
||||||
|
EXPECT_TRUE(SetupEngine());
|
||||||
|
EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(1)));
|
||||||
|
int first_send_channel = vie_.GetLastChannel();
|
||||||
|
|
||||||
|
// Set optional encode rsd thresholds and verify cpu options.
|
||||||
|
cricket::VideoOptions options;
|
||||||
|
options.conference_mode.Set(true);
|
||||||
|
options.cpu_underuse_threshold.Set(10);
|
||||||
|
options.cpu_overuse_threshold.Set(20);
|
||||||
|
options.cpu_underuse_encode_rsd_threshold.Set(30);
|
||||||
|
options.cpu_overuse_encode_rsd_threshold.Set(40);
|
||||||
|
options.cpu_overuse_encode_usage.Set(true);
|
||||||
|
EXPECT_TRUE(channel_->SetOptions(options));
|
||||||
|
webrtc::CpuOveruseOptions cpu_option =
|
||||||
|
vie_.GetCpuOveruseOptions(first_send_channel);
|
||||||
|
EXPECT_EQ(10, cpu_option.low_encode_usage_threshold_percent);
|
||||||
|
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
||||||
|
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
||||||
|
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
||||||
|
#ifdef USE_WEBRTC_DEV_BRANCH
|
||||||
|
EXPECT_EQ(30, cpu_option.low_encode_time_rsd_threshold);
|
||||||
|
EXPECT_EQ(40, cpu_option.high_encode_time_rsd_threshold);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Add a new send stream and verify that cpu options are set from start.
|
||||||
|
EXPECT_TRUE(channel_->AddSendStream(cricket::StreamParams::CreateLegacy(3)));
|
||||||
|
int second_send_channel = vie_.GetLastChannel();
|
||||||
|
EXPECT_NE(first_send_channel, second_send_channel);
|
||||||
|
cpu_option = vie_.GetCpuOveruseOptions(second_send_channel);
|
||||||
|
EXPECT_EQ(10, cpu_option.low_encode_usage_threshold_percent);
|
||||||
|
EXPECT_EQ(20, cpu_option.high_encode_usage_threshold_percent);
|
||||||
|
EXPECT_FALSE(cpu_option.enable_capture_jitter_method);
|
||||||
|
EXPECT_TRUE(cpu_option.enable_encode_usage_method);
|
||||||
|
#ifdef USE_WEBRTC_DEV_BRANCH
|
||||||
|
EXPECT_EQ(30, cpu_option.low_encode_time_rsd_threshold);
|
||||||
|
EXPECT_EQ(40, cpu_option.high_encode_time_rsd_threshold);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test that AddRecvStream doesn't create new channel for 1:1 call.
|
// Test that AddRecvStream doesn't create new channel for 1:1 call.
|
||||||
|
Loading…
Reference in New Issue
Block a user