Chromium Code Reviews| Index: remoting/client/rectangle_update_decoder.h |
| diff --git a/remoting/client/rectangle_update_decoder.h b/remoting/client/rectangle_update_decoder.h |
| index af91267a6d0b6e80f5dbefccc3d4490c7acf1fa5..d248b68c6c11f230d196479dcdd3bd731d6daf5d 100644 |
| --- a/remoting/client/rectangle_update_decoder.h |
| +++ b/remoting/client/rectangle_update_decoder.h |
| @@ -7,7 +7,7 @@ |
| #include <list> |
| -#include "base/callback.h" |
| +#include "base/callback_forward.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "remoting/codec/video_decoder.h" |
| @@ -22,12 +22,11 @@ class SingleThreadTaskRunner; |
| namespace pp { |
| class ImageData; |
| -}; |
| +} // namespace pp |
| namespace remoting { |
| class ChromotingStats; |
| -class VideoPacket; |
| namespace protocol { |
| class SessionConfig; |
| @@ -54,8 +53,8 @@ class RectangleUpdateDecoder |
| // Initializes decoder with the information from the protocol config. |
| void Initialize(const protocol::SessionConfig& config); |
| - // Removes all video packets in the queue. |
| - void DropAllPackets(); |
| + // Stop decoding of any pending video packets. |
| + void Stop(); |
| // FrameProducer implementation. These methods may be called before we are |
| // Initialize()d, or we know the source screen size. |
| @@ -68,20 +67,11 @@ class RectangleUpdateDecoder |
| // VideoStub implementation. |
| virtual void ProcessVideoPacket(scoped_ptr<VideoPacket> packet, |
| const base::Closure& done) OVERRIDE; |
| - virtual int GetPendingVideoPackets() OVERRIDE; |
| // Return the stats recorded by this client. |
| ChromotingStats* GetStats(); |
| private: |
| - struct QueuedVideoPacket { |
| - QueuedVideoPacket(scoped_ptr<VideoPacket> packet, |
| - const base::Closure& done); |
| - ~QueuedVideoPacket(); |
| - VideoPacket* packet; |
| - base::Closure done; |
| - }; |
| - |
| friend class base::RefCountedThreadSafe<RectangleUpdateDecoder>; |
| virtual ~RectangleUpdateDecoder(); |
| @@ -90,10 +80,6 @@ class RectangleUpdateDecoder |
| void SchedulePaint(); |
| void DoPaint(); |
| - // If a packet is not being processed, dispatches a single message from the |
| - // |received_packets_| queue. |
| - void ProcessNextPacket(); |
| - |
| // Decodes the contents of |packet|. DecodePacket may keep a reference to |
| // |packet| so the |packet| must remain alive and valid until |done| is |
| // executed. |
| @@ -102,7 +88,9 @@ class RectangleUpdateDecoder |
| // Callback method when a VideoPacket is processed. |
| // If |last_packet| is true then |decode_start| contains the timestamp when |
| // the packet will start to be processed. |
| - void OnPacketDone(bool last_packet, base::Time decode_start); |
| + void OnPacketDone(bool last_packet, |
| + base::Time decode_start, |
| + const base::Closure& done); |
| scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
| scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner_; |
| @@ -125,16 +113,8 @@ class RectangleUpdateDecoder |
| // Flag used to coalesce runs of SchedulePaint()s into a single DoPaint(). |
| bool paint_scheduled_; |
| - // Contains all video packets that have been received, but have not yet been |
| - // processed. |
| - // |
| - // Used to serialize sending of messages to the client. |
| - // TODO(sergeyu): Simplify this code and remove this list. |
| - std::list<QueuedVideoPacket> received_packets_; |
| - |
| - // True if a message is being processed. Can be used to determine if it is |
| - // safe to dispatch another message. |
| - bool packet_being_processed_; |
| + // Set to true after Stop() has been called. |
|
Wez
2012/08/28 16:42:27
nit: True after Stop() has been called.
The curren
Sergey Ulanov
2012/08/28 18:30:27
Done.
|
| + bool stopped_; |
| ChromotingStats stats_; |