diff options
author | wez <wez@chromium.org> | 2015-06-10 11:22:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-10 18:24:38 +0000 |
commit | 43ac266109c2cb29aca8a4858726a3b369c1f9db (patch) | |
tree | 9190eb075e2952dc784c6b6f30d430631267987d /remoting/host/client_session.cc | |
parent | 887e6c6ceb9fcd516546f3c436831a8c9c9332c6 (diff) | |
download | chromium_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.cc | 7 |
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); |