Index: remoting/client/rectangle_update_decoder.h |
diff --git a/remoting/client/rectangle_update_decoder.h b/remoting/client/rectangle_update_decoder.h |
index e6c344e48a763cb58558866a1738a84390a46acb..1eb93b500f28e303366f4eb808214cbe40da1a09 100644 |
--- a/remoting/client/rectangle_update_decoder.h |
+++ b/remoting/client/rectangle_update_decoder.h |
@@ -7,8 +7,8 @@ |
#include "base/scoped_ptr.h" |
#include "base/task.h" |
+#include "gfx/size.h" |
#include "media/base/video_frame.h" |
-#include "remoting/base/decoder.h" // For UpdatedRects |
class MessageLoop; |
@@ -19,14 +19,22 @@ class FrameConsumer; |
class VideoPacketFormat; |
class VideoPacket; |
+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: |
RectangleUpdateDecoder(MessageLoop* message_loop, |
FrameConsumer* consumer); |
~RectangleUpdateDecoder(); |
+ // Initializes decoder with the infromation from the protocol config. |
+ void Initialize(const protocol::SessionConfig* config); |
+ |
// Decodes the contents of |packet| calling OnPartialFrameOutput() in the |
// regsitered as data is avaialable. DecodePacket may keep a reference to |
// |packet| so the |packet| must remain alive and valid until |done| is |
@@ -34,21 +42,20 @@ class RectangleUpdateDecoder { |
// |
// TODO(ajwong): Should packet be a const pointer to make the lifetime |
// more clear? |
- void DecodePacket(const VideoPacket& packet, Task* done); |
+ void DecodePacket(const VideoPacket* packet, Task* done); |
private: |
- static bool IsValidPacket(const VideoPacket& packet); |
+ void InitializeDecoder(Task* done); |
- void InitializeDecoder(const VideoPacketFormat& format, Task* done); |
- |
- void ProcessPacketData(const VideoPacket& packet, Task* done); |
+ void ProcessPacketData(const VideoPacket* packet, Task* done); |
// Pointers to infrastructure objects. Not owned. |
MessageLoop* message_loop_; |
FrameConsumer* consumer_; |
+ gfx::Size screen_size_; |
+ |
scoped_ptr<Decoder> decoder_; |
- UpdatedRects updated_rects_; |
// Framebuffer for the decoder. |
scoped_refptr<media::VideoFrame> frame_; |