From 3313ec901f066d879aa5889ab38588a3612fe28d Mon Sep 17 00:00:00 2001 From: stefan Date: Thu, 21 Jan 2016 06:32:43 -0800 Subject: [PATCH] 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} --- webrtc/audio/audio_receive_stream.cc | 1 + webrtc/audio/audio_receive_stream_unittest.cc | 8 ++++++-- webrtc/test/mock_voe_channel_proxy.h | 3 ++- webrtc/voice_engine/channel.cc | 8 ++++++++ webrtc/voice_engine/channel.h | 1 + webrtc/voice_engine/channel_proxy.cc | 15 ++++++++++----- webrtc/voice_engine/channel_proxy.h | 3 ++- 7 files changed, 30 insertions(+), 9 deletions(-) diff --git a/webrtc/audio/audio_receive_stream.cc b/webrtc/audio/audio_receive_stream.cc index 64d008326d..ebe271367b 100644 --- a/webrtc/audio/audio_receive_stream.cc +++ b/webrtc/audio/audio_receive_stream.cc @@ -108,6 +108,7 @@ AudioReceiveStream::AudioReceiveStream( 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 eb008b3045..b241bed6b5 100644 --- a/webrtc/audio/audio_receive_stream_unittest.cc +++ b/webrtc/audio/audio_receive_stream_unittest.cc @@ -9,6 +9,7 @@ */ #include +#include #include "testing/gtest/include/gtest/gtest.h" @@ -90,6 +91,9 @@ struct ConfigHelper { 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 @@ struct ConfigHelper { 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 @@ TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) { 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 b5d79c18ea..a0ec4b2405 100644 --- a/webrtc/test/mock_voe_channel_proxy.h +++ b/webrtc/test/mock_voe_channel_proxy.h @@ -25,9 +25,10 @@ class MockVoEChannelProxy : public voe::ChannelProxy { 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 46e04ba882..7b9a803a2d 100644 --- a/webrtc/voice_engine/channel.cc +++ b/webrtc/voice_engine/channel.cc @@ -2924,6 +2924,14 @@ void Channel::EnableSendTransportSequenceNumber(int id) { 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 d15f9dbca7..3ef5b4a294 100644 --- a/webrtc/voice_engine/channel.h +++ b/webrtc/voice_engine/channel.h @@ -329,6 +329,7 @@ public: 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 f54c81ec47..15a21512fb 100644 --- a/webrtc/voice_engine/channel_proxy.cc +++ b/webrtc/voice_engine/channel_proxy.cc @@ -57,11 +57,6 @@ void ChannelProxy::SetSendAudioLevelIndicationStatus(bool enable, int id) { 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 @@ void ChannelProxy::SetReceiveAudioLevelIndicationStatus(bool enable, int id) { 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 b990d91734..9a931600f4 100644 --- a/webrtc/voice_engine/channel_proxy.h +++ b/webrtc/voice_engine/channel_proxy.h @@ -47,9 +47,10 @@ class ChannelProxy { 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,