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()); |