1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef REMOTING_HOST_VIDEO_FRAME_RECORDER_HOST_EXTENSION_H_ 6#define REMOTING_HOST_VIDEO_FRAME_RECORDER_HOST_EXTENSION_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "remoting/host/host_extension.h" 10 11namespace remoting { 12 13// Extends Chromoting sessions with the ability to record raw frames and 14// download them to the client. This can be used to obtain representative 15// sequences of frames to run tests against. 16class VideoFrameRecorderHostExtension : public HostExtension { 17 public: 18 VideoFrameRecorderHostExtension(); 19 virtual ~VideoFrameRecorderHostExtension(); 20 21 // Sets the maximum number of bytes that each session may record. 22 void SetMaxContentBytes(int64_t max_content_bytes); 23 24 // remoting::HostExtension interface. 25 virtual std::string capability() const OVERRIDE; 26 virtual scoped_ptr<HostExtensionSession> CreateExtensionSession( 27 ClientSessionControl* client_session, 28 protocol::ClientStub* client_stub) OVERRIDE; 29 30 private: 31 int64_t max_content_bytes_; 32 33 DISALLOW_COPY_AND_ASSIGN(VideoFrameRecorderHostExtension); 34}; 35 36} // namespace remoting 37 38#endif // REMOTING_HOST_VIDEO_FRAME_RECORDER_HOST_EXTENSION_H_ 39