Index: remoting/client/rectangle_update_decoder.h |
diff --git a/remoting/client/rectangle_update_decoder.h b/remoting/client/rectangle_update_decoder.h |
deleted file mode 100644 |
index 3c7468a082165b2629095ecd7375e703cb3f0e32..0000000000000000000000000000000000000000 |
--- a/remoting/client/rectangle_update_decoder.h |
+++ /dev/null |
@@ -1,117 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef REMOTING_CLIENT_RECTANGLE_UPDATE_DECODER_H_ |
-#define REMOTING_CLIENT_RECTANGLE_UPDATE_DECODER_H_ |
- |
-#include <list> |
- |
-#include "base/callback_forward.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "remoting/codec/video_decoder.h" |
-#include "remoting/client/chromoting_stats.h" |
-#include "remoting/client/frame_consumer_proxy.h" |
-#include "remoting/client/frame_producer.h" |
-#include "remoting/protocol/video_stub.h" |
-#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" |
- |
-namespace base { |
-class SingleThreadTaskRunner; |
-} // namespace base |
- |
-namespace remoting { |
- |
-class ChromotingStats; |
- |
-namespace protocol { |
-class SessionConfig; |
-} // namespace protocol |
- |
-// TODO(ajwong): Re-examine this API, especially with regards to how error |
-// conditions on each step are reported. Should they be CHECKs? Logs? Other? |
-// TODO(sergeyu): Rename this class. |
-class RectangleUpdateDecoder |
- : public base::RefCountedThreadSafe<RectangleUpdateDecoder>, |
- public FrameProducer, |
- public protocol::VideoStub { |
- public: |
- // Creates an update decoder on |main_task_runner_| and |decode_task_runner_|, |
- // outputting to |consumer|. The |main_task_runner_| is responsible for |
- // receiving and queueing packets. The |decode_task_runner_| is responsible |
- // for decoding the video packets. |
- // TODO(wez): Replace the ref-counted proxy with an owned FrameConsumer. |
- RectangleUpdateDecoder( |
- scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
- scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner, |
- scoped_refptr<FrameConsumerProxy> consumer); |
- |
- // Initializes decoder with the information from the protocol config. |
- void Initialize(const protocol::SessionConfig& config); |
- |
- // FrameProducer implementation. These methods may be called before we are |
- // Initialize()d, or we know the source screen size. |
- virtual void DrawBuffer(webrtc::DesktopFrame* buffer) OVERRIDE; |
- virtual void InvalidateRegion(const webrtc::DesktopRegion& region) OVERRIDE; |
- virtual void RequestReturnBuffers(const base::Closure& done) OVERRIDE; |
- virtual void SetOutputSizeAndClip( |
- const webrtc::DesktopSize& view_size, |
- const webrtc::DesktopRect& clip_area) OVERRIDE; |
- virtual const webrtc::DesktopRegion* GetBufferShape() OVERRIDE; |
- |
- // VideoStub implementation. |
- virtual void ProcessVideoPacket(scoped_ptr<VideoPacket> packet, |
- const base::Closure& done) OVERRIDE; |
- |
- // Return the stats recorded by this client. |
- ChromotingStats* GetStats(); |
- |
- private: |
- friend class base::RefCountedThreadSafe<RectangleUpdateDecoder>; |
- virtual ~RectangleUpdateDecoder(); |
- |
- // Paints the invalidated region to the next available buffer and returns it |
- // to the consumer. |
- void SchedulePaint(); |
- void DoPaint(); |
- |
- // Decodes the contents of |packet|. DecodePacket may keep a reference to |
- // |packet| so the |packet| must remain alive and valid until |done| is |
- // executed. |
- void DecodePacket(scoped_ptr<VideoPacket> packet, const base::Closure& done); |
- |
- // Callback method when a VideoPacket is processed. |decode_start| contains |
- // the timestamp when the packet will start to be processed. |
- void OnPacketDone(base::Time decode_start, const base::Closure& done); |
- |
- scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
- scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner_; |
- scoped_refptr<FrameConsumerProxy> consumer_; |
- scoped_ptr<VideoDecoder> decoder_; |
- |
- // Remote screen size in pixels. |
- webrtc::DesktopSize source_size_; |
- |
- // Vertical and horizontal DPI of the remote screen. |
- webrtc::DesktopVector source_dpi_; |
- |
- // The current dimensions of the frame consumer view. |
- webrtc::DesktopSize view_size_; |
- webrtc::DesktopRect clip_area_; |
- |
- // The drawing buffers supplied by the frame consumer. |
- std::list<webrtc::DesktopFrame*> buffers_; |
- |
- // Flag used to coalesce runs of SchedulePaint()s into a single DoPaint(). |
- bool paint_scheduled_; |
- |
- ChromotingStats stats_; |
- |
- // Keep track of the most recent sequence number bounced back from the host. |
- int64 latest_sequence_number_; |
-}; |
- |
-} // namespace remoting |
- |
-#endif // REMOTING_CLIENT_RECTANGLE_UPDATE_DECODER_H_ |