| Index: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
 | 
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
 | 
| index d6796e788008971b6015f1e0a24759f4a3ea3dca..d9b5d6d4402358af885c191eaa4ebace0d59f071 100644
 | 
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
 | 
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
 | 
| @@ -149,7 +149,7 @@ class RtpSenderTest : public ::testing::Test {
 | 
|          false, &fake_clock_, &transport_, pacer ? &mock_paced_sender_ : nullptr,
 | 
|          nullptr, &seq_num_allocator_, nullptr, nullptr, nullptr, nullptr,
 | 
|          &mock_rtc_event_log_, &send_packet_observer_,
 | 
| -        &retransmission_rate_limiter_));
 | 
| +        &retransmission_rate_limiter_, nullptr));
 | 
|      rtp_sender_->SetSequenceNumber(kSeqNum);
 | 
|      rtp_sender_->SetSendPayloadType(kPayload);
 | 
|      rtp_sender_->SetTimestampOffset(0);
 | 
| @@ -442,7 +442,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) {
 | 
|    rtp_sender_.reset(new RTPSender(
 | 
|        false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_,
 | 
|        &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_,
 | 
| -      &send_packet_observer_, &retransmission_rate_limiter_));
 | 
| +      &send_packet_observer_, &retransmission_rate_limiter_, nullptr));
 | 
|    EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
 | 
|                     kRtpExtensionTransportSequenceNumber,
 | 
|                     kTransportSequenceNumberExtensionId));
 | 
| @@ -485,11 +485,11 @@ TEST_F(RtpSenderTestWithoutPacer, OnSendPacketUpdated) {
 | 
|  }
 | 
|  
 | 
|  TEST_F(RtpSenderTest, SendsPacketsWithTransportSequenceNumber) {
 | 
| -  rtp_sender_.reset(
 | 
| -      new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
 | 
| -                    nullptr, &seq_num_allocator_, &feedback_observer_, nullptr,
 | 
| -                    nullptr, nullptr, &mock_rtc_event_log_,
 | 
| -                    &send_packet_observer_, &retransmission_rate_limiter_));
 | 
| +  rtp_sender_.reset(new RTPSender(
 | 
| +      false, &fake_clock_, &transport_, &mock_paced_sender_, nullptr,
 | 
| +      &seq_num_allocator_, &feedback_observer_, nullptr, nullptr, nullptr,
 | 
| +      &mock_rtc_event_log_, &send_packet_observer_,
 | 
| +      &retransmission_rate_limiter_, nullptr));
 | 
|    rtp_sender_->SetStorePacketsStatus(true, 10);
 | 
|    EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
 | 
|                     kRtpExtensionTransportSequenceNumber,
 | 
| @@ -769,7 +769,8 @@ TEST_F(RtpSenderTest, OnSendPacketNotUpdatedWithoutSeqNumAllocator) {
 | 
|    rtp_sender_.reset(new RTPSender(
 | 
|        false, &fake_clock_, &transport_, &mock_paced_sender_, nullptr,
 | 
|        nullptr /* TransportSequenceNumberAllocator */, nullptr, nullptr, nullptr,
 | 
| -      nullptr, nullptr, &send_packet_observer_, &retransmission_rate_limiter_));
 | 
| +      nullptr, nullptr, &send_packet_observer_, &retransmission_rate_limiter_,
 | 
| +      nullptr));
 | 
|    EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
 | 
|                     kRtpExtensionTransportSequenceNumber,
 | 
|                     kTransportSequenceNumberExtensionId));
 | 
| @@ -791,7 +792,7 @@ TEST_F(RtpSenderTest, SendRedundantPayloads) {
 | 
|    rtp_sender_.reset(new RTPSender(
 | 
|        false, &fake_clock_, &transport, &mock_paced_sender_, nullptr, nullptr,
 | 
|        nullptr, nullptr, nullptr, nullptr, &mock_rtc_event_log_, nullptr,
 | 
| -      &retransmission_rate_limiter_));
 | 
| +      &retransmission_rate_limiter_, nullptr));
 | 
|  
 | 
|    rtp_sender_->SetSequenceNumber(kSeqNum);
 | 
|    rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
 | 
| @@ -909,11 +910,11 @@ TEST_F(RtpSenderTest, SendFlexfecPackets) {
 | 
|                                 kNoRtpExtensions, &fake_clock_);
 | 
|  
 | 
|    // Reset |rtp_sender_| to use FlexFEC.
 | 
| -  rtp_sender_.reset(
 | 
| -      new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
 | 
| -                    &flexfec_sender, &seq_num_allocator_, nullptr, nullptr,
 | 
| -                    nullptr, nullptr, &mock_rtc_event_log_,
 | 
| -                    &send_packet_observer_, &retransmission_rate_limiter_));
 | 
| +  rtp_sender_.reset(new RTPSender(
 | 
| +      false, &fake_clock_, &transport_, &mock_paced_sender_, &flexfec_sender,
 | 
| +      &seq_num_allocator_, nullptr, nullptr, nullptr, nullptr,
 | 
| +      &mock_rtc_event_log_, &send_packet_observer_,
 | 
| +      &retransmission_rate_limiter_, nullptr));
 | 
