| 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 ssrc_forced_(false), | 116 ssrc_forced_(false), |
| 117 last_rtp_timestamp_(0), | 117 last_rtp_timestamp_(0), |
| 118 capture_time_ms_(0), | 118 capture_time_ms_(0), |
| 119 last_timestamp_time_ms_(0), | 119 last_timestamp_time_ms_(0), |
| 120 media_has_been_sent_(false), | 120 media_has_been_sent_(false), |
| 121 last_packet_marker_bit_(false), | 121 last_packet_marker_bit_(false), |
| 122 csrcs_(), | 122 csrcs_(), |
| 123 rtx_(kRtxOff), | 123 rtx_(kRtxOff), |
| 124 rtp_overhead_bytes_per_packet_(0), | 124 rtp_overhead_bytes_per_packet_(0), |
| 125 retransmission_rate_limiter_(retransmission_rate_limiter), | 125 retransmission_rate_limiter_(retransmission_rate_limiter), |
| 126 overhead_observer_(overhead_observer) { | 126 overhead_observer_(overhead_observer), |
| 127 send_side_bwe_with_overhead_( |
| 128 webrtc::field_trial::FindFullName( |
| 129 "WebRTC-SendSideBwe-WithOverhead") == "Enabled") { |
| 127 ssrc_ = ssrc_db_->CreateSSRC(); | 130 ssrc_ = ssrc_db_->CreateSSRC(); |
| 128 RTC_DCHECK(ssrc_ != 0); | 131 RTC_DCHECK(ssrc_ != 0); |
| 129 ssrc_rtx_ = ssrc_db_->CreateSSRC(); | 132 ssrc_rtx_ = ssrc_db_->CreateSSRC(); |
| 130 RTC_DCHECK(ssrc_rtx_ != 0); | 133 RTC_DCHECK(ssrc_rtx_ != 0); |
| 131 | 134 |
| 132 // This random initialization is not intended to be cryptographic strong. | 135 // This random initialization is not intended to be cryptographic strong. |
| 133 timestamp_offset_ = random_.Rand<uint32_t>(); | 136 timestamp_offset_ = random_.Rand<uint32_t>(); |
| 134 // Random start, 16 bits. Can't be 0. | 137 // Random start, 16 bits. Can't be 0. |
| 135 sequence_number_rtx_ = random_.Rand(1, kMaxInitRtpSeqNumber); | 138 sequence_number_rtx_ = random_.Rand(1, kMaxInitRtpSeqNumber); |
| 136 sequence_number_ = random_.Rand(1, kMaxInitRtpSeqNumber); | 139 sequence_number_ = random_.Rand(1, kMaxInitRtpSeqNumber); |
| (...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1249 state.sequence_number = sequence_number_rtx_; | 1252 state.sequence_number = sequence_number_rtx_; |
| 1250 state.start_timestamp = timestamp_offset_; | 1253 state.start_timestamp = timestamp_offset_; |
| 1251 | 1254 |
| 1252 return state; | 1255 return state; |
| 1253 } | 1256 } |
| 1254 | 1257 |
| 1255 void RTPSender::AddPacketToTransportFeedback(uint16_t packet_id, | 1258 void RTPSender::AddPacketToTransportFeedback(uint16_t packet_id, |
| 1256 const RtpPacketToSend& packet, | 1259 const RtpPacketToSend& packet, |
| 1257 int probe_cluster_id) { | 1260 int probe_cluster_id) { |
| 1258 size_t packet_size = packet.payload_size() + packet.padding_size(); | 1261 size_t packet_size = packet.payload_size() + packet.padding_size(); |
| 1259 if (webrtc::field_trial::FindFullName("WebRTC-SendSideBwe-WithOverhead") == | 1262 if (send_side_bwe_with_overhead_) { |
| 1260 "Enabled") { | |
| 1261 packet_size = packet.size(); | 1263 packet_size = packet.size(); |
| 1262 } | 1264 } |
| 1263 | 1265 |
| 1264 if (transport_feedback_observer_) { | 1266 if (transport_feedback_observer_) { |
| 1265 transport_feedback_observer_->AddPacket(packet_id, packet_size, | 1267 transport_feedback_observer_->AddPacket(packet_id, packet_size, |
| 1266 probe_cluster_id); | 1268 probe_cluster_id); |
| 1267 } | 1269 } |
| 1268 } | 1270 } |
| 1269 | 1271 |
| 1270 void RTPSender::UpdateRtpOverhead(const RtpPacketToSend& packet) { | 1272 void RTPSender::UpdateRtpOverhead(const RtpPacketToSend& packet) { |
| 1271 if (!overhead_observer_) | 1273 if (!overhead_observer_) |
| 1272 return; | 1274 return; |
| 1273 size_t overhead_bytes_per_packet; | 1275 size_t overhead_bytes_per_packet; |
| 1274 { | 1276 { |
| 1275 rtc::CritScope lock(&send_critsect_); | 1277 rtc::CritScope lock(&send_critsect_); |
| 1276 if (rtp_overhead_bytes_per_packet_ == packet.headers_size()) { | 1278 if (rtp_overhead_bytes_per_packet_ == packet.headers_size()) { |
| 1277 return; | 1279 return; |
| 1278 } | 1280 } |
| 1279 rtp_overhead_bytes_per_packet_ = packet.headers_size(); | 1281 rtp_overhead_bytes_per_packet_ = packet.headers_size(); |
| 1280 overhead_bytes_per_packet = rtp_overhead_bytes_per_packet_; | 1282 overhead_bytes_per_packet = rtp_overhead_bytes_per_packet_; |
| 1281 } | 1283 } |
| 1282 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet); | 1284 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet); |
| 1283 } | 1285 } |
| 1284 | 1286 |
| 1285 } // namespace webrtc | 1287 } // namespace webrtc |
| OLD | NEW |