Index: webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc |
index b867b9ddbe3526c539837f219e340105a527624e..3c986e98c210e62bc171c98b13be4c6b1c51b0d9 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc |
@@ -121,7 +121,10 @@ ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(const Configuration& configuration) |
rtcp_sender_.SetTimestampOffset(rtp_sender_.TimestampOffset()); |
// Set default packet size limit. |
- SetMaxTransferUnit(IP_PACKET_SIZE); |
+ // TODO(nisse): Kind-of duplicates |
+ // webrtc::VideoSendStream::Config::Rtp::kDefaultMaxPacketSize. |
+ const size_t kTcpOverIpv4HeaderSize = 40; |
+ SetMaxRtpPacketSize(IP_PACKET_SIZE - kTcpOverIpv4HeaderSize); |
} |
// Returns the number of milliseconds until the module want a worker thread |
@@ -415,65 +418,22 @@ size_t ModuleRtpRtcpImpl::TimeToSendPadding(size_t bytes, |
return rtp_sender_.TimeToSendPadding(bytes, probe_cluster_id); |
} |
-uint16_t ModuleRtpRtcpImpl::MaxPayloadLength() const { |
- return rtp_sender_.MaxPayloadLength(); |
+size_t ModuleRtpRtcpImpl::MaxPayloadSize() const { |
+ return rtp_sender_.MaxPayloadSize(); |
} |
-uint16_t ModuleRtpRtcpImpl::MaxDataPayloadLength() const { |
- return rtp_sender_.MaxDataPayloadLength(); |
+size_t ModuleRtpRtcpImpl::MaxRtpPacketSize() const { |
+ return rtp_sender_.MaxRtpPacketSize(); |
} |
-int32_t ModuleRtpRtcpImpl::SetTransportOverhead( |
- const bool tcp, |
- const bool ipv6, |
- const uint8_t authentication_overhead) { |
- uint16_t packet_overhead = 0; |
- if (ipv6) { |
- packet_overhead = 40; |
- } else { |
- packet_overhead = 20; |
- } |
- if (tcp) { |
- // TCP. |
- packet_overhead += 20; |
- } else { |
- // UDP. |
- packet_overhead += 8; |
- } |
- packet_overhead += authentication_overhead; |
+void ModuleRtpRtcpImpl::SetMaxRtpPacketSize(size_t rtp_packet_size) { |
+ RTC_DCHECK_LE(rtp_packet_size, IP_PACKET_SIZE) |
+ << "rtp packet size too large: " << rtp_packet_size; |
+ RTC_DCHECK_GT(rtp_packet_size, packet_overhead_) |
+ << "rtp packet size too small: " << rtp_packet_size; |
- if (packet_overhead == packet_overhead_) { |
- // Ok same as before. |
- return 0; |
- } |
- |
- size_t mtu = rtp_sender_.MaxPayloadLength() + packet_overhead_; |
- size_t max_payload_length = mtu - packet_overhead; |
- packet_overhead_ = packet_overhead; |
- rtcp_sender_.SetMaxPayloadLength(max_payload_length); |
- rtp_sender_.SetMaxPayloadLength(max_payload_length); |
- return 0; |
-} |
- |
-void ModuleRtpRtcpImpl::SetTransportOverhead( |
- int transport_overhead_per_packet) { |
- RTC_DCHECK_GT(transport_overhead_per_packet, 0); |
- int mtu = rtp_sender_.MaxPayloadLength() + packet_overhead_; |
- RTC_DCHECK_LT(transport_overhead_per_packet, mtu); |
- size_t max_payload_length = mtu - transport_overhead_per_packet; |
- packet_overhead_ = transport_overhead_per_packet; |
- rtp_sender_.SetTransportOverhead(packet_overhead_); |
- rtcp_sender_.SetMaxPayloadLength(max_payload_length); |
- rtp_sender_.SetMaxPayloadLength(max_payload_length); |
-} |
- |
-int32_t ModuleRtpRtcpImpl::SetMaxTransferUnit(uint16_t mtu) { |
- RTC_DCHECK_LE(mtu, IP_PACKET_SIZE) << "MTU too large: " << mtu; |
- RTC_DCHECK_GT(mtu, packet_overhead_) << "MTU too small: " << mtu; |
- size_t max_payload_length = mtu - packet_overhead_; |
- rtcp_sender_.SetMaxPayloadLength(max_payload_length); |
- rtp_sender_.SetMaxPayloadLength(max_payload_length); |
- return 0; |
+ rtcp_sender_.SetMaxRtpPacketSize(rtp_packet_size); |
+ rtp_sender_.SetMaxRtpPacketSize(rtp_packet_size); |
} |
RtcpMode ModuleRtpRtcpImpl::RTCP() const { |