|    rtp_sender_->SetSSRC(kMediaSsrc);
 | 
|    rtp_sender_->SetSequenceNumber(kSeqNum);
 | 
|    rtp_sender_->SetSendPayloadType(kMediaPayloadType);
 | 
| @@ -961,7 +962,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendFlexfecPackets) {
 | 
|                                    &flexfec_sender, &seq_num_allocator_, nullptr,
 | 
|                                    nullptr, nullptr, nullptr,
 | 
|                                    &mock_rtc_event_log_, &send_packet_observer_,
 | 
| -                                  &retransmission_rate_limiter_));
 | 
| +                                  &retransmission_rate_limiter_, nullptr));
 | 
|    rtp_sender_->SetSSRC(kMediaSsrc);
 | 
|    rtp_sender_->SetSequenceNumber(kSeqNum);
 | 
|    rtp_sender_->SetSendPayloadType(kMediaPayloadType);
 | 
| @@ -1004,10 +1005,10 @@ TEST_F(RtpSenderTest, FrameCountCallbacks) {
 | 
|      FrameCounts frame_counts_;
 | 
|    } callback;
 | 
|  
 | 
| -  rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_,
 | 
| -                                  &mock_paced_sender_, nullptr, nullptr,
 | 
| -                                  nullptr, nullptr, &callback, nullptr, nullptr,
 | 
| -                                  nullptr, &retransmission_rate_limiter_));
 | 
| +  rtp_sender_.reset(
 | 
| +      new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
 | 
| +                    nullptr, nullptr, nullptr, nullptr, &callback, nullptr,
 | 
| +                    nullptr, nullptr, &retransmission_rate_limiter_, nullptr));
 | 
|  
 | 
|    char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
 | 
|    const uint8_t payload_type = 127;
 | 
| @@ -1069,7 +1070,7 @@ TEST_F(RtpSenderTest, BitrateCallbacks) {
 | 
|    rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
 | 
|                                    nullptr, nullptr, nullptr, &callback, nullptr,
 | 
|                                    nullptr, nullptr, nullptr,
 | 
| -                                  &retransmission_rate_limiter_));
 | 
| +                                  &retransmission_rate_limiter_, nullptr));
 | 
|  
 | 
|    // Simulate kNumPackets sent with kPacketInterval ms intervals, with the
 | 
|    // number of packets selected so that we fill (but don't overflow) the one
 | 
| @@ -1127,7 +1128,7 @@ class RtpSenderAudioTest : public RtpSenderTest {
 | 
|      rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
 | 
|                                      nullptr, nullptr, nullptr, nullptr, nullptr,
 | 
|                                      nullptr, nullptr, nullptr,
 | 
| -                                    &retransmission_rate_limiter_));
 | 
| +                                    &retransmission_rate_limiter_, nullptr));
 | 
|      rtp_sender_->SetSequenceNumber(kSeqNum);
 | 
|    }
 | 
|  };
 | 
| @@ -1478,4 +1479,32 @@ TEST_F(RtpSenderVideoTest, SendVideoWithCameraAndFlipCVO) {
 | 
|              ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 3));
 | 
|  }
 | 
|  
 | 
| +TEST_F(RtpSenderTest, OnOverheadPerPacketChanged) {
 | 
| +  class MockOverheadPerPacketObserver : public OverheadPerPacketObserver {
 | 
| +   public:
 | 
| +    MOCK_METHOD1(OnOverheadPerPacketChange, void(int overhead_per_packet));
 | 
| +  };
 | 
| +  MockOverheadPerPacketObserver mock_overhead_observer;
 | 
| +  rtp_sender_.reset(
 | 
| +      new RTPSender(false, &fake_clock_, &transport_, nullptr, nullptr, nullptr,
 | 
| +                    nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
 | 
| +                    &retransmission_rate_limiter_, &mock_overhead_observer));
 | 
| +  // Transport overhead is set to 28B.
 | 
| +  EXPECT_CALL(mock_overhead_observer, OnOverheadPerPacketChange(28)).Times(1);
 | 
| +  rtp_sender_->SetTransportOverhead(28);
 | 
| +
 | 
| +  // RTP Overhead is without extensions is 12B.
 | 
| +  // 28B + 12B = 40B
 | 
| +  EXPECT_CALL(mock_overhead_observer, OnOverheadPerPacketChange(40)).Times(1);
 | 
| +  SendGenericPayload();
 | 
| +
 | 
| +  rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset,
 | 
| +                                          kTransmissionTimeOffsetExtensionId);
 | 
| +
 | 
| +  // TransmissionTimeOffset extension has a size of 8B.
 | 
| +  // 28B + 12B + 8B = 48B
 | 
| +  EXPECT_CALL(mock_overhead_observer, OnOverheadPerPacketChange(48)).Times(1);
 | 
| +  SendGenericPayload();
 | 
| +}
 | 
| +
 | 
|  }  // namespace webrtc
 | 
| 
 |