| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef REMOTING_PROTOCOL_RTP_READER_H_ | 5 #ifndef REMOTING_PROTOCOL_RTP_READER_H_ |
| 6 #define REMOTING_PROTOCOL_RTP_READER_H_ | 6 #define REMOTING_PROTOCOL_RTP_READER_H_ |
| 7 | 7 |
| 8 #include "base/callback.h" |
| 8 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 9 #include "remoting/base/compound_buffer.h" | 10 #include "remoting/base/compound_buffer.h" |
| 10 #include "remoting/protocol/rtp_utils.h" | 11 #include "remoting/protocol/rtp_utils.h" |
| 11 #include "remoting/protocol/socket_reader_base.h" | 12 #include "remoting/protocol/socket_reader_base.h" |
| 12 | 13 |
| 13 namespace remoting { | 14 namespace remoting { |
| 14 namespace protocol { | 15 namespace protocol { |
| 15 | 16 |
| 16 class RtpPacket { | 17 class RtpPacket { |
| 17 public: | 18 public: |
| (...skipping 27 matching lines...) Expand all Loading... |
| 45 // socket, parses them, calculates extended sequence number and then | 46 // socket, parses them, calculates extended sequence number and then |
| 46 // passes them to a callback. It also collects statistics for RTCP | 47 // passes them to a callback. It also collects statistics for RTCP |
| 47 // receiver reports, but doesn't send any RTCP packets itself. | 48 // receiver reports, but doesn't send any RTCP packets itself. |
| 48 class RtpReader : public SocketReaderBase { | 49 class RtpReader : public SocketReaderBase { |
| 49 public: | 50 public: |
| 50 RtpReader(); | 51 RtpReader(); |
| 51 virtual ~RtpReader(); | 52 virtual ~RtpReader(); |
| 52 | 53 |
| 53 // The OnMessageCallback is called whenever a new message is received. | 54 // The OnMessageCallback is called whenever a new message is received. |
| 54 // Ownership of the message is passed the callback. | 55 // Ownership of the message is passed the callback. |
| 55 typedef Callback1<const RtpPacket*>::Type OnMessageCallback; | 56 typedef base::Callback<void(const RtpPacket*)> OnMessageCallback; |
| 56 | 57 |
| 57 // Initialize the reader and start reading. Must be called on the thread | 58 // Initialize the reader and start reading. Must be called on the thread |
| 58 // |socket| belongs to. The callback will be called when a new message is | 59 // |socket| belongs to. The callback will be called when a new message is |
| 59 // received. RtpReader owns |on_message_callback|, doesn't own | 60 // received. RtpReader owns |on_message_callback|, doesn't own |
| 60 // |socket|. | 61 // |socket|. |
| 61 void Init(net::Socket* socket, OnMessageCallback* on_message_callback); | 62 void Init(net::Socket* socket, const OnMessageCallback& on_message_callback); |
| 62 | 63 |
| 63 void GetReceiverReport(RtcpReceiverReport* report); | 64 void GetReceiverReport(RtcpReceiverReport* report); |
| 64 | 65 |
| 65 protected: | 66 protected: |
| 66 friend class RtpVideoReaderTest; | 67 friend class RtpVideoReaderTest; |
| 67 | 68 |
| 68 virtual void OnDataReceived(net::IOBuffer* buffer, int data_size); | 69 virtual void OnDataReceived(net::IOBuffer* buffer, int data_size); |
| 69 | 70 |
| 70 private: | 71 private: |
| 71 scoped_ptr<OnMessageCallback> on_message_callback_; | 72 OnMessageCallback on_message_callback_; |
| 72 | 73 |
| 73 uint16 max_sequence_number_; | 74 uint16 max_sequence_number_; |
| 74 uint16 wrap_around_count_; | 75 uint16 wrap_around_count_; |
| 75 int start_sequence_number_; | 76 int start_sequence_number_; |
| 76 int total_packets_received_; | 77 int total_packets_received_; |
| 77 | 78 |
| 78 DISALLOW_COPY_AND_ASSIGN(RtpReader); | 79 DISALLOW_COPY_AND_ASSIGN(RtpReader); |
| 79 }; | 80 }; |
| 80 | 81 |
| 81 } // namespace protocol | 82 } // namespace protocol |
| 82 } // namespace remoting | 83 } // namespace remoting |
| 83 | 84 |
| 84 | 85 |
| 85 #endif // REMOTING_PROTOCOL_RTP_READER_H_ | 86 #endif // REMOTING_PROTOCOL_RTP_READER_H_ |
| OLD | NEW |