Index: remoting/base/decoder.h |
=================================================================== |
--- remoting/base/decoder.h (revision 118791) |
+++ remoting/base/decoder.h (working copy) |
@@ -1,17 +1,21 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 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_BASE_DECODER_H_ |
#define REMOTING_BASE_DECODER_H_ |
+#include <vector> |
+ |
#include "base/memory/scoped_ptr.h" |
#include "media/base/video_frame.h" |
#include "remoting/proto/video.pb.h" |
-#include "third_party/skia/include/core/SkRegion.h" |
+#include "third_party/skia/include/core/SkRect.h" |
namespace remoting { |
+typedef std::vector<SkIRect> RectVector; |
+ |
// Interface for a decoder that takes a stream of bytes from the network and |
// outputs frames of data. |
// |
@@ -38,10 +42,10 @@ |
// Feeds more data into the decoder. |
virtual DecodeResult DecodePacket(const VideoPacket* packet) = 0; |
- // Returns the region affected by the most recent frame. Can be called only |
+ // Returns rects that were updated in the last frame. Can be called only |
// after DecodePacket returned DECODE_DONE. Caller keeps ownership of |
- // |region|. |
- virtual void GetUpdatedRegion(SkRegion* region) = 0; |
+ // |rects|. |rects| is kept empty if whole screen needs to be updated. |
+ virtual void GetUpdatedRects(RectVector* rects) = 0; |
// Reset the decoder to an uninitialized state. Release all references to |
// the initialized |frame|. Initialize() must be called before the decoder |
@@ -61,12 +65,14 @@ |
// Set the clipping rectangle to the decoder. Decoder should respect this and |
// only output changes in this rectangle. The new clipping rectangle will be |
// effective on the next decoded video frame. |
+ // |
+ // When scaling is enabled clipping rectangles are ignored. |
virtual void SetClipRect(const SkIRect& clip_rect) {} |
- // Force decoder to output a frame based on the specified |region| of the |
- // most recently decoded video frame. |region| is expressed in video frame |
- // rather than output coordinates. |
- virtual void RefreshRegion(const SkRegion& region) {} |
+ // Force decoder to output a video frame with content in |rects| using the |
+ // last decoded video frame. |rects| are expressed in video frame rather |
+ // than output coordinates. |
+ virtual void RefreshRects(const RectVector& rects) {} |
}; |
} // namespace remoting |