Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Side by Side Diff: media/cast/rtcp/rtcp.h

Issue 100823015: Cast: move net->transport (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updating transport callback Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/cast/rtcp/mock_rtcp_receiver_feedback.h ('k') | media/cast/rtcp/rtcp.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 MEDIA_CAST_RTCP_RTCP_H_ 5 #ifndef MEDIA_CAST_RTCP_RTCP_H_
6 #define MEDIA_CAST_RTCP_RTCP_H_ 6 #define MEDIA_CAST_RTCP_RTCP_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 13
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
16 #include "base/time/tick_clock.h" 16 #include "base/time/tick_clock.h"
17 #include "base/time/time.h" 17 #include "base/time/time.h"
18 #include "media/cast/cast_config.h" 18 #include "media/cast/cast_config.h"
19 #include "media/cast/cast_defines.h" 19 #include "media/cast/cast_defines.h"
20 #include "media/cast/cast_environment.h" 20 #include "media/cast/cast_environment.h"
21 #include "media/cast/rtcp/rtcp_defines.h" 21 #include "media/cast/rtcp/rtcp_defines.h"
22 #include "media/cast/transport/cast_transport_defines.h"
23 #include "media/cast/transport/pacing/paced_sender.h"
24 #include "media/cast/transport/rtcp/rtcp_builder.h"
22 25
23 namespace media { 26 namespace media {
24 namespace cast { 27 namespace cast {
25 28
26 class LocalRtcpReceiverFeedback; 29 class LocalRtcpReceiverFeedback;
27 class LocalRtcpRttFeedback; 30 class LocalRtcpRttFeedback;
28 class RtcpBuilder;
29 class PacedPacketSender; 31 class PacedPacketSender;
30 class RtcpReceiver; 32 class RtcpReceiver;
31 class RtcpSender; 33 class RtcpSender;
32 34
33 typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair; 35 typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair;
34 typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap; 36 typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap;
35 typedef std::queue<RtcpSendTimePair> RtcpSendTimeQueue; 37 typedef std::queue<RtcpSendTimePair> RtcpSendTimeQueue;
36 38
37 class RtcpSenderFeedback { 39 class RtcpSenderFeedback {
38 public: 40 public:
39 virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) = 0; 41 virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) = 0;
40 42
41 virtual ~RtcpSenderFeedback() {} 43 virtual ~RtcpSenderFeedback() {}
42 }; 44 };
43 45
44 class RtpSenderStatistics { 46 class RtpSenderStatistics {
45 public: 47 public:
46 virtual void GetStatistics(const base::TimeTicks& now, 48 virtual void GetStatistics(const base::TimeTicks& now,
47 RtcpSenderInfo* sender_info) = 0; 49 transport::RtcpSenderInfo* sender_info) = 0;
48 50
49 virtual ~RtpSenderStatistics() {} 51 virtual ~RtpSenderStatistics() {}
50 }; 52 };
51 53
52 class RtpReceiverStatistics { 54 class RtpReceiverStatistics {
53 public: 55 public:
54 virtual void GetStatistics(uint8* fraction_lost, 56 virtual void GetStatistics(uint8* fraction_lost,
55 uint32* cumulative_lost, // 24 bits valid. 57 uint32* cumulative_lost, // 24 bits valid.
56 uint32* extended_high_sequence_number, 58 uint32* extended_high_sequence_number,
57 uint32* jitter) = 0; 59 uint32* jitter) = 0;
58 60
59 virtual ~RtpReceiverStatistics() {} 61 virtual ~RtpReceiverStatistics() {}
60 }; 62 };
61 63
62 class Rtcp { 64 class Rtcp {
63 public: 65 public:
64 Rtcp(scoped_refptr<CastEnvironment> cast_environment, 66 Rtcp(scoped_refptr<CastEnvironment> cast_environment,
65 RtcpSenderFeedback* sender_feedback, 67 RtcpSenderFeedback* sender_feedback,
66 PacedPacketSender* paced_packet_sender, 68 transport::PacedPacketSender* paced_packet_sender,
67 RtpSenderStatistics* rtp_sender_statistics, 69 RtpSenderStatistics* rtp_sender_statistics,
68 RtpReceiverStatistics* rtp_receiver_statistics, 70 RtpReceiverStatistics* rtp_receiver_statistics,
69 RtcpMode rtcp_mode, 71 RtcpMode rtcp_mode,
70 const base::TimeDelta& rtcp_interval, 72 const base::TimeDelta& rtcp_interval,
71 uint32 local_ssrc, 73 uint32 local_ssrc,
72 uint32 remote_ssrc, 74 uint32 remote_ssrc,
73 const std::string& c_name); 75 const std::string& c_name);
74 76
75 virtual ~Rtcp(); 77 virtual ~Rtcp();
76 78
77 static bool IsRtcpPacket(const uint8* rtcp_buffer, size_t length); 79 static bool IsRtcpPacket(const uint8* rtcp_buffer, size_t length);
78 80
79 static uint32 GetSsrcOfSender(const uint8* rtcp_buffer, size_t length); 81 static uint32 GetSsrcOfSender(const uint8* rtcp_buffer, size_t length);
80 82
81 base::TimeTicks TimeToSendNextRtcpReport(); 83 base::TimeTicks TimeToSendNextRtcpReport();
82 // |sender_log_message| is optional; without it no log messages will be 84 // |sender_log_message| is optional; without it no log messages will be
83 // attached to the RTCP report; instead a normal RTCP send report will be 85 // attached to the RTCP report; instead a normal RTCP send report will be
84 // sent. 86 // sent.
85 // Additionally if all messages in |sender_log_message| does 87 // Additionally if all messages in |sender_log_message| does
86 // not fit in the packet the |sender_log_message| will contain the remaining 88 // not fit in the packet the |sender_log_message| will contain the remaining
87 // unsent messages. 89 // unsent messages.
88 void SendRtcpFromRtpSender(RtcpSenderLogMessage* sender_log_message); 90 void SendRtcpFromRtpSender(
91 transport::RtcpSenderLogMessage* sender_log_message);
89 92
90 // |cast_message| and |receiver_log| is optional; if |cast_message| is 93 // |cast_message| and |receiver_log| is optional; if |cast_message| is
91 // provided the RTCP receiver report will append a Cast message containing 94 // provided the RTCP receiver report will append a Cast message containing
92 // Acks and Nacks; if |receiver_log| is provided the RTCP receiver report will 95 // Acks and Nacks; if |receiver_log| is provided the RTCP receiver report will
93 // append the log messages. If no argument is set a normal RTCP receiver 96 // append the log messages. If no argument is set a normal RTCP receiver
94 // report will be sent. Additionally if all messages in |receiver_log| does 97 // report will be sent. Additionally if all messages in |receiver_log| does
95 // not fit in the packet the |receiver_log| will contain the remaining unsent 98 // not fit in the packet the |receiver_log| will contain the remaining unsent
96 // messages. 99 // messages.
97 void SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, 100 void SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message,
98 RtcpReceiverLogMessage* receiver_log); 101 RtcpReceiverLogMessage* receiver_log);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 const uint32 local_ssrc_; 146 const uint32 local_ssrc_;
144 const uint32 remote_ssrc_; 147 const uint32 remote_ssrc_;
145 148
146 // Not owned by this class. 149 // Not owned by this class.
147 RtpSenderStatistics* const rtp_sender_statistics_; 150 RtpSenderStatistics* const rtp_sender_statistics_;
148 RtpReceiverStatistics* const rtp_receiver_statistics_; 151 RtpReceiverStatistics* const rtp_receiver_statistics_;
149 152
150 scoped_ptr<LocalRtcpRttFeedback> rtt_feedback_; 153 scoped_ptr<LocalRtcpRttFeedback> rtt_feedback_;
151 scoped_ptr<LocalRtcpReceiverFeedback> receiver_feedback_; 154 scoped_ptr<LocalRtcpReceiverFeedback> receiver_feedback_;
152 scoped_ptr<RtcpSender> rtcp_sender_; 155 scoped_ptr<RtcpSender> rtcp_sender_;
153 scoped_ptr<RtcpBuilder> rtcp_builder_; 156 scoped_ptr<transport::RtcpBuilder> rtcp_builder_;
154 scoped_ptr<RtcpReceiver> rtcp_receiver_; 157 scoped_ptr<RtcpReceiver> rtcp_receiver_;
155 158
156 base::TimeTicks next_time_to_send_rtcp_; 159 base::TimeTicks next_time_to_send_rtcp_;
157 RtcpSendTimeMap last_reports_sent_map_; 160 RtcpSendTimeMap last_reports_sent_map_;
158 RtcpSendTimeQueue last_reports_sent_queue_; 161 RtcpSendTimeQueue last_reports_sent_queue_;
159 base::TimeTicks time_last_report_received_; 162 base::TimeTicks time_last_report_received_;
160 uint32 last_report_received_; 163 uint32 last_report_received_;
161 164
162 uint32 last_received_rtp_timestamp_; 165 uint32 last_received_rtp_timestamp_;
163 uint32 last_received_ntp_seconds_; 166 uint32 last_received_ntp_seconds_;
164 uint32 last_received_ntp_fraction_; 167 uint32 last_received_ntp_fraction_;
165 168
166 base::TimeDelta rtt_; 169 base::TimeDelta rtt_;
167 base::TimeDelta min_rtt_; 170 base::TimeDelta min_rtt_;
168 base::TimeDelta max_rtt_; 171 base::TimeDelta max_rtt_;
169 int number_of_rtt_in_avg_; 172 int number_of_rtt_in_avg_;
170 float avg_rtt_ms_; 173 float avg_rtt_ms_;
171 174
172 DISALLOW_COPY_AND_ASSIGN(Rtcp); 175 DISALLOW_COPY_AND_ASSIGN(Rtcp);
173 }; 176 };
174 177
175 } // namespace cast 178 } // namespace cast
176 } // namespace media 179 } // namespace media
177 180
178 #endif // MEDIA_CAST_RTCP_RTCP_H_ 181 #endif // MEDIA_CAST_RTCP_RTCP_H_
OLDNEW
« no previous file with comments | « media/cast/rtcp/mock_rtcp_receiver_feedback.h ('k') | media/cast/rtcp/rtcp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698