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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 | 116 |
117 // RTP header extension | 117 // RTP header extension |
118 int32_t RegisterRtpHeaderExtension(RTPExtensionType type, uint8_t id); | 118 int32_t RegisterRtpHeaderExtension(RTPExtensionType type, uint8_t id); |
119 bool IsRtpHeaderExtensionRegistered(RTPExtensionType type) const; | 119 bool IsRtpHeaderExtensionRegistered(RTPExtensionType type) const; |
120 int32_t DeregisterRtpHeaderExtension(RTPExtensionType type); | 120 int32_t DeregisterRtpHeaderExtension(RTPExtensionType type); |
121 | 121 |
122 bool TimeToSendPacket(uint32_t ssrc, | 122 bool TimeToSendPacket(uint32_t ssrc, |
123 uint16_t sequence_number, | 123 uint16_t sequence_number, |
124 int64_t capture_time_ms, | 124 int64_t capture_time_ms, |
125 bool retransmission, | 125 bool retransmission, |
126 int probe_cluster_id); | 126 const PacedPacketInfo& pacing_info); |
127 size_t TimeToSendPadding(size_t bytes, int probe_cluster_id); | 127 size_t TimeToSendPadding(size_t bytes, const PacedPacketInfo& pacing_info); |
128 | 128 |
129 // NACK. | 129 // NACK. |
130 int SelectiveRetransmissions() const; | 130 int SelectiveRetransmissions() const; |
131 int SetSelectiveRetransmissions(uint8_t settings); | 131 int SetSelectiveRetransmissions(uint8_t settings); |
132 void OnReceivedNack(const std::vector<uint16_t>& nack_sequence_numbers, | 132 void OnReceivedNack(const std::vector<uint16_t>& nack_sequence_numbers, |
133 int64_t avg_rtt); | 133 int64_t avg_rtt); |
134 | 134 |
135 void SetStorePacketsStatus(bool enable, uint16_t number_to_store); | 135 void SetStorePacketsStatus(bool enable, uint16_t number_to_store); |
136 | 136 |
137 bool StorePackets() const; | 137 bool StorePackets() const; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 | 207 |
208 protected: | 208 protected: |
209 int32_t CheckPayloadType(int8_t payload_type, RtpVideoCodecTypes* video_type); | 209 int32_t CheckPayloadType(int8_t payload_type, RtpVideoCodecTypes* video_type); |
210 | 210 |
211 private: | 211 private: |
212 // Maps capture time in milliseconds to send-side delay in milliseconds. | 212 // Maps capture time in milliseconds to send-side delay in milliseconds. |
213 // Send-side delay is the difference between transmission time and capture | 213 // Send-side delay is the difference between transmission time and capture |
214 // time. | 214 // time. |
215 typedef std::map<int64_t, int> SendDelayMap; | 215 typedef std::map<int64_t, int> SendDelayMap; |
216 | 216 |
217 size_t SendPadData(size_t bytes, int probe_cluster_id); | 217 size_t SendPadData(size_t bytes, const PacedPacketInfo& pacing_info); |
218 | 218 |
219 bool PrepareAndSendPacket(std::unique_ptr<RtpPacketToSend> packet, | 219 bool PrepareAndSendPacket(std::unique_ptr<RtpPacketToSend> packet, |
220 bool send_over_rtx, | 220 bool send_over_rtx, |
221 bool is_retransmit, | 221 bool is_retransmit, |
222 int probe_cluster_id); | 222 const PacedPacketInfo& pacing_info); |
223 | 223 |
224 // Return the number of bytes sent. Note that both of these functions may | 224 // Return the number of bytes sent. Note that both of these functions may |
225 // return a larger value that their argument. | 225 // return a larger value that their argument. |
226 size_t TrySendRedundantPayloads(size_t bytes, int probe_cluster_id); | 226 size_t TrySendRedundantPayloads(size_t bytes, |
| 227 const PacedPacketInfo& pacing_info); |
227 | 228 |
228 std::unique_ptr<RtpPacketToSend> BuildRtxPacket( | 229 std::unique_ptr<RtpPacketToSend> BuildRtxPacket( |
229 const RtpPacketToSend& packet); | 230 const RtpPacketToSend& packet); |
230 | 231 |
231 bool SendPacketToNetwork(const RtpPacketToSend& packet, | 232 bool SendPacketToNetwork(const RtpPacketToSend& packet, |
232 const PacketOptions& options); | 233 const PacketOptions& options); |
233 | 234 |
234 void UpdateDelayStatistics(int64_t capture_time_ms, int64_t now_ms); | 235 void UpdateDelayStatistics(int64_t capture_time_ms, int64_t now_ms); |
235 void UpdateOnSendPacket(int packet_id, | 236 void UpdateOnSendPacket(int packet_id, |
236 int64_t capture_time_ms, | 237 int64_t capture_time_ms, |
237 uint32_t ssrc); | 238 uint32_t ssrc); |
238 | 239 |
239 bool UpdateTransportSequenceNumber(RtpPacketToSend* packet, | 240 bool UpdateTransportSequenceNumber(RtpPacketToSend* packet, |
240 int* packet_id) const; | 241 int* packet_id) const; |
241 | 242 |
242 void UpdateRtpStats(const RtpPacketToSend& packet, | 243 void UpdateRtpStats(const RtpPacketToSend& packet, |
243 bool is_rtx, | 244 bool is_rtx, |
244 bool is_retransmit); | 245 bool is_retransmit); |
245 bool IsFecPacket(const RtpPacketToSend& packet) const; | 246 bool IsFecPacket(const RtpPacketToSend& packet) const; |
246 | 247 |
247 void AddPacketToTransportFeedback(uint16_t packet_id, | 248 void AddPacketToTransportFeedback(uint16_t packet_id, |
248 const RtpPacketToSend& packet, | 249 const RtpPacketToSend& packet, |
249 int probe_cluster_id); | 250 const PacedPacketInfo& pacing_info); |
250 | 251 |
251 void UpdateRtpOverhead(const RtpPacketToSend& packet); | 252 void UpdateRtpOverhead(const RtpPacketToSend& packet); |
252 | 253 |
253 Clock* const clock_; | 254 Clock* const clock_; |
254 const int64_t clock_delta_ms_; | 255 const int64_t clock_delta_ms_; |
255 Random random_ GUARDED_BY(send_critsect_); | 256 Random random_ GUARDED_BY(send_critsect_); |
256 | 257 |
257 const bool audio_configured_; | 258 const bool audio_configured_; |
258 const std::unique_ptr<RTPSenderAudio> audio_; | 259 const std::unique_ptr<RTPSenderAudio> audio_; |
259 const std::unique_ptr<RTPSenderVideo> video_; | 260 const std::unique_ptr<RTPSenderVideo> video_; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 OverheadObserver* overhead_observer_; | 325 OverheadObserver* overhead_observer_; |
325 | 326 |
326 const bool send_side_bwe_with_overhead_; | 327 const bool send_side_bwe_with_overhead_; |
327 | 328 |
328 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(RTPSender); | 329 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(RTPSender); |
329 }; | 330 }; |
330 | 331 |
331 } // namespace webrtc | 332 } // namespace webrtc |
332 | 333 |
333 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_SENDER_H_ | 334 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_SENDER_H_ |
OLD | NEW |