Enable transport seq num extension on receive channel to suppress log warning.

TBR=pbos@webrtc.org

BUG=webrtc:5263

Review URL: https://codereview.webrtc.org/1608563005

Cr-Commit-Position: refs/heads/master@{#11338}
diff --git a/webrtc/audio/audio_receive_stream.cc b/webrtc/audio/audio_receive_stream.cc
index 64d0083..ebe2713 100644
--- a/webrtc/audio/audio_receive_stream.cc
+++ b/webrtc/audio/audio_receive_stream.cc
@@ -108,6 +108,7 @@
           kRtpExtensionAbsoluteSendTime, extension.id);
       RTC_DCHECK(registered);
     } else if (extension.name == RtpExtension::kTransportSequenceNumber) {
+      channel_proxy_->EnableReceiveTransportSequenceNumber(extension.id);
       bool registered = rtp_header_parser_->RegisterRtpHeaderExtension(
           kRtpExtensionTransportSequenceNumber, extension.id);
       RTC_DCHECK(registered);
diff --git a/webrtc/audio/audio_receive_stream_unittest.cc b/webrtc/audio/audio_receive_stream_unittest.cc
index eb008b3..b241bed 100644
--- a/webrtc/audio/audio_receive_stream_unittest.cc
+++ b/webrtc/audio/audio_receive_stream_unittest.cc
@@ -9,6 +9,7 @@
  */
 
 #include <string>
+#include <vector>
 
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -90,6 +91,9 @@
           EXPECT_CALL(*channel_proxy_,
               SetReceiveAudioLevelIndicationStatus(true, kAudioLevelId))
                   .Times(1);
+          EXPECT_CALL(*channel_proxy_, EnableReceiveTransportSequenceNumber(
+                                           kTransportSequenceNumberId))
+              .Times(1);
           EXPECT_CALL(*channel_proxy_, SetCongestionControlObjects(
                                            nullptr, nullptr, &packet_router_))
               .Times(1);
@@ -107,6 +111,8 @@
         RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId));
     stream_config_.rtp.extensions.push_back(
         RtpExtension(RtpExtension::kAudioLevel, kAudioLevelId));
