Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: remoting/host/client_session.cc

Issue 372943002: Add video frame recording capability to Chromoting hosts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Working implementation. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/client_session.cc
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
index 55e4decc1ca3bb70e29df4836cd787e0f1fbed1c..212fca0a5b13995760b293c0ba1f3bc0fe7552c2 100644
--- a/remoting/host/client_session.cc
+++ b/remoting/host/client_session.cc
@@ -22,6 +22,7 @@
#include "remoting/host/input_injector.h"
#include "remoting/host/screen_controls.h"
#include "remoting/host/screen_resolution.h"
+#include "remoting/host/video_frame_recorder.h"
#include "remoting/host/video_scheduler.h"
#include "remoting/proto/control.pb.h"
#include "remoting/proto/event.pb.h"
@@ -318,6 +319,12 @@ void ClientSession::OnConnectionAuthenticated(
scoped_ptr<VideoEncoder> video_encoder =
CreateVideoEncoder(connection_->session()->config());
+ // If video recording is enabled, wrap the encoder with the recorder.
+ if (video_frame_recorder_) {
+ video_encoder = video_frame_recorder_->WrapVideoEncoder(
+ video_encoder.Pass());
+ }
+
// Create a VideoScheduler to pump frames from the capturer to the client.
video_scheduler_ = new VideoScheduler(
video_capture_task_runner_,
@@ -469,9 +476,20 @@ void ClientSession::SetDisableInputs(bool disable_inputs) {
void ClientSession::SetGnubbyAuthHandlerForTesting(
GnubbyAuthHandler* gnubby_auth_handler) {
+ DCHECK(CalledOnValidThread());
gnubby_auth_handler_.reset(gnubby_auth_handler);
}
+void ClientSession::set_video_frame_recorder(
+ scoped_ptr<VideoFrameRecorder> recorder) {
+ DCHECK(CalledOnValidThread());
+ video_frame_recorder_ = recorder.Pass();
+}
+
+VideoFrameRecorder* ClientSession::video_frame_recorder() const {
+ return video_frame_recorder_.get();
+}
+
scoped_ptr<protocol::ClipboardStub> ClientSession::CreateClipboardProxy() {
DCHECK(CalledOnValidThread());

Powered by Google App Engine
This is Rietveld 408576698