summaryrefslogtreecommitdiffstats
path: root/remoting/host/client_session.cc
diff options
context:
space:
mode:
authorwez <wez@chromium.org>2015-06-10 11:22:29 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-10 18:24:38 +0000
commit43ac266109c2cb29aca8a4858726a3b369c1f9db (patch)
tree9190eb075e2952dc784c6b6f30d430631267987d /remoting/host/client_session.cc
parent887e6c6ceb9fcd516546f3c436831a8c9c9332c6 (diff)
downloadchromium_src-43ac266109c2cb29aca8a4858726a3b369c1f9db.zip
chromium_src-43ac266109c2cb29aca8a4858726a3b369c1f9db.tar.gz
chromium_src-43ac266109c2cb29aca8a4858726a3b369c1f9db.tar.bz2
Update VideoFramePump to pass un-changed frames to encoders.
This allows VP9/lossy mode to "top-off" previously encoded imagery to improve visual quality at the client, by continuing to deliver data even when nothing has actually changed on the host desktop. This CL makes several other minor changes: - Fix the host's --enable-i444 flag, which was broken by refactoring. - Tweak VP9/lossy mode to more conservative quantization settings. - Tweak VP9/lossy mode to encode up to two unchanged frames for top-off. - Update VideoEncoderVerbatim for the new VideoFramePump semantics. - Update the VideoFrameRecorder & FakeDesktopCapturer. - Adds simple codec & VideoFramePump unit-tests for the new behaviour. BUG=134202 Review URL: https://codereview.chromium.org/1150163002 Cr-Commit-Position: refs/heads/master@{#333764}
Diffstat (limited to 'remoting/host/client_session.cc')
-rw-r--r--remoting/host/client_session.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
index d6a02fa..2b72eca 100644
--- a/remoting/host/client_session.cc
+++ b/remoting/host/client_session.cc
@@ -6,6 +6,7 @@
#include <algorithm>
+#include "base/command_line.h"
#include "base/single_thread_task_runner.h"
#include "base/thread_task_runner_handle.h"
#include "remoting/base/capabilities.h"
@@ -41,6 +42,9 @@ namespace remoting {
namespace {
+// Name of command-line flag to enable VP9 to use I444 by default.
+const char kEnableI444SwitchName[] = "enable-i444";
+
scoped_ptr<VideoEncoder> CreateVideoEncoder(
const protocol::SessionConfig& config) {
const protocol::ChannelConfig& video_config = config.video_config();
@@ -107,7 +111,8 @@ ClientSession::ClientSession(
is_authenticated_(false),
pause_video_(false),
lossless_video_encode_(false),
- lossless_video_color_(false),
+ lossless_video_color_(base::CommandLine::ForCurrentProcess()->HasSwitch(
+ kEnableI444SwitchName)),
weak_factory_(this) {
connection_->SetEventHandler(this);