+    stream_config_.rtp.extensions.push_back(RtpExtension(
+        RtpExtension::kTransportSequenceNumber, kTransportSequenceNumberId));
   }
 
   MockCongestionController* congestion_controller() {
@@ -261,8 +267,6 @@
   ConfigHelper helper;
   helper.config().combined_audio_video_bwe = true;
   helper.config().rtp.transport_cc = true;
-  helper.config().rtp.extensions.push_back(RtpExtension(
-      RtpExtension::kTransportSequenceNumber, kTransportSequenceNumberId));
   helper.SetupMockForBweFeedback(true);
   internal::AudioReceiveStream recv_stream(
       helper.congestion_controller(), helper.config(), helper.audio_state());
diff --git a/webrtc/test/mock_voe_channel_proxy.h b/webrtc/test/mock_voe_channel_proxy.h
index b5d79c1..a0ec4b2 100644
--- a/webrtc/test/mock_voe_channel_proxy.h
+++ b/webrtc/test/mock_voe_channel_proxy.h
@@ -25,9 +25,10 @@
   MOCK_METHOD1(SetRTCP_CNAME, void(const std::string& c_name));
   MOCK_METHOD2(SetSendAbsoluteSenderTimeStatus, void(bool enable, int id));
   MOCK_METHOD2(SetSendAudioLevelIndicationStatus, void(bool enable, int id));
-  MOCK_METHOD1(EnableSendTransportSequenceNumber, void(int id));
   MOCK_METHOD2(SetReceiveAbsoluteSenderTimeStatus, void(bool enable, int id));
   MOCK_METHOD2(SetReceiveAudioLevelIndicationStatus, void(bool enable, int id));
+  MOCK_METHOD1(EnableSendTransportSequenceNumber, void(int id));
+  MOCK_METHOD1(EnableReceiveTransportSequenceNumber, void(int id));
   MOCK_METHOD3(SetCongestionControlObjects,
                void(RtpPacketSender* rtp_packet_sender,
                     TransportFeedbackObserver* transport_feedback_observer,
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
index 46e04ba..7b9a803 100644
--- a/webrtc/voice_engine/channel.cc
+++ b/webrtc/voice_engine/channel.cc
@@ -2924,6 +2924,14 @@
   RTC_DCHECK_EQ(0, ret);
 }
 
+void Channel::EnableReceiveTransportSequenceNumber(int id) {
+  rtp_header_parser_->DeregisterRtpHeaderExtension(
+      kRtpExtensionTransportSequenceNumber);
+  bool ret = rtp_header_parser_->RegisterRtpHeaderExtension(
+      kRtpExtensionTransportSequenceNumber, id);
+  RTC_DCHECK(ret);
+}
+
 void Channel::SetCongestionControlObjects(
     RtpPacketSender* rtp_packet_sender,
     TransportFeedbackObserver* transport_feedback_observer,
diff --git a/webrtc/voice_engine/channel.h b/webrtc/voice_engine/channel.h
index d15f9db..3ef5b4a 100644
--- a/webrtc/voice_engine/channel.h
+++ b/webrtc/voice_engine/channel.h
@@ -329,6 +329,7 @@
     int SetSendAbsoluteSenderTimeStatus(bool enable, unsigned char id);
     int SetReceiveAbsoluteSenderTimeStatus(bool enable, unsigned char id);
     void EnableSendTransportSequenceNumber(int id);
+    void EnableReceiveTransportSequenceNumber(int id);
 
     void SetCongestionControlObjects(
         RtpPacketSender* rtp_packet_sender,
diff --git a/webrtc/voice_engine/channel_proxy.cc b/webrtc/voice_engine/channel_proxy.cc
index f54c81e..15a2151 100644
--- a/webrtc/voice_engine/channel_proxy.cc
+++ b/webrtc/voice_engine/channel_proxy.cc
@@ -57,11 +57,6 @@
   RTC_DCHECK_EQ(0, error);
 }
 
-void ChannelProxy::EnableSendTransportSequenceNumber(int id) {
-  RTC_DCHECK(thread_checker_.CalledOnValidThread());
-  channel()->EnableSendTransportSequenceNumber(id);
-}
-
 void ChannelProxy::SetReceiveAbsoluteSenderTimeStatus(bool enable, int id) {
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
   int error = channel()->SetReceiveAbsoluteSenderTimeStatus(enable, id);
@@ -74,6 +69,16 @@
   RTC_DCHECK_EQ(0, error);
 }
 
+void ChannelProxy::EnableSendTransportSequenceNumber(int id) {
+  RTC_DCHECK(thread_checker_.CalledOnValidThread());
+  channel()->EnableSendTransportSequenceNumber(id);
+}
+
+void ChannelProxy::EnableReceiveTransportSequenceNumber(int id) {
+  RTC_DCHECK(thread_checker_.CalledOnValidThread());
+  channel()->EnableReceiveTransportSequenceNumber(id);
+}
+
 void ChannelProxy::SetCongestionControlObjects(
     RtpPacketSender* rtp_packet_sender,
     TransportFeedbackObserver* transport_feedback_observer,
diff --git a/webrtc/voice_engine/channel_proxy.h b/webrtc/voice_engine/channel_proxy.h
index b990d91..9a93160 100644
--- a/webrtc/voice_engine/channel_proxy.h
+++ b/webrtc/voice_engine/channel_proxy.h
@@ -47,9 +47,10 @@
   virtual void SetRTCP_CNAME(const std::string& c_name);
   virtual void SetSendAbsoluteSenderTimeStatus(bool enable, int id);
   virtual void SetSendAudioLevelIndicationStatus(bool enable, int id);
-  virtual void EnableSendTransportSequenceNumber(int id);
   virtual void SetReceiveAbsoluteSenderTimeStatus(bool enable, int id);
   virtual void SetReceiveAudioLevelIndicationStatus(bool enable, int id);
+  virtual void EnableSendTransportSequenceNumber(int id);
+  virtual void EnableReceiveTransportSequenceNumber(int id);
   virtual void SetCongestionControlObjects(
       RtpPacketSender* rtp_packet_sender,
       TransportFeedbackObserver* transport_feedback_observer,