OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_RECEIVER_H_ | 5 #ifndef MEDIA_CAST_RTCP_RTCP_RECEIVER_H_ |
6 #define MEDIA_CAST_RTCP_RTCP_RECEIVER_H_ | 6 #define MEDIA_CAST_RTCP_RTCP_RECEIVER_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 | 9 |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 | 55 |
56 void IncomingRtcpPacket(RtcpParser* rtcp_parser); | 56 void IncomingRtcpPacket(RtcpParser* rtcp_parser); |
57 | 57 |
58 private: | 58 private: |
59 void HandleSenderReport(RtcpParser* rtcp_parser); | 59 void HandleSenderReport(RtcpParser* rtcp_parser); |
60 | 60 |
61 void HandleReceiverReport(RtcpParser* rtcp_parser); | 61 void HandleReceiverReport(RtcpParser* rtcp_parser); |
62 | 62 |
63 void HandleReportBlock(const RtcpField* rtcp_field, uint32 remote_ssrc); | 63 void HandleReportBlock(const RtcpField* rtcp_field, uint32 remote_ssrc); |
64 | 64 |
65 void HandleSDES(RtcpParser* rtcp_parser); | |
66 void HandleSDESChunk(RtcpParser* rtcp_parser); | |
67 | |
68 void HandleBYE(RtcpParser* rtcp_parser); | |
69 | |
70 void HandleXr(RtcpParser* rtcp_parser); | 65 void HandleXr(RtcpParser* rtcp_parser); |
71 void HandleRrtr(RtcpParser* rtcp_parser, uint32 remote_ssrc); | 66 void HandleRrtr(RtcpParser* rtcp_parser, uint32 remote_ssrc); |
72 void HandleDlrr(RtcpParser* rtcp_parser); | 67 void HandleDlrr(RtcpParser* rtcp_parser); |
73 | 68 |
74 // Generic RTP Feedback. | |
75 void HandleNACK(RtcpParser* rtcp_parser); | |
76 void HandleNACKItem(const RtcpField* rtcp_field, | |
77 std::list<uint16>* nack_sequence_numbers); | |
78 | |
79 void HandleSendReportRequest(RtcpParser* rtcp_parser); | |
80 | |
81 // Payload-specific. | |
82 void HandlePLI(RtcpParser* rtcp_parser); | |
83 | |
84 void HandleSLI(RtcpParser* rtcp_parser); | |
85 void HandleSLIItem(RtcpField* rtcpPacket); | |
86 | |
87 void HandleRpsi(RtcpParser* rtcp_parser); | |
88 | |
89 void HandleFIR(RtcpParser* rtcp_parser); | |
90 void HandleFIRItem(const RtcpField* rtcp_field); | |
91 | |
92 void HandlePayloadSpecificApp(RtcpParser* rtcp_parser); | 69 void HandlePayloadSpecificApp(RtcpParser* rtcp_parser); |
93 void HandlePayloadSpecificRembItem(RtcpParser* rtcp_parser); | |
94 void HandlePayloadSpecificCastItem(RtcpParser* rtcp_parser); | 70 void HandlePayloadSpecificCastItem(RtcpParser* rtcp_parser); |
95 void HandlePayloadSpecificCastNackItem( | 71 void HandlePayloadSpecificCastNackItem( |
96 const RtcpField* rtcp_field, | 72 const RtcpField* rtcp_field, |
97 MissingFramesAndPacketsMap* missing_frames_and_packets); | 73 MissingFramesAndPacketsMap* missing_frames_and_packets); |
98 | 74 |
99 void HandleApplicationSpecificCastReceiverLog(RtcpParser* rtcp_parser); | 75 void HandleApplicationSpecificCastReceiverLog(RtcpParser* rtcp_parser); |
100 void HandleApplicationSpecificCastSenderLog(RtcpParser* rtcp_parser); | |
101 void HandleApplicationSpecificCastReceiverEventLog( | 76 void HandleApplicationSpecificCastReceiverEventLog( |
102 uint32 frame_rtp_timestamp, | 77 uint32 frame_rtp_timestamp, |
103 RtcpParser* rtcp_parser, | 78 RtcpParser* rtcp_parser, |
104 RtcpReceiverEventLogMessages* event_log_messages); | 79 RtcpReceiverEventLogMessages* event_log_messages); |
105 | 80 |
106 const uint32 ssrc_; | 81 const uint32 ssrc_; |
107 uint32 remote_ssrc_; | 82 uint32 remote_ssrc_; |
108 | 83 |
109 // Not owned by this class. | 84 // Not owned by this class. |
110 RtcpMessageHandler* const handler_; | 85 RtcpMessageHandler* const handler_; |
111 | 86 |
112 FrameIdWrapHelper ack_frame_id_wrap_helper_; | 87 FrameIdWrapHelper ack_frame_id_wrap_helper_; |
113 | 88 |
114 // Maintains a history of receiver events. | 89 // Maintains a history of receiver events. |
115 size_t receiver_event_history_size_; | 90 size_t receiver_event_history_size_; |
116 typedef std::pair<uint64, uint64> ReceiverEventKey; | 91 typedef std::pair<uint64, uint64> ReceiverEventKey; |
117 base::hash_set<ReceiverEventKey> receiver_event_key_set_; | 92 base::hash_set<ReceiverEventKey> receiver_event_key_set_; |
118 std::queue<ReceiverEventKey> receiver_event_key_queue_; | 93 std::queue<ReceiverEventKey> receiver_event_key_queue_; |
119 | 94 |
120 DISALLOW_COPY_AND_ASSIGN(RtcpReceiver); | 95 DISALLOW_COPY_AND_ASSIGN(RtcpReceiver); |
121 }; | 96 }; |
122 | 97 |
123 } // namespace cast | 98 } // namespace cast |
124 } // namespace media | 99 } // namespace media |
125 | 100 |
126 #endif // MEDIA_CAST_RTCP_RTCP_RECEIVER_H_ | 101 #endif // MEDIA_CAST_RTCP_RTCP_RECEIVER_H_ |
OLD | NEW |