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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender.cc

Issue 2525283002: Add overhead to transport feedback observer. (Closed)
Patch Set: Respond to comment. Created 4 years 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 11 matching lines...) Expand all
22 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" 22 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
23 #include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h" 23 #include "webrtc/modules/remote_bitrate_estimator/test/bwe_test_logging.h"
24 #include "webrtc/modules/rtp_rtcp/include/rtp_cvo.h" 24 #include "webrtc/modules/rtp_rtcp/include/rtp_cvo.h"
25 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" 25 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
26 #include "webrtc/modules/rtp_rtcp/source/playout_delay_oracle.h" 26 #include "webrtc/modules/rtp_rtcp/source/playout_delay_oracle.h"
27 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" 27 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
28 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h" 28 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h"
29 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h" 29 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h"
30 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_video.h" 30 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_video.h"
31 #include "webrtc/modules/rtp_rtcp/source/time_util.h" 31 #include "webrtc/modules/rtp_rtcp/source/time_util.h"
32 #include "webrtc/system_wrappers/include/field_trial.h"
32 33
33 namespace webrtc { 34 namespace webrtc {
34 35
35 namespace { 36 namespace {
36 // Max in the RFC 3550 is 255 bytes, we limit it to be modulus 32 for SRTP. 37 // Max in the RFC 3550 is 255 bytes, we limit it to be modulus 32 for SRTP.
37 constexpr size_t kMaxPaddingLength = 224; 38 constexpr size_t kMaxPaddingLength = 224;
38 constexpr int kSendSideDelayWindowMs = 1000; 39 constexpr int kSendSideDelayWindowMs = 1000;
39 constexpr size_t kRtpHeaderLength = 12; 40 constexpr size_t kRtpHeaderLength = 12;
40 constexpr uint16_t kMaxInitRtpSeqNumber = 32767; // 2^15 -1. 41 constexpr uint16_t kMaxInitRtpSeqNumber = 32767; // 2^15 -1.
41 constexpr uint32_t kTimestampTicksPerMs = 90; 42 constexpr uint32_t kTimestampTicksPerMs = 90;
(...skipping 1249 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 transport_overhead_bytes_per_packet_ = transport_overhead; 1292 transport_overhead_bytes_per_packet_ = transport_overhead;
1292 overhead_bytes_per_packet = 1293 overhead_bytes_per_packet =
1293 rtp_overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_; 1294 rtp_overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_;
1294 } 1295 }
1295 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet); 1296 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet);
1296 } 1297 }
1297 1298
1298 void RTPSender::AddPacketToTransportFeedback(uint16_t packet_id, 1299 void RTPSender::AddPacketToTransportFeedback(uint16_t packet_id,
1299 const RtpPacketToSend& packet, 1300 const RtpPacketToSend& packet,
1300 int probe_cluster_id) { 1301 int probe_cluster_id) {
1302 size_t packet_size = packet.payload_size() + packet.padding_size();
1303 if (webrtc::field_trial::FindFullName("WebRTC-SendSideBwe-WithOverhead") ==
1304 "Enabled") {
1305 rtc::CritScope lock(&send_critsect_);
1306 packet_size = packet.size() + transport_overhead_bytes_per_packet_;
1307 }
1308
1301 if (transport_feedback_observer_) { 1309 if (transport_feedback_observer_) {
1302 transport_feedback_observer_->AddPacket( 1310 transport_feedback_observer_->AddPacket(packet_id, packet_size,
1303 packet_id, packet.payload_size() + packet.padding_size(), 1311 probe_cluster_id);
1304 probe_cluster_id);
1305 } 1312 }
1306 } 1313 }
1307 1314
1308 void RTPSender::UpdateRtpOverhead(const RtpPacketToSend& packet) { 1315 void RTPSender::UpdateRtpOverhead(const RtpPacketToSend& packet) {
1309 if (!overhead_observer_) 1316 if (!overhead_observer_)
1310 return; 1317 return;
1311 size_t overhead_bytes_per_packet = 0; 1318 size_t overhead_bytes_per_packet = 0;
1312 { 1319 {
1313 rtc::CritScope lock(&send_critsect_); 1320 rtc::CritScope lock(&send_critsect_);
1314 if (rtp_overhead_bytes_per_packet_ == packet.headers_size()) { 1321 if (rtp_overhead_bytes_per_packet_ == packet.headers_size()) {
1315 return; 1322 return;
1316 } 1323 }
1317 rtp_overhead_bytes_per_packet_ = packet.headers_size(); 1324 rtp_overhead_bytes_per_packet_ = packet.headers_size();
1318 overhead_bytes_per_packet = 1325 overhead_bytes_per_packet =
1319 rtp_overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_; 1326 rtp_overhead_bytes_per_packet_ + transport_overhead_bytes_per_packet_;
1320 } 1327 }
1321 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet); 1328 overhead_observer_->OnOverheadChanged(overhead_bytes_per_packet);
1322 } 1329 }
1323 1330
1324 } // namespace webrtc 1331 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698