OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 class RTCPReceiver : public TMMBRHelp | 29 class RTCPReceiver : public TMMBRHelp |
30 { | 30 { |
31 public: | 31 public: |
32 RTCPReceiver(int32_t id, | 32 RTCPReceiver(int32_t id, |
33 Clock* clock, | 33 Clock* clock, |
34 bool receiver_only, | 34 bool receiver_only, |
35 RtcpPacketTypeCounterObserver* packet_type_counter_observer, | 35 RtcpPacketTypeCounterObserver* packet_type_counter_observer, |
36 RtcpBandwidthObserver* rtcp_bandwidth_observer, | 36 RtcpBandwidthObserver* rtcp_bandwidth_observer, |
37 RtcpIntraFrameObserver* rtcp_intra_frame_observer, | 37 RtcpIntraFrameObserver* rtcp_intra_frame_observer, |
| 38 TransportFeedbackObserver* transport_feedback_observer, |
38 ModuleRtpRtcpImpl* owner); | 39 ModuleRtpRtcpImpl* owner); |
39 virtual ~RTCPReceiver(); | 40 virtual ~RTCPReceiver(); |
40 | 41 |
41 RTCPMethod Status() const; | 42 RTCPMethod Status() const; |
42 void SetRTCPStatus(RTCPMethod method); | 43 void SetRTCPStatus(RTCPMethod method); |
43 | 44 |
44 int64_t LastReceived(); | 45 int64_t LastReceived(); |
45 int64_t LastReceivedReceiverReport() const; | 46 int64_t LastReceivedReceiverReport() const; |
46 | 47 |
47 void SetSsrcs(uint32_t main_ssrc, | 48 void SetSsrcs(uint32_t main_ssrc, |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 void HandleFIRItem(RTCPHelp::RTCPReceiveInformation* receiveInfo, | 211 void HandleFIRItem(RTCPHelp::RTCPReceiveInformation* receiveInfo, |
211 const RTCPUtility::RTCPPacket& rtcpPacket, | 212 const RTCPUtility::RTCPPacket& rtcpPacket, |
212 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); | 213 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); |
213 | 214 |
214 void HandleAPP(RTCPUtility::RTCPParserV2& rtcpParser, | 215 void HandleAPP(RTCPUtility::RTCPParserV2& rtcpParser, |
215 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); | 216 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); |
216 | 217 |
217 void HandleAPPItem(RTCPUtility::RTCPParserV2& rtcpParser, | 218 void HandleAPPItem(RTCPUtility::RTCPParserV2& rtcpParser, |
218 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); | 219 RTCPHelp::RTCPPacketInformation& rtcpPacketInformation); |
219 | 220 |
| 221 void HandleTransportFeedback( |
| 222 RTCPUtility::RTCPParserV2* rtcp_parser, |
| 223 RTCPHelp::RTCPPacketInformation* rtcp_packet_information); |
| 224 |
220 private: | 225 private: |
221 typedef std::map<uint32_t, RTCPHelp::RTCPReceiveInformation*> | 226 typedef std::map<uint32_t, RTCPHelp::RTCPReceiveInformation*> |
222 ReceivedInfoMap; | 227 ReceivedInfoMap; |
223 // RTCP report block information mapped by remote SSRC. | 228 // RTCP report block information mapped by remote SSRC. |
224 typedef std::map<uint32_t, RTCPHelp::RTCPReportBlockInformation*> | 229 typedef std::map<uint32_t, RTCPHelp::RTCPReportBlockInformation*> |
225 ReportBlockInfoMap; | 230 ReportBlockInfoMap; |
226 // RTCP report block information map mapped by source SSRC. | 231 // RTCP report block information map mapped by source SSRC. |
227 typedef std::map<uint32_t, ReportBlockInfoMap> ReportBlockMap; | 232 typedef std::map<uint32_t, ReportBlockInfoMap> ReportBlockMap; |
228 | 233 |
229 RTCPHelp::RTCPReportBlockInformation* CreateOrGetReportBlockInformation( | 234 RTCPHelp::RTCPReportBlockInformation* CreateOrGetReportBlockInformation( |
230 uint32_t remote_ssrc, uint32_t source_ssrc) | 235 uint32_t remote_ssrc, uint32_t source_ssrc) |
231 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); | 236 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); |
232 RTCPHelp::RTCPReportBlockInformation* GetReportBlockInformation( | 237 RTCPHelp::RTCPReportBlockInformation* GetReportBlockInformation( |
233 uint32_t remote_ssrc, uint32_t source_ssrc) const | 238 uint32_t remote_ssrc, uint32_t source_ssrc) const |
234 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); | 239 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); |
235 | 240 |
236 Clock* const _clock; | 241 Clock* const _clock; |
237 const bool receiver_only_; | 242 const bool receiver_only_; |
238 RTCPMethod _method; | 243 RTCPMethod _method; |
239 int64_t _lastReceived; | 244 int64_t _lastReceived; |
240 ModuleRtpRtcpImpl& _rtpRtcp; | 245 ModuleRtpRtcpImpl& _rtpRtcp; |
241 | 246 |
242 CriticalSectionWrapper* _criticalSectionFeedbacks; | 247 CriticalSectionWrapper* _criticalSectionFeedbacks; |
243 RtcpBandwidthObserver* const _cbRtcpBandwidthObserver; | 248 RtcpBandwidthObserver* const _cbRtcpBandwidthObserver; |
244 RtcpIntraFrameObserver* const _cbRtcpIntraFrameObserver; | 249 RtcpIntraFrameObserver* const _cbRtcpIntraFrameObserver; |
| 250 TransportFeedbackObserver* const _cbTransportFeedbackObserver; |
245 | 251 |
246 CriticalSectionWrapper* _criticalSectionRTCPReceiver; | 252 CriticalSectionWrapper* _criticalSectionRTCPReceiver; |
247 uint32_t main_ssrc_; | 253 uint32_t main_ssrc_; |
248 uint32_t _remoteSSRC; | 254 uint32_t _remoteSSRC; |
249 std::set<uint32_t> registered_ssrcs_; | 255 std::set<uint32_t> registered_ssrcs_; |
250 | 256 |
251 // Received send report | 257 // Received send report |
252 RTCPSenderInfo _remoteSenderInfo; | 258 RTCPSenderInfo _remoteSenderInfo; |
253 // when did we receive the last send report | 259 // when did we receive the last send report |
254 uint32_t _lastReceivedSRNTPsecs; | 260 uint32_t _lastReceivedSRNTPsecs; |
(...skipping 24 matching lines...) Expand all Loading... |
279 | 285 |
280 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(_criticalSectionFeedbacks); | 286 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(_criticalSectionFeedbacks); |
281 | 287 |
282 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; | 288 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; |
283 RtcpPacketTypeCounter packet_type_counter_; | 289 RtcpPacketTypeCounter packet_type_counter_; |
284 | 290 |
285 RTCPUtility::NackStats nack_stats_; | 291 RTCPUtility::NackStats nack_stats_; |
286 }; | 292 }; |
287 } // namespace webrtc | 293 } // namespace webrtc |
288 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ | 294 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ |
OLD | NEW |