| Index: remoting/host/remoting_me2me_host.cc
|
| diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
|
| index 78daa67c52dc09d15bdc3a3cefb53be4b5c5ea44..7ac8d09520354ff416dc4185a305de9585bdf537 100644
|
| --- a/remoting/host/remoting_me2me_host.cc
|
| +++ b/remoting/host/remoting_me2me_host.cc
|
| @@ -68,6 +68,7 @@
|
| #include "remoting/host/token_validator_factory_impl.h"
|
| #include "remoting/host/usage_stats_consent.h"
|
| #include "remoting/host/username.h"
|
| +#include "remoting/host/video_frame_recorder_host_extension.h"
|
| #include "remoting/protocol/me2me_host_authenticator_factory.h"
|
| #include "remoting/protocol/network_settings.h"
|
| #include "remoting/protocol/pairing_registry.h"
|
| @@ -125,6 +126,9 @@ const char kSignalParentSwitchName[] = "signal-parent";
|
| // Command line switch used to enable VP9 encoding.
|
| const char kEnableVp9SwitchName[] = "enable-vp9";
|
|
|
| +// Command line switch used to enable and configure the frame-recorder.
|
| +const char kFrameRecorderBufferKbName[] = "frame-recorder-buffer-kb";
|
| +
|
| // Value used for --host-config option to indicate that the path must be read
|
| // from stdin.
|
| const char kStdinConfigPath[] = "-";
|
| @@ -289,6 +293,7 @@ class HostProcess
|
| std::string host_owner_;
|
| bool use_service_account_;
|
| bool enable_vp9_;
|
| + int64_t frame_recorder_buffer_size_;
|
|
|
| scoped_ptr<policy_hack::PolicyWatcher> policy_watcher_;
|
| std::string host_domain_;
|
| @@ -334,6 +339,7 @@ HostProcess::HostProcess(scoped_ptr<ChromotingHostContext> context,
|
| state_(HOST_INITIALIZING),
|
| use_service_account_(false),
|
| enable_vp9_(false),
|
| + frame_recorder_buffer_size_(0),
|
| host_username_match_required_(false),
|
| allow_nat_traversal_(true),
|
| allow_relay_(true),
|
| @@ -827,6 +833,24 @@ bool HostProcess::ApplyConfig(scoped_ptr<JsonHostConfig> config) {
|
| config->GetBoolean(kEnableVp9ConfigPath, &enable_vp9_);
|
| }
|
|
|
| + // Allow the command-line to override the size of the frame recorder buffer.
|
| + std::string frame_recorder_buffer_kb;
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + kFrameRecorderBufferKbName)) {
|
| + frame_recorder_buffer_kb =
|
| + CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| + kFrameRecorderBufferKbName);
|
| + } else {
|
| + config->GetString(kFrameRecorderBufferKbConfigPath,
|
| + &frame_recorder_buffer_kb);
|
| + }
|
| + if (!frame_recorder_buffer_kb.empty()) {
|
| + int buffer_kb = 0;
|
| + if (base::StringToInt(frame_recorder_buffer_kb, &buffer_kb)) {
|
| + frame_recorder_buffer_size_ = 1024LL * buffer_kb;
|
| + }
|
| + }
|
| +
|
| return true;
|
| }
|
|
|
| @@ -1207,6 +1231,13 @@ void HostProcess::StartHost() {
|
| host_->set_protocol_config(config.Pass());
|
| }
|
|
|
| + if (frame_recorder_buffer_size_ > 0) {
|
| + scoped_ptr<VideoFrameRecorderHostExtension> frame_recorder_extension(
|
| + new VideoFrameRecorderHostExtension());
|
| + frame_recorder_extension->SetMaxContentBytes(frame_recorder_buffer_size_);
|
| + host_->AddExtension(frame_recorder_extension.PassAs<HostExtension>());
|
| + }
|
| +
|
| // TODO(simonmorris): Get the maximum session duration from a policy.
|
| #if defined(OS_LINUX)
|
| host_->SetMaximumSessionDuration(base::TimeDelta::FromHours(20));
|
| @@ -1226,7 +1257,7 @@ void HostProcess::StartHost() {
|
| new HostStatusLogger(host_->AsWeakPtr(), ServerLogEntry::ME2ME,
|
| signal_strategy_.get(), directory_bot_jid_));
|
|
|
| - // Set up repoting the host status notifications.
|
| + // Set up reporting the host status notifications.
|
| #if defined(REMOTING_MULTI_PROCESS)
|
| host_event_logger_.reset(
|
| new IpcHostEventLogger(host_->AsWeakPtr(), daemon_channel_.get()));
|
|
|