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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_receiver.h

Issue 1338203003: Wire up send-side bandwidth estimation. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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
OLDNEW
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698