OLD | NEW |
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> |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "media/cast/transport/cast_transport_defines.h" | 22 #include "media/cast/transport/cast_transport_defines.h" |
23 #include "media/cast/transport/cast_transport_sender.h" | 23 #include "media/cast/transport/cast_transport_sender.h" |
24 #include "media/cast/transport/pacing/paced_sender.h" | 24 #include "media/cast/transport/pacing/paced_sender.h" |
25 | 25 |
26 namespace media { | 26 namespace media { |
27 namespace cast { | 27 namespace cast { |
28 | 28 |
29 class LocalRtcpReceiverFeedback; | 29 class LocalRtcpReceiverFeedback; |
30 class LocalRtcpRttFeedback; | 30 class LocalRtcpRttFeedback; |
31 class PacedPacketSender; | 31 class PacedPacketSender; |
| 32 class ReceiverRtcpEventSubscriber; |
32 class RtcpReceiver; | 33 class RtcpReceiver; |
33 class RtcpSender; | 34 class RtcpSender; |
34 | 35 |
35 typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair; | 36 typedef std::pair<uint32, base::TimeTicks> RtcpSendTimePair; |
36 typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap; | 37 typedef std::map<uint32, base::TimeTicks> RtcpSendTimeMap; |
37 typedef std::queue<RtcpSendTimePair> RtcpSendTimeQueue; | 38 typedef std::queue<RtcpSendTimePair> RtcpSendTimeQueue; |
38 | 39 |
39 class RtcpSenderFeedback { | 40 class RtcpSenderFeedback { |
40 public: | 41 public: |
41 virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) = 0; | 42 virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback) = 0; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 base::TimeTicks TimeToSendNextRtcpReport(); | 88 base::TimeTicks TimeToSendNextRtcpReport(); |
88 // |sender_log_message| is optional; without it no log messages will be | 89 // |sender_log_message| is optional; without it no log messages will be |
89 // attached to the RTCP report; instead a normal RTCP send report will be | 90 // attached to the RTCP report; instead a normal RTCP send report will be |
90 // sent. | 91 // sent. |
91 // Additionally if all messages in |sender_log_message| does | 92 // Additionally if all messages in |sender_log_message| does |
92 // not fit in the packet the |sender_log_message| will contain the remaining | 93 // not fit in the packet the |sender_log_message| will contain the remaining |
93 // unsent messages. | 94 // unsent messages. |
94 void SendRtcpFromRtpSender( | 95 void SendRtcpFromRtpSender( |
95 const transport::RtcpSenderLogMessage& sender_log_message); | 96 const transport::RtcpSenderLogMessage& sender_log_message); |
96 | 97 |
97 // |cast_message| and |receiver_log| is optional; if |cast_message| is | 98 // |cast_message| and |event_subscriber| is optional; if |cast_message| is |
98 // provided the RTCP receiver report will append a Cast message containing | 99 // provided the RTCP receiver report will append a Cast message containing |
99 // Acks and Nacks; if |receiver_log| is provided the RTCP receiver report will | 100 // Acks and Nacks; if |event_subscriber| is provided the RTCP receiver report |
100 // append the log messages. If no argument is set a normal RTCP receiver | 101 // will append the log messages from the subscriber. |
101 // report will be sent. Additionally if all messages in |receiver_log| does | |
102 // not fit in the packet the |receiver_log| will contain the remaining unsent | |
103 // messages. | |
104 void SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, | 102 void SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, |
105 RtcpReceiverLogMessage* receiver_log); | 103 ReceiverRtcpEventSubscriber* event_subscriber); |
106 | 104 |
107 void IncomingRtcpPacket(const uint8* rtcp_buffer, size_t length); | 105 void IncomingRtcpPacket(const uint8* rtcp_buffer, size_t length); |
108 bool Rtt(base::TimeDelta* rtt, | 106 bool Rtt(base::TimeDelta* rtt, |
109 base::TimeDelta* avg_rtt, | 107 base::TimeDelta* avg_rtt, |
110 base::TimeDelta* min_rtt, | 108 base::TimeDelta* min_rtt, |
111 base::TimeDelta* max_rtt) const; | 109 base::TimeDelta* max_rtt) const; |
112 bool RtpTimestampInSenderTime(int frequency, | 110 bool RtpTimestampInSenderTime(int frequency, |
113 uint32 rtp_timestamp, | 111 uint32 rtp_timestamp, |
114 base::TimeTicks* rtp_timestamp_in_ticks) const; | 112 base::TimeTicks* rtp_timestamp_in_ticks) const; |
115 | 113 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 int number_of_rtt_in_avg_; | 185 int number_of_rtt_in_avg_; |
188 float avg_rtt_ms_; | 186 float avg_rtt_ms_; |
189 | 187 |
190 DISALLOW_COPY_AND_ASSIGN(Rtcp); | 188 DISALLOW_COPY_AND_ASSIGN(Rtcp); |
191 }; | 189 }; |
192 | 190 |
193 } // namespace cast | 191 } // namespace cast |
194 } // namespace media | 192 } // namespace media |
195 | 193 |
196 #endif // MEDIA_CAST_RTCP_RTCP_H_ | 194 #endif // MEDIA_CAST_RTCP_RTCP_H_ |
OLD | NEW |