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

Side by Side Diff: webrtc/pc/channel.cc

Issue 2437503004: Set actual transport overhead in rtp_rtcp (Closed)
Patch Set: respond to comments. Created 4 years, 1 month 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
« no previous file with comments | « webrtc/pc/channel.h ('k') | webrtc/pc/channel_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 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 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 bool ready_to_send) { 578 bool ready_to_send) {
579 RTC_DCHECK(channel == transport_channel_ || 579 RTC_DCHECK(channel == transport_channel_ ||
580 channel == rtcp_transport_channel_); 580 channel == rtcp_transport_channel_);
581 RTC_DCHECK(network_thread_->IsCurrent()); 581 RTC_DCHECK(network_thread_->IsCurrent());
582 std::string transport_name = channel->transport_name(); 582 std::string transport_name = channel->transport_name();
583 rtc::NetworkRoute network_route; 583 rtc::NetworkRoute network_route;
584 if (selected_candidate_pair) { 584 if (selected_candidate_pair) {
585 network_route = rtc::NetworkRoute( 585 network_route = rtc::NetworkRoute(
586 ready_to_send, selected_candidate_pair->local_candidate().network_id(), 586 ready_to_send, selected_candidate_pair->local_candidate().network_id(),
587 selected_candidate_pair->remote_candidate().network_id(), 587 selected_candidate_pair->remote_candidate().network_id(),
588 last_sent_packet_id); 588 last_sent_packet_id,
589 GetTransportOverheadPerPacket(*selected_candidate_pair));
589 } 590 }
590 invoker_.AsyncInvoke<void>( 591 invoker_.AsyncInvoke<void>(
591 RTC_FROM_HERE, worker_thread_, 592 RTC_FROM_HERE, worker_thread_,
592 Bind(&MediaChannel::OnNetworkRouteChanged, media_channel_, transport_name, 593 Bind(&MediaChannel::OnNetworkRouteChanged, media_channel_, transport_name,
593 network_route)); 594 network_route));
594 } 595 }
595 596
596 void BaseChannel::SetTransportChannelReadyToSend(bool rtcp, bool ready) { 597 void BaseChannel::SetTransportChannelReadyToSend(bool rtcp, bool ready) {
597 RTC_DCHECK(network_thread_->IsCurrent()); 598 RTC_DCHECK(network_thread_->IsCurrent());
598 if (rtcp) { 599 if (rtcp) {
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after
1654 } 1655 }
1655 } 1656 }
1656 1657
1657 void BaseChannel::UpdateMediaSendRecvState() { 1658 void BaseChannel::UpdateMediaSendRecvState() {
1658 RTC_DCHECK(network_thread_->IsCurrent()); 1659 RTC_DCHECK(network_thread_->IsCurrent());
1659 invoker_.AsyncInvoke<void>( 1660 invoker_.AsyncInvoke<void>(
1660 RTC_FROM_HERE, worker_thread_, 1661 RTC_FROM_HERE, worker_thread_,
1661 Bind(&BaseChannel::UpdateMediaSendRecvState_w, this)); 1662 Bind(&BaseChannel::UpdateMediaSendRecvState_w, this));
1662 } 1663 }
1663 1664
1665 int BaseChannel::GetTransportOverheadPerPacket(
1666 const CandidatePairInterface& selected_candidate_pair) {
1667 constexpr int kIpv4Overhaed = 20;
1668 constexpr int kIpv6Overhaed = 40;
1669 constexpr int kUdpOverhaed = 8;
1670 constexpr int kTcpOverhaed = 20;
1671 constexpr int kSrtpAuthOverhaed = 4;
stefan-webrtc 2016/10/26 15:08:41 kSrtpAuthOverhead I'm not sure about this, but I
honghaiz3 2016/10/26 17:44:56 In this site, it shows the srtp overhead is 12 byt
michaelt 2016/10/27 13:05:17 According to https://tools.ietf.org/html/rfc3711,
1672
1673 int ransport_overhead_per_packet = 0;
honghaiz3 2016/10/26 17:44:56 ransport... =>transport...
michaelt 2016/10/27 13:05:17 Done.
1674 ransport_overhead_per_packet +=
1675 selected_candidate_pair.local_candidate().protocol() == TCP_PROTOCOL_NAME
1676 ? kTcpOverhaed
1677 : kUdpOverhaed;
1678 ransport_overhead_per_packet +=
1679 selected_candidate_pair.local_candidate().address().family() == AF_INET
1680 ? kIpv4Overhaed
1681 : kIpv6Overhaed;
1682 if (secure()) {
1683 ransport_overhead_per_packet += kSrtpAuthOverhaed;
1684 }
1685 return ransport_overhead_per_packet;
1686 }
1687
1664 void VoiceChannel::UpdateMediaSendRecvState_w() { 1688 void VoiceChannel::UpdateMediaSendRecvState_w() {
1665 // Render incoming data if we're the active call, and we have the local 1689 // Render incoming data if we're the active call, and we have the local
1666 // content. We receive data on the default channel and multiplexed streams. 1690 // content. We receive data on the default channel and multiplexed streams.
1667 bool recv = IsReadyToReceiveMedia_w(); 1691 bool recv = IsReadyToReceiveMedia_w();
1668 media_channel()->SetPlayout(recv); 1692 media_channel()->SetPlayout(recv);
1669 1693
1670 // Send outgoing data if we're the active call, we have the remote content, 1694 // Send outgoing data if we're the active call, we have the remote content,
1671 // and we have had some form of connectivity. 1695 // and we have had some form of connectivity.
1672 bool send = IsReadyToSendMedia_w(); 1696 bool send = IsReadyToSendMedia_w();
1673 media_channel()->SetSend(send); 1697 media_channel()->SetSend(send);
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after
2410 } 2434 }
2411 2435
2412 void DataChannel::OnStreamClosedRemotely(uint32_t sid) { 2436 void DataChannel::OnStreamClosedRemotely(uint32_t sid) {
2413 rtc::TypedMessageData<uint32_t>* message = 2437 rtc::TypedMessageData<uint32_t>* message =
2414 new rtc::TypedMessageData<uint32_t>(sid); 2438 new rtc::TypedMessageData<uint32_t>(sid);
2415 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_STREAMCLOSEDREMOTELY, 2439 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_STREAMCLOSEDREMOTELY,
2416 message); 2440 message);
2417 } 2441 }
2418 2442
2419 } // namespace cricket 2443 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/pc/channel.h ('k') | webrtc/pc/channel_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698