From 6f8d686d3503aafa64a8b545f8b8fdff65e8f816 Mon Sep 17 00:00:00 2001 From: isheriff Date: Thu, 26 May 2016 11:24:55 -0700 Subject: [PATCH] Remove use of RtpHeaderExtension and clean up Currently there are two structs that are identical and track extension details: webrtc::RtpExtension cricket::RtpHeaderExtension The use of the structs is mixed in the code to track the extensions being supported. This results in duplicate definition of the URI constants and there is code to convert between the two structs. Clean up to use a single RtpHeader throughout the codebase. The actual location of RtpHeader may change in future (perhaps to be located in api/). Additionally, this CL renames some of the constants to clarify Uri and Id use. BUG= webrtc:5895 Review-Url: https://codereview.webrtc.org/1984983002 Cr-Commit-Position: refs/heads/master@{#12924} --- webrtc/api/webrtcsdp.cc | 17 +- webrtc/api/webrtcsdp_unittest.cc | 12 +- webrtc/audio/audio_receive_stream.cc | 8 +- webrtc/audio/audio_receive_stream_unittest.cc | 10 +- webrtc/audio/audio_send_stream.cc | 6 +- webrtc/audio/audio_send_stream_unittest.cc | 10 +- webrtc/call/bitrate_estimator_tests.cc | 20 +-- webrtc/call/rampup_tests.cc | 62 +++---- webrtc/call/rtc_event_log.cc | 4 +- webrtc/call/rtc_event_log_unittest.cc | 9 +- webrtc/call/rtc_event_log_unittest_helper.cc | 12 +- webrtc/config.cc | 44 +++-- webrtc/config.h | 42 +++-- webrtc/media/base/fakemediaengine.h | 23 ++- webrtc/media/base/mediachannel.h | 43 +---- webrtc/media/base/mediaconstants.cc | 21 --- webrtc/media/base/mediaconstants.h | 28 ---- webrtc/media/base/mediaengine.h | 2 +- webrtc/media/engine/webrtcmediaengine.cc | 33 ++-- webrtc/media/engine/webrtcmediaengine.h | 9 +- .../engine/webrtcmediaengine_unittest.cc | 102 ++++++------ webrtc/media/engine/webrtcvideoengine2.cc | 26 +-- .../engine/webrtcvideoengine2_unittest.cc | 156 ++++++++---------- webrtc/media/engine/webrtcvoiceengine.cc | 15 +- .../engine/webrtcvoiceengine_unittest.cc | 41 +++-- .../modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 10 +- webrtc/pc/channel.cc | 20 ++- webrtc/pc/channel.h | 2 +- webrtc/pc/mediasession.cc | 16 +- webrtc/pc/mediasession.h | 6 +- webrtc/pc/mediasession_unittest.cc | 72 ++++---- webrtc/test/call_test.cc | 4 +- webrtc/video/end_to_end_tests.cc | 22 +-- webrtc/video/replay.cc | 6 +- webrtc/video/rtp_stream_receiver.cc | 2 +- webrtc/video/video_quality_test.cc | 4 +- webrtc/video/video_receive_stream.cc | 2 +- webrtc/video/video_send_stream.cc | 2 +- webrtc/video/video_send_stream_tests.cc | 14 +- 39 files changed, 433 insertions(+), 504 deletions(-) diff --git a/webrtc/api/webrtcsdp.cc b/webrtc/api/webrtcsdp.cc index fa052419c0..b2e75a21cb 100644 --- a/webrtc/api/webrtcsdp.cc +++ b/webrtc/api/webrtcsdp.cc @@ -27,6 +27,8 @@ #include "webrtc/base/logging.h" #include "webrtc/base/messagedigest.h" #include "webrtc/base/stringutils.h" +// for RtpExtension +#include "webrtc/config.h" #include "webrtc/media/base/codec.h" #include "webrtc/media/base/cryptoparams.h" #include "webrtc/media/base/mediaconstants.h" @@ -64,7 +66,7 @@ using cricket::kCodecParamMaxPlaybackRate; using cricket::kCodecParamAssociatedPayloadType; using cricket::MediaContentDescription; using cricket::MediaType; -using cricket::RtpHeaderExtension; +using cricket::RtpHeaderExtensions; using cricket::SsrcGroup; using cricket::StreamParams; using cricket::StreamParamsVec; @@ -73,8 +75,6 @@ using cricket::TransportInfo; using cricket::VideoContentDescription; using rtc::SocketAddress; -typedef std::vector RtpHeaderExtensions; - namespace cricket { class SessionDescription; } @@ -309,7 +309,7 @@ static bool ParseIceOptions(const std::string& line, std::vector* transport_options, SdpParseError* error); static bool ParseExtmap(const std::string& line, - RtpHeaderExtension* extmap, + RtpExtension* extmap, SdpParseError* error); static bool ParseFingerprintAttribute(const std::string& line, rtc::SSLFingerprint** fingerprint, @@ -1168,7 +1168,8 @@ bool ParseSctpPort(const std::string& line, return true; } -bool ParseExtmap(const std::string& line, RtpHeaderExtension* extmap, +bool ParseExtmap(const std::string& line, + RtpExtension* extmap, SdpParseError* error) { // RFC 5285 // a=extmap:["/"] @@ -1192,7 +1193,7 @@ bool ParseExtmap(const std::string& line, RtpHeaderExtension* extmap, return false; } - *extmap = RtpHeaderExtension(uri, value); + *extmap = RtpExtension(uri, value); return true; } @@ -2015,7 +2016,7 @@ bool ParseSessionDescription(const std::string& message, size_t* pos, desc->set_msid_supported( CaseInsensitiveFind(semantics, kMediaStreamSemantic)); } else if (HasAttribute(line, kAttributeExtmap)) { - RtpHeaderExtension extmap; + RtpExtension extmap; if (!ParseExtmap(line, &extmap, error)) { return false; } @@ -2703,7 +2704,7 @@ bool ParseContent(const std::string& message, } else if (HasAttribute(line, kAttributeSendRecv)) { media_desc->set_direction(cricket::MD_SENDRECV); } else if (HasAttribute(line, kAttributeExtmap)) { - RtpHeaderExtension extmap; + RtpExtension extmap; if (!ParseExtmap(line, &extmap, error)) { return false; } diff --git a/webrtc/api/webrtcsdp_unittest.cc b/webrtc/api/webrtcsdp_unittest.cc index 4bc84fdc12..5c69d50c98 100644 --- a/webrtc/api/webrtcsdp_unittest.cc +++ b/webrtc/api/webrtcsdp_unittest.cc @@ -44,7 +44,6 @@ using cricket::kFecSsrcGroupSemantics; using cricket::LOCAL_PORT_TYPE; using cricket::NS_JINGLE_DRAFT_SCTP; using cricket::NS_JINGLE_RTP; -using cricket::RtpHeaderExtension; using cricket::RELAY_PORT_TYPE; using cricket::SessionDescription; using cricket::StreamParams; @@ -57,6 +56,7 @@ using webrtc::IceCandidateCollection; using webrtc::IceCandidateInterface; using webrtc::JsepIceCandidate; using webrtc::JsepSessionDescription; +using webrtc::RtpExtension; using webrtc::SdpParseError; using webrtc::SessionDescriptionInterface; @@ -1110,8 +1110,8 @@ class WebRtcSdpTest : public testing::Test { ASSERT_EQ(cd1->rtp_header_extensions().size(), cd2->rtp_header_extensions().size()); for (size_t i = 0; i< cd1->rtp_header_extensions().size(); ++i) { - const RtpHeaderExtension ext1 = cd1->rtp_header_extensions().at(i); - const RtpHeaderExtension ext2 = cd2->rtp_header_extensions().at(i); + const RtpExtension ext1 = cd1->rtp_header_extensions().at(i); + const RtpExtension ext2 = cd2->rtp_header_extensions().at(i); EXPECT_EQ(ext1.uri, ext2.uri); EXPECT_EQ(ext1.id, ext2.id); } @@ -1333,10 +1333,8 @@ class WebRtcSdpTest : public testing::Test { audio_desc_->Copy()); video_desc_ = static_cast( video_desc_->Copy()); - audio_desc_->AddRtpHeaderExtension( - RtpHeaderExtension(kExtmapUri, kExtmapId)); - video_desc_->AddRtpHeaderExtension( - RtpHeaderExtension(kExtmapUri, kExtmapId)); + audio_desc_->AddRtpHeaderExtension(RtpExtension(kExtmapUri, kExtmapId)); + video_desc_->AddRtpHeaderExtension(RtpExtension(kExtmapUri, kExtmapId)); desc_.RemoveContentByName(kAudioContentName); desc_.RemoveContentByName(kVideoContentName); desc_.AddContent(kAudioContentName, NS_JINGLE_RTP, audio_desc_); diff --git a/webrtc/audio/audio_receive_stream.cc b/webrtc/audio/audio_receive_stream.cc index fb17fccefc..e391df471e 100644 --- a/webrtc/audio/audio_receive_stream.cc +++ b/webrtc/audio/audio_receive_stream.cc @@ -38,7 +38,7 @@ bool UseSendSideBwe(const webrtc::AudioReceiveStream::Config& config) { return false; } for (const auto& extension : config.rtp.extensions) { - if (extension.name == RtpExtension::kTransportSequenceNumber) { + if (extension.uri == RtpExtension::kTransportSequenceNumberUri) { return true; } } @@ -97,17 +97,17 @@ AudioReceiveStream::AudioReceiveStream( channel_proxy_->RegisterExternalTransport(config.rtcp_send_transport); for (const auto& extension : config.rtp.extensions) { - if (extension.name == RtpExtension::kAudioLevel) { + if (extension.uri == RtpExtension::kAudioLevelUri) { channel_proxy_->SetReceiveAudioLevelIndicationStatus(true, extension.id); bool registered = rtp_header_parser_->RegisterRtpHeaderExtension( kRtpExtensionAudioLevel, extension.id); RTC_DCHECK(registered); - } else if (extension.name == RtpExtension::kAbsSendTime) { + } else if (extension.uri == RtpExtension::kAbsSendTimeUri) { channel_proxy_->SetReceiveAbsoluteSenderTimeStatus(true, extension.id); bool registered = rtp_header_parser_->RegisterRtpHeaderExtension( kRtpExtensionAbsoluteSendTime, extension.id); RTC_DCHECK(registered); - } else if (extension.name == RtpExtension::kTransportSequenceNumber) { + } else if (extension.uri == RtpExtension::kTransportSequenceNumberUri) { channel_proxy_->EnableReceiveTransportSequenceNumber(extension.id); bool registered = rtp_header_parser_->RegisterRtpHeaderExtension( kRtpExtensionTransportSequenceNumber, extension.id); diff --git a/webrtc/audio/audio_receive_stream_unittest.cc b/webrtc/audio/audio_receive_stream_unittest.cc index a5318d5150..fd913dbf87 100644 --- a/webrtc/audio/audio_receive_stream_unittest.cc +++ b/webrtc/audio/audio_receive_stream_unittest.cc @@ -108,11 +108,11 @@ struct ConfigHelper { stream_config_.rtp.local_ssrc = kLocalSsrc; stream_config_.rtp.remote_ssrc = kRemoteSsrc; stream_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); stream_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAudioLevel, kAudioLevelId)); + RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); stream_config_.rtp.extensions.push_back(RtpExtension( - RtpExtension::kTransportSequenceNumber, kTransportSequenceNumberId)); + RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); } MockCongestionController* congestion_controller() { @@ -224,10 +224,10 @@ TEST(AudioReceiveStreamTest, ConfigToString) { config.rtp.remote_ssrc = kRemoteSsrc; config.rtp.local_ssrc = kLocalSsrc; config.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); config.voe_channel_id = kChannelId; EXPECT_EQ( - "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, extensions: [{name: " + "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, extensions: [{uri: " "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 2}], " "transport_cc: off}, " "rtcp_send_transport: nullptr, " diff --git a/webrtc/audio/audio_send_stream.cc b/webrtc/audio/audio_send_stream.cc index c0a709e3c6..e9659c67e8 100644 --- a/webrtc/audio/audio_send_stream.cc +++ b/webrtc/audio/audio_send_stream.cc @@ -79,11 +79,11 @@ AudioSendStream::AudioSendStream( channel_proxy_->RegisterExternalTransport(config.send_transport); for (const auto& extension : config.rtp.extensions) { - if (extension.name == RtpExtension::kAbsSendTime) { + if (extension.uri == RtpExtension::kAbsSendTimeUri) { channel_proxy_->SetSendAbsoluteSenderTimeStatus(true, extension.id); - } else if (extension.name == RtpExtension::kAudioLevel) { + } else if (extension.uri == RtpExtension::kAudioLevelUri) { channel_proxy_->SetSendAudioLevelIndicationStatus(true, extension.id); - } else if (extension.name == RtpExtension::kTransportSequenceNumber) { + } else if (extension.uri == RtpExtension::kTransportSequenceNumberUri) { channel_proxy_->EnableSendTransportSequenceNumber(extension.id); } else { RTC_NOTREACHED() << "Registering unsupported RTP extension."; diff --git a/webrtc/audio/audio_send_stream_unittest.cc b/webrtc/audio/audio_send_stream_unittest.cc index a94034c649..4d9d465c65 100644 --- a/webrtc/audio/audio_send_stream_unittest.cc +++ b/webrtc/audio/audio_send_stream_unittest.cc @@ -99,11 +99,11 @@ struct ConfigHelper { stream_config_.rtp.ssrc = kSsrc; stream_config_.rtp.c_name = kCName; stream_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAudioLevel, kAudioLevelId)); + RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); stream_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); stream_config_.rtp.extensions.push_back(RtpExtension( - RtpExtension::kTransportSequenceNumber, kTransportSequenceNumberId)); + RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); } AudioSendStream::Config& config() { return stream_config_; } @@ -171,13 +171,13 @@ TEST(AudioSendStreamTest, ConfigToString) { AudioSendStream::Config config(nullptr); config.rtp.ssrc = kSsrc; config.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); config.rtp.c_name = kCName; config.voe_channel_id = kChannelId; config.cng_payload_type = 42; config.red_payload_type = 17; EXPECT_EQ( - "{rtp: {ssrc: 1234, extensions: [{name: " + "{rtp: {ssrc: 1234, extensions: [{uri: " "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], " "c_name: foo_name}, voe_channel_id: 1, cng_payload_type: 42, " "red_payload_type: 17}", diff --git a/webrtc/call/bitrate_estimator_tests.cc b/webrtc/call/bitrate_estimator_tests.cc index 122e5bb19b..8cd2799ba2 100644 --- a/webrtc/call/bitrate_estimator_tests.cc +++ b/webrtc/call/bitrate_estimator_tests.cc @@ -134,9 +134,9 @@ class BitrateEstimatorTest : public test::CallTest { receive_config_.rtp.local_ssrc = kReceiverLocalVideoSsrc; receive_config_.rtp.remb = true; receive_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); receive_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); } virtual void TearDown() { @@ -189,7 +189,7 @@ class BitrateEstimatorTest : public test::CallTest { // an underlying channel id. receive_config.voe_channel_id = 0; receive_config.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); audio_receive_stream_ = test_->receiver_call_->CreateAudioReceiveStream(receive_config); } else { @@ -265,7 +265,7 @@ static const char* kSingleStreamLog = TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); receiver_log_.PushExpectedLogLine(kSingleStreamLog); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine(kSingleStreamLog); @@ -275,7 +275,7 @@ TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); receiver_log_.PushExpectedLogLine(kSingleStreamLog); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine(kSingleStreamLog); @@ -287,7 +287,7 @@ TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); receiver_log_.PushExpectedLogLine(kSingleStreamLog); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine(kSingleStreamLog); @@ -295,7 +295,7 @@ TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { EXPECT_TRUE(receiver_log_.Wait()); video_send_config_.rtp.extensions[0] = - RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); + RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); streams_.push_back(new Stream(this, false)); @@ -305,7 +305,7 @@ TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { // This test is flaky. See webrtc:5790. TEST_F(BitrateEstimatorTest, DISABLED_SwitchesToASTThenBackToTOFForVideo) { video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); receiver_log_.PushExpectedLogLine(kSingleStreamLog); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine(kSingleStreamLog); @@ -313,14 +313,14 @@ TEST_F(BitrateEstimatorTest, DISABLED_SwitchesToASTThenBackToTOFForVideo) { EXPECT_TRUE(receiver_log_.Wait()); video_send_config_.rtp.extensions[0] = - RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); + RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); streams_.push_back(new Stream(this, false)); EXPECT_TRUE(receiver_log_.Wait()); video_send_config_.rtp.extensions[0] = - RtpExtension(RtpExtension::kTOffset, kTOFExtensionId); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId); receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); receiver_log_.PushExpectedLogLine( "WrappingBitrateEstimator: Switching to transmission time offset RBE."); diff --git a/webrtc/call/rampup_tests.cc b/webrtc/call/rampup_tests.cc index c9ce7e11f3..d6271d3ccb 100644 --- a/webrtc/call/rampup_tests.cc +++ b/webrtc/call/rampup_tests.cc @@ -121,12 +121,12 @@ void RampUpTester::ModifyVideoConfigs( bool remb; bool transport_cc; - if (extension_type_ == RtpExtension::kAbsSendTime) { + if (extension_type_ == RtpExtension::kAbsSendTimeUri) { remb = true; transport_cc = false; send_config->rtp.extensions.push_back( RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId)); - } else if (extension_type_ == RtpExtension::kTransportSequenceNumber) { + } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) { remb = false; transport_cc = true; send_config->rtp.extensions.push_back(RtpExtension( @@ -182,18 +182,18 @@ void RampUpTester::ModifyAudioConfigs( if (num_audio_streams_ == 0) return; - EXPECT_NE(RtpExtension::kTOffset, extension_type_) + EXPECT_NE(RtpExtension::kTimestampOffsetUri, extension_type_) << "Audio BWE not supported with toffset."; send_config->rtp.ssrc = audio_ssrcs_[0]; send_config->rtp.extensions.clear(); bool transport_cc = false; - if (extension_type_ == RtpExtension::kAbsSendTime) { + if (extension_type_ == RtpExtension::kAbsSendTimeUri) { transport_cc = false; send_config->rtp.extensions.push_back( RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId)); - } else if (extension_type_ == RtpExtension::kTransportSequenceNumber) { + } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) { transport_cc = true; send_config->rtp.extensions.push_back(RtpExtension( extension_type_.c_str(), kTransportSequenceNumberExtensionId)); @@ -439,28 +439,28 @@ class RampUpTest : public test::CallTest { }; TEST_F(RampUpTest, SingleStream) { - RampUpTester test(1, 0, 0, RtpExtension::kTOffset, false, false); + RampUpTester test(1, 0, 0, RtpExtension::kTimestampOffsetUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, Simulcast) { - RampUpTester test(3, 0, 0, RtpExtension::kTOffset, false, false); + RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, SimulcastWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kTOffset, true, false); + RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, false); RunBaseTest(&test); } TEST_F(RampUpTest, SimulcastByRedWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kTOffset, true, true); + RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, true); RunBaseTest(&test); } TEST_F(RampUpTest, SingleStreamWithHighStartBitrate) { - RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps, RtpExtension::kTOffset, - false, false); + RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps, + RtpExtension::kTimestampOffsetUri, false, false); RunBaseTest(&test); } @@ -472,46 +472,47 @@ static const uint32_t kStartBitrateBps = 60000; // Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576 TEST_F(RampUpTest, DISABLED_UpDownUpOneStream) { - RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, UpDownUpThreeStreams) { - RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, false, false); RunBaseTest(&test); } // Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576 TEST_F(RampUpTest, DISABLED_UpDownUpOneStreamRtx) { - RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, true, false); RunBaseTest(&test); } TEST_F(RampUpTest, UpDownUpThreeStreamsRtx) { - RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, true, false); RunBaseTest(&test); } // Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576 TEST_F(RampUpTest, DISABLED_UpDownUpOneStreamByRedRtx) { - RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, true, true); RunBaseTest(&test); } TEST_F(RampUpTest, UpDownUpThreeStreamsByRedRtx) { - RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTime, + RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, true, true); RunBaseTest(&test); } TEST_F(RampUpTest, SendSideVideoUpDownUpRtx) { RampUpDownUpTester test(3, 0, kStartBitrateBps, - RtpExtension::kTransportSequenceNumber, true, false); + RtpExtension::kTransportSequenceNumberUri, true, + false); RunBaseTest(&test); } @@ -519,71 +520,72 @@ TEST_F(RampUpTest, SendSideVideoUpDownUpRtx) { // allocation. TEST_F(RampUpTest, DISABLED_SendSideAudioVideoUpDownUpRtx) { RampUpDownUpTester test(3, 1, kStartBitrateBps, - RtpExtension::kTransportSequenceNumber, true, false); + RtpExtension::kTransportSequenceNumberUri, true, + false); RunBaseTest(&test); } #endif TEST_F(RampUpTest, AbsSendTimeSingleStream) { - RampUpTester test(1, 0, 0, RtpExtension::kAbsSendTime, false, false); + RampUpTester test(1, 0, 0, RtpExtension::kAbsSendTimeUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, AbsSendTimeSimulcast) { - RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTime, false, false); + RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, AbsSendTimeSimulcastWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTime, true, false); + RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, false); RunBaseTest(&test); } TEST_F(RampUpTest, AbsSendTimeSimulcastByRedWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTime, true, true); + RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, true); RunBaseTest(&test); } TEST_F(RampUpTest, AbsSendTimeSingleStreamWithHighStartBitrate) { RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps, - RtpExtension::kAbsSendTime, false, false); + RtpExtension::kAbsSendTimeUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, TransportSequenceNumberSingleStream) { - RampUpTester test(1, 0, 0, RtpExtension::kTransportSequenceNumber, false, + RampUpTester test(1, 0, 0, RtpExtension::kTransportSequenceNumberUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, TransportSequenceNumberSimulcast) { - RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumber, false, + RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, false, false); RunBaseTest(&test); } TEST_F(RampUpTest, TransportSequenceNumberSimulcastWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumber, true, + RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true, false); RunBaseTest(&test); } TEST_F(RampUpTest, AudioVideoTransportSequenceNumberSimulcastWithRtx) { - RampUpTester test(3, 1, 0, RtpExtension::kTransportSequenceNumber, true, + RampUpTester test(3, 1, 0, RtpExtension::kTransportSequenceNumberUri, true, false); RunBaseTest(&test); } TEST_F(RampUpTest, TransportSequenceNumberSimulcastByRedWithRtx) { - RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumber, true, + RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true, true); RunBaseTest(&test); } TEST_F(RampUpTest, TransportSequenceNumberSingleStreamWithHighStartBitrate) { RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps, - RtpExtension::kTransportSequenceNumber, false, false); + RtpExtension::kTransportSequenceNumberUri, false, false); RunBaseTest(&test); } } // namespace webrtc diff --git a/webrtc/call/rtc_event_log.cc b/webrtc/call/rtc_event_log.cc index 6dd02c808e..07f461bc79 100644 --- a/webrtc/call/rtc_event_log.cc +++ b/webrtc/call/rtc_event_log.cc @@ -268,7 +268,7 @@ void RtcEventLogImpl::LogVideoReceiveStreamConfig( for (const auto& e : config.rtp.extensions) { rtclog::RtpHeaderExtension* extension = receiver_config->add_header_extensions(); - extension->set_name(e.name); + extension->set_name(e.uri); extension->set_id(e.id); } @@ -297,7 +297,7 @@ void RtcEventLogImpl::LogVideoSendStreamConfig( for (const auto& e : config.rtp.extensions) { rtclog::RtpHeaderExtension* extension = sender_config->add_header_extensions(); - extension->set_name(e.name); + extension->set_name(e.uri); extension->set_id(e.id); } diff --git a/webrtc/call/rtc_event_log_unittest.cc b/webrtc/call/rtc_event_log_unittest.cc index 067c44123b..82f23a97ed 100644 --- a/webrtc/call/rtc_event_log_unittest.cc +++ b/webrtc/call/rtc_event_log_unittest.cc @@ -48,11 +48,10 @@ const RTPExtensionType kExtensionTypes[] = { RTPExtensionType::kRtpExtensionAbsoluteSendTime, RTPExtensionType::kRtpExtensionVideoRotation, RTPExtensionType::kRtpExtensionTransportSequenceNumber}; -const char* kExtensionNames[] = {RtpExtension::kTOffset, - RtpExtension::kAudioLevel, - RtpExtension::kAbsSendTime, - RtpExtension::kVideoRotation, - RtpExtension::kTransportSequenceNumber}; +const char* kExtensionNames[] = { + RtpExtension::kTimestampOffsetUri, RtpExtension::kAudioLevelUri, + RtpExtension::kAbsSendTimeUri, RtpExtension::kVideoRotationUri, + RtpExtension::kTransportSequenceNumberUri}; const size_t kNumExtensions = 5; void PrintActualEvents(const ParsedRtcEventLog& parsed_log) { diff --git a/webrtc/call/rtc_event_log_unittest_helper.cc b/webrtc/call/rtc_event_log_unittest_helper.cc index 5a06d97170..dcaeaf979c 100644 --- a/webrtc/call/rtc_event_log_unittest_helper.cc +++ b/webrtc/call/rtc_event_log_unittest_helper.cc @@ -153,7 +153,7 @@ void RtcEventLogTestHelper::VerifyReceiveStreamConfig( const std::string& name = receiver_config.header_extensions(i).name(); int id = receiver_config.header_extensions(i).id(); EXPECT_EQ(config.rtp.extensions[i].id, id); - EXPECT_EQ(config.rtp.extensions[i].name, name); + EXPECT_EQ(config.rtp.extensions[i].uri, name); } // Check decoders. ASSERT_EQ(static_cast(config.decoders.size()), @@ -186,8 +186,8 @@ void RtcEventLogTestHelper::VerifyReceiveStreamConfig( // Check header extensions. EXPECT_EQ(config.rtp.extensions.size(), parsed_config.rtp.extensions.size()); for (size_t i = 0; i < parsed_config.rtp.extensions.size(); i++) { - EXPECT_EQ(config.rtp.extensions[i].name, - parsed_config.rtp.extensions[i].name); + EXPECT_EQ(config.rtp.extensions[i].uri, + parsed_config.rtp.extensions[i].uri); EXPECT_EQ(config.rtp.extensions[i].id, parsed_config.rtp.extensions[i].id); } // Check decoders. @@ -223,7 +223,7 @@ void RtcEventLogTestHelper::VerifySendStreamConfig( const std::string& name = sender_config.header_extensions(i).name(); int id = sender_config.header_extensions(i).id(); EXPECT_EQ(config.rtp.extensions[i].id, id); - EXPECT_EQ(config.rtp.extensions[i].name, name); + EXPECT_EQ(config.rtp.extensions[i].uri, name); } // Check RTX settings. ASSERT_EQ(static_cast(config.rtp.rtx.ssrcs.size()), @@ -255,8 +255,8 @@ void RtcEventLogTestHelper::VerifySendStreamConfig( // Check header extensions. EXPECT_EQ(config.rtp.extensions.size(), parsed_config.rtp.extensions.size()); for (size_t i = 0; i < parsed_config.rtp.extensions.size(); i++) { - EXPECT_EQ(config.rtp.extensions[i].name, - parsed_config.rtp.extensions[i].name); + EXPECT_EQ(config.rtp.extensions[i].uri, + parsed_config.rtp.extensions[i].uri); EXPECT_EQ(config.rtp.extensions[i].id, parsed_config.rtp.extensions[i].id); } // Check RTX settings. diff --git a/webrtc/config.cc b/webrtc/config.cc index c8cb9ef840..e9c56da32a 100644 --- a/webrtc/config.cc +++ b/webrtc/config.cc @@ -24,32 +24,42 @@ std::string FecConfig::ToString() const { std::string RtpExtension::ToString() const { std::stringstream ss; - ss << "{name: " << name; + ss << "{uri: " << uri; ss << ", id: " << id; ss << '}'; return ss.str(); } -const char* RtpExtension::kTOffset = "urn:ietf:params:rtp-hdrext:toffset"; -const char* RtpExtension::kAbsSendTime = - "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; -const char* RtpExtension::kVideoRotation = "urn:3gpp:video-orientation"; -const char* RtpExtension::kAudioLevel = +const char* RtpExtension::kAudioLevelUri = "urn:ietf:params:rtp-hdrext:ssrc-audio-level"; -const char* RtpExtension::kTransportSequenceNumber = - "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"; +const int RtpExtension::kAudioLevelDefaultId = 1; -bool RtpExtension::IsSupportedForAudio(const std::string& name) { - return name == webrtc::RtpExtension::kAbsSendTime || - name == webrtc::RtpExtension::kAudioLevel || - name == webrtc::RtpExtension::kTransportSequenceNumber; +const char* RtpExtension::kTimestampOffsetUri = + "urn:ietf:params:rtp-hdrext:toffset"; +const int RtpExtension::kTimestampOffsetDefaultId = 2; + +const char* RtpExtension::kAbsSendTimeUri = + "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; +const int RtpExtension::kAbsSendTimeDefaultId = 3; + +const char* RtpExtension::kVideoRotationUri = "urn:3gpp:video-orientation"; +const int RtpExtension::kVideoRotationDefaultId = 4; + +const char* RtpExtension::kTransportSequenceNumberUri = + "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"; +const int RtpExtension::kTransportSequenceNumberDefaultId = 5; + +bool RtpExtension::IsSupportedForAudio(const std::string& uri) { + return uri == webrtc::RtpExtension::kAbsSendTimeUri || + uri == webrtc::RtpExtension::kAudioLevelUri || + uri == webrtc::RtpExtension::kTransportSequenceNumberUri; } -bool RtpExtension::IsSupportedForVideo(const std::string& name) { - return name == webrtc::RtpExtension::kTOffset || - name == webrtc::RtpExtension::kAbsSendTime || - name == webrtc::RtpExtension::kVideoRotation || - name == webrtc::RtpExtension::kTransportSequenceNumber; +bool RtpExtension::IsSupportedForVideo(const std::string& uri) { + return uri == webrtc::RtpExtension::kTimestampOffsetUri || + uri == webrtc::RtpExtension::kAbsSendTimeUri || + uri == webrtc::RtpExtension::kVideoRotationUri || + uri == webrtc::RtpExtension::kTransportSequenceNumberUri; } VideoStream::VideoStream() diff --git a/webrtc/config.h b/webrtc/config.h index 06460ae359..d5fd1fe564 100644 --- a/webrtc/config.h +++ b/webrtc/config.h @@ -52,20 +52,42 @@ struct FecConfig { // RTP header extension, see RFC 5285. struct RtpExtension { - RtpExtension(const std::string& name, int id) : name(name), id(id) {} + RtpExtension() : id(0) {} + RtpExtension(const std::string& uri, int id) : uri(uri), id(id) {} std::string ToString() const; bool operator==(const RtpExtension& rhs) const { - return name == rhs.name && id == rhs.id; + return uri == rhs.uri && id == rhs.id; } - static bool IsSupportedForAudio(const std::string& name); - static bool IsSupportedForVideo(const std::string& name); + static bool IsSupportedForAudio(const std::string& uri); + static bool IsSupportedForVideo(const std::string& uri); - static const char* kTOffset; - static const char* kAbsSendTime; - static const char* kVideoRotation; - static const char* kAudioLevel; - static const char* kTransportSequenceNumber; - std::string name; + // Header extension for audio levels, as defined in: + // http://tools.ietf.org/html/draft-ietf-avtext-client-to-mixer-audio-level-03 + static const char* kAudioLevelUri; + static const int kAudioLevelDefaultId; + + // Header extension for RTP timestamp offset, see RFC 5450 for details: + // http://tools.ietf.org/html/rfc5450 + static const char* kTimestampOffsetUri; + static const int kTimestampOffsetDefaultId; + + // Header extension for absolute send time, see url for details: + // http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time + static const char* kAbsSendTimeUri; + static const int kAbsSendTimeDefaultId; + + // Header extension for coordination of video orientation, see url for + // details: + // http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ts_126114v120700p.pdf + static const char* kVideoRotationUri; + static const int kVideoRotationDefaultId; + + // Header extension for transport sequence number, see url for details: + // http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions + static const char* kTransportSequenceNumberUri; + static const int kTransportSequenceNumberDefaultId; + + std::string uri; int id; }; diff --git a/webrtc/media/base/fakemediaengine.h b/webrtc/media/base/fakemediaengine.h index bde584386f..1e1ef6c9db 100644 --- a/webrtc/media/base/fakemediaengine.h +++ b/webrtc/media/base/fakemediaengine.h @@ -28,6 +28,8 @@ #include "webrtc/media/base/streamparams.h" #include "webrtc/p2p/base/sessiondescription.h" +using webrtc::RtpExtension; + namespace cricket { class FakeMediaEngine; @@ -44,10 +46,10 @@ template class RtpHelper : public Base { fail_set_recv_codecs_(false), send_ssrc_(0), ready_to_send_(false) {} - const std::vector& recv_extensions() { + const std::vector& recv_extensions() { return recv_extensions_; } - const std::vector& send_extensions() { + const std::vector& send_extensions() { return send_extensions_; } bool sending() const { return sending_; } @@ -231,13 +233,11 @@ template class RtpHelper : public Base { return true; } void set_playout(bool playout) { playout_ = playout; } - bool SetRecvRtpHeaderExtensions( - const std::vector& extensions) { + bool SetRecvRtpHeaderExtensions(const std::vector& extensions) { recv_extensions_ = extensions; return true; } - bool SetSendRtpHeaderExtensions( - const std::vector& extensions) { + bool SetSendRtpHeaderExtensions(const std::vector& extensions) { send_extensions_ = extensions; return true; } @@ -263,8 +263,8 @@ template class RtpHelper : public Base { private: bool sending_; bool playout_; - std::vector recv_extensions_; - std::vector send_extensions_; + std::vector recv_extensions_; + std::vector send_extensions_; std::list rtp_packets_; std::list rtcp_packets_; std::vector send_streams_; @@ -712,8 +712,7 @@ class FakeBaseEngine { void set_fail_create_channel(bool fail) { fail_create_channel_ = fail; } RtpCapabilities GetCapabilities() const { return capabilities_; } - void set_rtp_header_extensions( - const std::vector& extensions) { + void set_rtp_header_extensions(const std::vector& extensions) { capabilities_.header_extensions = extensions; } @@ -854,11 +853,11 @@ class FakeMediaEngine : } void SetAudioRtpHeaderExtensions( - const std::vector& extensions) { + const std::vector& extensions) { voice_.set_rtp_header_extensions(extensions); } void SetVideoRtpHeaderExtensions( - const std::vector& extensions) { + const std::vector& extensions) { video_.set_rtp_header_extensions(extensions); } diff --git a/webrtc/media/base/mediachannel.h b/webrtc/media/base/mediachannel.h index 5434709854..61e450d4e1 100644 --- a/webrtc/media/base/mediachannel.h +++ b/webrtc/media/base/mediachannel.h @@ -26,6 +26,7 @@ #include "webrtc/base/sigslot.h" #include "webrtc/base/socket.h" #include "webrtc/base/window.h" +#include "webrtc/config.h" #include "webrtc/media/base/codec.h" #include "webrtc/media/base/mediaconstants.h" #include "webrtc/media/base/streamparams.h" @@ -52,8 +53,6 @@ class VideoFrame; struct RtpHeader; struct VideoFormat; -const int kMinRtpHeaderExtensionId = 1; -const int kMaxRtpHeaderExtensionId = 255; const int kScreencastDefaultFps = 5; template @@ -321,44 +320,6 @@ struct VideoOptions { } }; -struct RtpHeaderExtension { - RtpHeaderExtension() : id(0) {} - RtpHeaderExtension(const std::string& u, int i) : uri(u), id(i) {} - - bool operator==(const RtpHeaderExtension& ext) const { - // id is a reserved word in objective-c. Therefore the id attribute has to - // be a fully qualified name in order to compile on IOS. - return this->id == ext.id && - uri == ext.uri; - } - - std::string ToString() const { - std::ostringstream ost; - ost << "{"; - ost << "uri: " << uri; - ost << ", id: " << id; - ost << "}"; - return ost.str(); - } - - std::string uri; - int id; - // TODO(juberti): SendRecv direction; -}; - -// Returns the named header extension if found among all extensions, NULL -// otherwise. -inline const RtpHeaderExtension* FindHeaderExtension( - const std::vector& extensions, - const std::string& name) { - for (std::vector::const_iterator it = extensions.begin(); - it != extensions.end(); ++it) { - if (it->uri == name) - return &(*it); - } - return NULL; -} - class MediaChannel : public sigslot::has_slots<> { public: class NetworkInterface { @@ -842,7 +803,7 @@ struct RtpParameters { } std::vector codecs; - std::vector extensions; + std::vector extensions; // TODO(pthatcher): Add streams. RtcpParameters rtcp; virtual ~RtpParameters() = default; diff --git a/webrtc/media/base/mediaconstants.cc b/webrtc/media/base/mediaconstants.cc index a8e2b12599..0f31864ede 100644 --- a/webrtc/media/base/mediaconstants.cc +++ b/webrtc/media/base/mediaconstants.cc @@ -91,27 +91,6 @@ const char kGoogleSctpDataCodecName[] = "google-sctp-data"; const char kComfortNoiseCodecName[] = "CN"; -const int kRtpAudioLevelHeaderExtensionDefaultId = 1; -const char kRtpAudioLevelHeaderExtension[] = - "urn:ietf:params:rtp-hdrext:ssrc-audio-level"; - -const int kRtpTimestampOffsetHeaderExtensionDefaultId = 2; -const char kRtpTimestampOffsetHeaderExtension[] = - "urn:ietf:params:rtp-hdrext:toffset"; - -const int kRtpAbsoluteSenderTimeHeaderExtensionDefaultId = 3; -const char kRtpAbsoluteSenderTimeHeaderExtension[] = - "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; - -const int kRtpVideoRotationHeaderExtensionDefaultId = 4; -const char kRtpVideoRotationHeaderExtension[] = "urn:3gpp:video-orientation"; -const char kRtpVideoRotation6BitsHeaderExtensionForTesting[] = - "urn:3gpp:video-orientation:6"; - -const int kRtpTransportSequenceNumberHeaderExtensionDefaultId = 5; -const char kRtpTransportSequenceNumberHeaderExtension[] = - "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"; - const char kVp8CodecName[] = "VP8"; const char kVp9CodecName[] = "VP9"; const char kH264CodecName[] = "H264"; diff --git a/webrtc/media/base/mediaconstants.h b/webrtc/media/base/mediaconstants.h index 708ca5b80e..e12ad4134c 100644 --- a/webrtc/media/base/mediaconstants.h +++ b/webrtc/media/base/mediaconstants.h @@ -117,34 +117,6 @@ extern const char kGoogleSctpDataCodecName[]; extern const char kComfortNoiseCodecName[]; -// Header extension for audio levels, as defined in -// http://tools.ietf.org/html/draft-ietf-avtext-client-to-mixer-audio-level-03 -extern const int kRtpAudioLevelHeaderExtensionDefaultId; -extern const char kRtpAudioLevelHeaderExtension[]; - -// Header extension for RTP timestamp offset, see RFC 5450 for details: -// http://tools.ietf.org/html/rfc5450 -extern const int kRtpTimestampOffsetHeaderExtensionDefaultId; -extern const char kRtpTimestampOffsetHeaderExtension[]; - -// Header extension for absolute send time, see url for details: -// http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time -extern const int kRtpAbsoluteSenderTimeHeaderExtensionDefaultId; -extern const char kRtpAbsoluteSenderTimeHeaderExtension[]; - -// Header extension for coordination of video orientation, see url for details: -// http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ -// ts_126114v120700p.pdf -extern const int kRtpVideoRotationHeaderExtensionDefaultId; -extern const char kRtpVideoRotationHeaderExtension[]; -// We don't support 6 bit CVO. Added here for testing purpose. -extern const char kRtpVideoRotation6BitsHeaderExtensionForTesting[]; - -// Header extension for transport sequence number, see url for details: -// http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions -extern const int kRtpTransportSequenceNumberHeaderExtensionDefaultId; -extern const char kRtpTransportSequenceNumberHeaderExtension[]; - extern const char kVp8CodecName[]; extern const char kVp9CodecName[]; extern const char kH264CodecName[]; diff --git a/webrtc/media/base/mediaengine.h b/webrtc/media/base/mediaengine.h index 4446bd6b0e..8e31c7cbb8 100644 --- a/webrtc/media/base/mediaengine.h +++ b/webrtc/media/base/mediaengine.h @@ -42,7 +42,7 @@ namespace cricket { class VideoCapturer; struct RtpCapabilities { - std::vector header_extensions; + std::vector header_extensions; }; // MediaEngineInterface is an abstraction of a media engine which can be diff --git a/webrtc/media/engine/webrtcmediaengine.cc b/webrtc/media/engine/webrtcmediaengine.cc index 45652d0128..f452b74233 100644 --- a/webrtc/media/engine/webrtcmediaengine.cc +++ b/webrtc/media/engine/webrtcmediaengine.cc @@ -73,11 +73,10 @@ void DiscardRedundantExtensions( rtc::ArrayView extensions_decreasing_prio) { RTC_DCHECK(extensions); bool found = false; - for (const char* name : extensions_decreasing_prio) { - auto it = std::find_if(extensions->begin(), extensions->end(), - [name](const webrtc::RtpExtension& rhs) { - return rhs.name == name; - }); + for (const char* uri : extensions_decreasing_prio) { + auto it = std::find_if( + extensions->begin(), extensions->end(), + [uri](const webrtc::RtpExtension& rhs) { return rhs.uri == uri; }); if (it != extensions->end()) { if (found) { extensions->erase(it); @@ -88,7 +87,8 @@ void DiscardRedundantExtensions( } } // namespace -bool ValidateRtpExtensions(const std::vector& extensions) { +bool ValidateRtpExtensions( + const std::vector& extensions) { bool id_used[14] = {false}; for (const auto& extension : extensions) { if (extension.id <= 0 || extension.id >= 15) { @@ -105,7 +105,7 @@ bool ValidateRtpExtensions(const std::vector& extensions) { } std::vector FilterRtpExtensions( - const std::vector& extensions, + const std::vector& extensions, bool (*supported)(const std::string&), bool filter_redundant_extensions) { RTC_DCHECK(ValidateRtpExtensions(extensions)); @@ -115,7 +115,7 @@ std::vector FilterRtpExtensions( // Ignore any extensions that we don't recognize. for (const auto& extension : extensions) { if (supported(extension.uri)) { - result.push_back({extension.uri, extension.id}); + result.push_back(extension); } else { LOG(LS_WARNING) << "Unsupported RTP extension: " << extension.ToString(); } @@ -124,24 +124,23 @@ std::vector FilterRtpExtensions( // Sort by name, ascending, so that we don't reset extensions if they were // specified in a different order (also allows us to use std::unique below). std::sort(result.begin(), result.end(), - [](const webrtc::RtpExtension& rhs, const webrtc::RtpExtension& lhs) { - return rhs.name < lhs.name; - }); + [](const webrtc::RtpExtension& rhs, + const webrtc::RtpExtension& lhs) { return rhs.uri < lhs.uri; }); // Remove unnecessary extensions (used on send side). if (filter_redundant_extensions) { - auto it = std::unique(result.begin(), result.end(), + auto it = std::unique( + result.begin(), result.end(), [](const webrtc::RtpExtension& rhs, const webrtc::RtpExtension& lhs) { - return rhs.name == lhs.name; + return rhs.uri == lhs.uri; }); result.erase(it, result.end()); // Keep just the highest priority extension of any in the following list. static const char* kBweExtensionPriorities[] = { - kRtpTransportSequenceNumberHeaderExtension, - kRtpAbsoluteSenderTimeHeaderExtension, - kRtpTimestampOffsetHeaderExtension - }; + webrtc::RtpExtension::kTransportSequenceNumberUri, + webrtc::RtpExtension::kAbsSendTimeUri, + webrtc::RtpExtension::kTimestampOffsetUri}; DiscardRedundantExtensions(&result, kBweExtensionPriorities); } diff --git a/webrtc/media/engine/webrtcmediaengine.h b/webrtc/media/engine/webrtcmediaengine.h index 19b7d222f2..8aad94ccdf 100644 --- a/webrtc/media/engine/webrtcmediaengine.h +++ b/webrtc/media/engine/webrtcmediaengine.h @@ -37,14 +37,13 @@ class WebRtcMediaEngineFactory { // Verify that extension IDs are within 1-byte extension range and are not // overlapping. -bool ValidateRtpExtensions(const std::vector& extensions); +bool ValidateRtpExtensions(const std::vector& extensions); -// Convert cricket::RtpHeaderExtension:s to webrtc::RtpExtension:s, discarding -// any extensions not validated by the 'supported' predicate. Duplicate +// Discard any extensions not validated by the 'supported' predicate. Duplicate // extensions are removed if 'filter_redundant_extensions' is set, and also any -// mutually exclusive extensions (see implementation for details). +// mutually exclusive extensions (see implementation for details) are removed. std::vector FilterRtpExtensions( - const std::vector& extensions, + const std::vector& extensions, bool (*supported)(const std::string&), bool filter_redundant_extensions); diff --git a/webrtc/media/engine/webrtcmediaengine_unittest.cc b/webrtc/media/engine/webrtcmediaengine_unittest.cc index be93d7ded8..f7ae7db73d 100644 --- a/webrtc/media/engine/webrtcmediaengine_unittest.cc +++ b/webrtc/media/engine/webrtcmediaengine_unittest.cc @@ -12,27 +12,29 @@ #include "webrtc/media/engine/webrtcmediaengine.h" +using webrtc::RtpExtension; + namespace cricket { namespace { -std::vector MakeUniqueExtensions() { - std::vector result; +std::vector MakeUniqueExtensions() { + std::vector result; char name[] = "a"; for (int i = 0; i < 7; ++i) { - result.push_back(RtpHeaderExtension(name, 1 + i)); + result.push_back(RtpExtension(name, 1 + i)); name[0]++; - result.push_back(RtpHeaderExtension(name, 14 - i)); + result.push_back(RtpExtension(name, 14 - i)); name[0]++; } return result; } -std::vector MakeRedundantExtensions() { - std::vector result; +std::vector MakeRedundantExtensions() { + std::vector result; char name[] = "a"; for (int i = 0; i < 7; ++i) { - result.push_back(RtpHeaderExtension(name, 1 + i)); - result.push_back(RtpHeaderExtension(name, 14 - i)); + result.push_back(RtpExtension(name, 1 + i)); + result.push_back(RtpExtension(name, 14 - i)); name[0]++; } return result; @@ -49,67 +51,67 @@ bool SupportedExtensions2(const std::string& name) { bool IsSorted(const std::vector& extensions) { const std::string* last = nullptr; for (const auto& extension : extensions) { - if (last && *last > extension.name) { + if (last && *last > extension.uri) { return false; } - last = &extension.name; + last = &extension.uri; } return true; } } // namespace TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_EmptyList) { - std::vector extensions; + std::vector extensions; EXPECT_TRUE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_AllGood) { - std::vector extensions = MakeUniqueExtensions(); + std::vector extensions = MakeUniqueExtensions(); EXPECT_TRUE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_OutOfRangeId_Low) { - std::vector extensions = MakeUniqueExtensions(); - extensions.push_back(RtpHeaderExtension("foo", 0)); + std::vector extensions = MakeUniqueExtensions(); + extensions.push_back(RtpExtension("foo", 0)); EXPECT_FALSE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_OutOfRangeId_High) { - std::vector extensions = MakeUniqueExtensions(); - extensions.push_back(RtpHeaderExtension("foo", 15)); + std::vector extensions = MakeUniqueExtensions(); + extensions.push_back(RtpExtension("foo", 15)); EXPECT_FALSE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_OverlappingIds_StartOfSet) { - std::vector extensions = MakeUniqueExtensions(); - extensions.push_back(RtpHeaderExtension("foo", 1)); + std::vector extensions = MakeUniqueExtensions(); + extensions.push_back(RtpExtension("foo", 1)); EXPECT_FALSE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, ValidateRtpExtensions_OverlappingIds_EndOfSet) { - std::vector extensions = MakeUniqueExtensions(); - extensions.push_back(RtpHeaderExtension("foo", 14)); + std::vector extensions = MakeUniqueExtensions(); + extensions.push_back(RtpExtension("foo", 14)); EXPECT_FALSE(ValidateRtpExtensions(extensions)); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_EmptyList) { - std::vector extensions; + std::vector extensions; std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions1, true); EXPECT_EQ(0, filtered.size()); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_IncludeOnlySupported) { - std::vector extensions = MakeUniqueExtensions(); + std::vector extensions = MakeUniqueExtensions(); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions1, false); EXPECT_EQ(2, filtered.size()); - EXPECT_EQ("c", filtered[0].name); - EXPECT_EQ("i", filtered[1].name); + EXPECT_EQ("c", filtered[0].uri); + EXPECT_EQ("i", filtered[1].uri); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_SortedByName_1) { - std::vector extensions = MakeUniqueExtensions(); + std::vector extensions = MakeUniqueExtensions(); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, false); EXPECT_EQ(12, filtered.size()); @@ -117,7 +119,7 @@ TEST(WebRtcMediaEngineTest, FilterRtpExtensions_SortedByName_1) { } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_SortedByName_2) { - std::vector extensions = MakeUniqueExtensions(); + std::vector extensions = MakeUniqueExtensions(); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, true); EXPECT_EQ(12, filtered.size()); @@ -125,64 +127,56 @@ TEST(WebRtcMediaEngineTest, FilterRtpExtensions_SortedByName_2) { } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_DontRemoveRedundant) { - std::vector extensions = MakeRedundantExtensions(); + std::vector extensions = MakeRedundantExtensions(); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, false); EXPECT_EQ(12, filtered.size()); EXPECT_TRUE(IsSorted(filtered)); - EXPECT_EQ(filtered[0].name, filtered[1].name); + EXPECT_EQ(filtered[0].uri, filtered[1].uri); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundant) { - std::vector extensions = MakeRedundantExtensions(); + std::vector extensions = MakeRedundantExtensions(); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, true); EXPECT_EQ(6, filtered.size()); EXPECT_TRUE(IsSorted(filtered)); - EXPECT_NE(filtered[0].name, filtered[1].name); + EXPECT_NE(filtered[0].uri, filtered[1].uri); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBwe_1) { - std::vector extensions; + std::vector extensions; extensions.push_back( - RtpHeaderExtension(kRtpTransportSequenceNumberHeaderExtension, 3)); + RtpExtension(RtpExtension::kTransportSequenceNumberUri, 3)); + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 9)); + extensions.push_back(RtpExtension(RtpExtension::kAbsSendTimeUri, 6)); extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 9)); - extensions.push_back( - RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, 6)); - extensions.push_back( - RtpHeaderExtension(kRtpTransportSequenceNumberHeaderExtension, 1)); - extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 14)); + RtpExtension(RtpExtension::kTransportSequenceNumberUri, 1)); + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 14)); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, true); EXPECT_EQ(1, filtered.size()); - EXPECT_EQ(kRtpTransportSequenceNumberHeaderExtension, filtered[0].name); + EXPECT_EQ(RtpExtension::kTransportSequenceNumberUri, filtered[0].uri); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBwe_2) { - std::vector extensions; - extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 1)); - extensions.push_back( - RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, 14)); - extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 7)); + std::vector extensions; + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 1)); + extensions.push_back(RtpExtension(RtpExtension::kAbsSendTimeUri, 14)); + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 7)); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, true); EXPECT_EQ(1, filtered.size()); - EXPECT_EQ(kRtpAbsoluteSenderTimeHeaderExtension, filtered[0].name); + EXPECT_EQ(RtpExtension::kAbsSendTimeUri, filtered[0].uri); } TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBwe_3) { - std::vector extensions; - extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 2)); - extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 14)); + std::vector extensions; + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 2)); + extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 14)); std::vector filtered = FilterRtpExtensions(extensions, SupportedExtensions2, true); EXPECT_EQ(1, filtered.size()); - EXPECT_EQ(kRtpTimestampOffsetHeaderExtension, filtered[0].name); + EXPECT_EQ(RtpExtension::kTimestampOffsetUri, filtered[0].uri); } } // namespace cricket diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc index d81c849234..2ea11b9fc0 100644 --- a/webrtc/media/engine/webrtcvideoengine2.cc +++ b/webrtc/media/engine/webrtcvideoengine2.cc @@ -254,9 +254,9 @@ static bool ValidateStreamParams(const StreamParams& sp) { inline bool ContainsHeaderExtension( const std::vector& extensions, - const std::string& name) { + const std::string& uri) { for (const auto& kv : extensions) { - if (kv.name == name) { + if (kv.uri == uri) { return true; } } @@ -551,18 +551,18 @@ const std::vector& WebRtcVideoEngine2::codecs() const { RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const { RtpCapabilities capabilities; capabilities.header_extensions.push_back( - RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, - kRtpTimestampOffsetHeaderExtensionDefaultId)); + webrtc::RtpExtension(webrtc::RtpExtension::kTimestampOffsetUri, + webrtc::RtpExtension::kTimestampOffsetDefaultId)); capabilities.header_extensions.push_back( - RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, - kRtpAbsoluteSenderTimeHeaderExtensionDefaultId)); + webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri, + webrtc::RtpExtension::kAbsSendTimeDefaultId)); capabilities.header_extensions.push_back( - RtpHeaderExtension(kRtpVideoRotationHeaderExtension, - kRtpVideoRotationHeaderExtensionDefaultId)); + webrtc::RtpExtension(webrtc::RtpExtension::kVideoRotationUri, + webrtc::RtpExtension::kVideoRotationDefaultId)); if (webrtc::field_trial::FindFullName("WebRTC-SendSideBwe") == "Enabled") { - capabilities.header_extensions.push_back(RtpHeaderExtension( - kRtpTransportSequenceNumberHeaderExtension, - kRtpTransportSequenceNumberHeaderExtensionDefaultId)); + capabilities.header_extensions.push_back(webrtc::RtpExtension( + webrtc::RtpExtension::kTransportSequenceNumberUri, + webrtc::RtpExtension::kTransportSequenceNumberDefaultId)); } return capabilities; } @@ -1570,7 +1570,7 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::WebRtcVideoSendStream( enable_cpu_overuse_detection ? this : nullptr; sink_wants_.rotation_applied = !ContainsHeaderExtension( - rtp_extensions, kRtpVideoRotationHeaderExtension); + rtp_extensions, webrtc::RtpExtension::kVideoRotationUri); if (codec_settings) { SetCodec(*codec_settings); @@ -1854,7 +1854,7 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::SetSendParameters( // that might cause a lock order inversion. if (params.rtp_header_extensions) { sink_wants_.rotation_applied = !ContainsHeaderExtension( - *params.rtp_header_extensions, kRtpVideoRotationHeaderExtension); + *params.rtp_header_extensions, webrtc::RtpExtension::kVideoRotationUri); if (source_) { source_->AddOrUpdateSink(this, sink_wants_); } diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc index 22e3f99acb..177ab9f223 100644 --- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc +++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc @@ -27,6 +27,8 @@ #include "webrtc/test/field_trial.h" #include "webrtc/video_encoder.h" +using webrtc::RtpExtension; + namespace { static const int kDefaultQpMax = 56; static const int kDefaultFramerate = 30; @@ -182,9 +184,9 @@ TEST_F(WebRtcVideoEngine2Test, DefaultRtxCodecHasAssociatedPayloadTypeSet) { TEST_F(WebRtcVideoEngine2Test, SupportsTimestampOffsetHeaderExtension) { RtpCapabilities capabilities = engine_.GetCapabilities(); ASSERT_FALSE(capabilities.header_extensions.empty()); - for (const RtpHeaderExtension& extension : capabilities.header_extensions) { - if (extension.uri == kRtpTimestampOffsetHeaderExtension) { - EXPECT_EQ(kRtpTimestampOffsetHeaderExtensionDefaultId, extension.id); + for (const RtpExtension& extension : capabilities.header_extensions) { + if (extension.uri == RtpExtension::kTimestampOffsetUri) { + EXPECT_EQ(RtpExtension::kTimestampOffsetDefaultId, extension.id); return; } } @@ -194,9 +196,9 @@ TEST_F(WebRtcVideoEngine2Test, SupportsTimestampOffsetHeaderExtension) { TEST_F(WebRtcVideoEngine2Test, SupportsAbsoluteSenderTimeHeaderExtension) { RtpCapabilities capabilities = engine_.GetCapabilities(); ASSERT_FALSE(capabilities.header_extensions.empty()); - for (const RtpHeaderExtension& extension : capabilities.header_extensions) { - if (extension.uri == kRtpAbsoluteSenderTimeHeaderExtension) { - EXPECT_EQ(kRtpAbsoluteSenderTimeHeaderExtensionDefaultId, extension.id); + for (const RtpExtension& extension : capabilities.header_extensions) { + if (extension.uri == RtpExtension::kAbsSendTimeUri) { + EXPECT_EQ(RtpExtension::kAbsSendTimeDefaultId, extension.id); return; } } @@ -213,10 +215,9 @@ TEST_F(WebRtcVideoEngine2WithSendSideBweTest, SupportsTransportSequenceNumberHeaderExtension) { RtpCapabilities capabilities = engine_.GetCapabilities(); ASSERT_FALSE(capabilities.header_extensions.empty()); - for (const RtpHeaderExtension& extension : capabilities.header_extensions) { - if (extension.uri == kRtpTransportSequenceNumberHeaderExtension) { - EXPECT_EQ(kRtpTransportSequenceNumberHeaderExtensionDefaultId, - extension.id); + for (const RtpExtension& extension : capabilities.header_extensions) { + if (extension.uri == RtpExtension::kTransportSequenceNumberUri) { + EXPECT_EQ(RtpExtension::kTransportSequenceNumberDefaultId, extension.id); return; } } @@ -226,9 +227,9 @@ TEST_F(WebRtcVideoEngine2WithSendSideBweTest, TEST_F(WebRtcVideoEngine2Test, SupportsVideoRotationHeaderExtension) { RtpCapabilities capabilities = engine_.GetCapabilities(); ASSERT_FALSE(capabilities.header_extensions.empty()); - for (const RtpHeaderExtension& extension : capabilities.header_extensions) { - if (extension.uri == kRtpVideoRotationHeaderExtension) { - EXPECT_EQ(kRtpVideoRotationHeaderExtensionDefaultId, extension.id); + for (const RtpExtension& extension : capabilities.header_extensions) { + if (extension.uri == RtpExtension::kVideoRotationUri) { + EXPECT_EQ(RtpExtension::kVideoRotationDefaultId, extension.id); return; } } @@ -252,7 +253,7 @@ TEST_F(WebRtcVideoEngine2Test, CVOSetHeaderExtensionBeforeCapturer) { // Add CVO extension. const int id = 1; parameters.extensions.push_back( - cricket::RtpHeaderExtension(kRtpVideoRotationHeaderExtension, id)); + RtpExtension(RtpExtension::kVideoRotationUri, id)); EXPECT_TRUE(channel->SetSendParameters(parameters)); // Set capturer. @@ -282,7 +283,7 @@ TEST_F(WebRtcVideoEngine2Test, CVOSetHeaderExtensionBeforeAddSendStream) { // Add CVO extension. const int id = 1; parameters.extensions.push_back( - cricket::RtpHeaderExtension(kRtpVideoRotationHeaderExtension, id)); + RtpExtension(RtpExtension::kVideoRotationUri, id)); EXPECT_TRUE(channel->SetSendParameters(parameters)); EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(kSsrc))); @@ -316,7 +317,7 @@ TEST_F(WebRtcVideoEngine2Test, CVOSetHeaderExtensionAfterCapturer) { // Add CVO extension. const int id = 1; parameters.extensions.push_back( - cricket::RtpHeaderExtension(kRtpVideoRotationHeaderExtension, id)); + RtpExtension(RtpExtension::kVideoRotationUri, id)); // Also remove the first codec to trigger a codec change as well. parameters.codecs.erase(parameters.codecs.begin()); EXPECT_TRUE(channel->SetSendParameters(parameters)); @@ -967,13 +968,11 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { fake_call_->GetConfig().bitrate_config.max_bitrate_bps); } - void TestSetSendRtpHeaderExtensions(const std::string& cricket_ext, - const std::string& webrtc_ext) { + void TestSetSendRtpHeaderExtensions(const std::string& ext_uri) { // Enable extension. const int id = 1; cricket::VideoSendParameters parameters = send_parameters_; - parameters.extensions.push_back( - cricket::RtpHeaderExtension(cricket_ext, id)); + parameters.extensions.push_back(RtpExtension(ext_uri, id)); EXPECT_TRUE(channel_->SetSendParameters(parameters)); FakeVideoSendStream* send_stream = AddSendStream(cricket::StreamParams::CreateLegacy(123)); @@ -981,7 +980,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { // Verify the send extension id. ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id); - EXPECT_EQ(webrtc_ext, send_stream->GetConfig().rtp.extensions[0].name); + EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri); // Verify call with same set of extensions returns true. EXPECT_TRUE(channel_->SetSendParameters(parameters)); // Verify that SetSendRtpHeaderExtensions doesn't implicitly add them for @@ -1002,16 +1001,14 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { send_stream = fake_call_->GetVideoSendStreams()[0]; ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id); - EXPECT_EQ(webrtc_ext, send_stream->GetConfig().rtp.extensions[0].name); + EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri); } - void TestSetRecvRtpHeaderExtensions(const std::string& cricket_ext, - const std::string& webrtc_ext) { + void TestSetRecvRtpHeaderExtensions(const std::string& ext_uri) { // Enable extension. const int id = 1; cricket::VideoRecvParameters parameters = recv_parameters_; - parameters.extensions.push_back( - cricket::RtpHeaderExtension(cricket_ext, id)); + parameters.extensions.push_back(RtpExtension(ext_uri, id)); EXPECT_TRUE(channel_->SetRecvParameters(parameters)); FakeVideoReceiveStream* recv_stream = @@ -1020,7 +1017,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { // Verify the recv extension id. ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size()); EXPECT_EQ(id, recv_stream->GetConfig().rtp.extensions[0].id); - EXPECT_EQ(webrtc_ext, recv_stream->GetConfig().rtp.extensions[0].name); + EXPECT_EQ(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri); // Verify call with same set of extensions returns true. EXPECT_TRUE(channel_->SetRecvParameters(parameters)); @@ -1042,7 +1039,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { recv_stream = fake_call_->GetVideoReceiveStreams()[0]; ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size()); EXPECT_EQ(id, recv_stream->GetConfig().rtp.extensions[0].id); - EXPECT_EQ(webrtc_ext, recv_stream->GetConfig().rtp.extensions[0].name); + EXPECT_EQ(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri); } void TestExtensionFilter(const std::vector& extensions, @@ -1053,8 +1050,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { for (const std::string& extension : extensions) { if (extension == expected_extension) expected_id = id; - parameters.extensions.push_back( - cricket::RtpHeaderExtension(extension, id++)); + parameters.extensions.push_back(RtpExtension(extension, id++)); } EXPECT_TRUE(channel_->SetSendParameters(parameters)); FakeVideoSendStream* send_stream = @@ -1065,7 +1061,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); EXPECT_EQ(expected_id, send_stream->GetConfig().rtp.extensions[0].id); EXPECT_EQ(expected_extension, - send_stream->GetConfig().rtp.extensions[0].name); + send_stream->GetConfig().rtp.extensions[0].uri); } void TestCpuAdaptation(bool enable_overuse, bool is_screenshare); @@ -1220,39 +1216,37 @@ TEST_F(WebRtcVideoChannel2Test, NoHeaderExtesionsByDefault) { // Test support for RTP timestamp offset header extension. TEST_F(WebRtcVideoChannel2Test, SendRtpTimestampOffsetHeaderExtensions) { - TestSetSendRtpHeaderExtensions(kRtpTimestampOffsetHeaderExtension, - webrtc::RtpExtension::kTOffset); + TestSetSendRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri); } + TEST_F(WebRtcVideoChannel2Test, RecvRtpTimestampOffsetHeaderExtensions) { - TestSetRecvRtpHeaderExtensions(kRtpTimestampOffsetHeaderExtension, - webrtc::RtpExtension::kTOffset); + TestSetRecvRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri); } // Test support for absolute send time header extension. TEST_F(WebRtcVideoChannel2Test, SendAbsoluteSendTimeHeaderExtensions) { - TestSetSendRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension, - webrtc::RtpExtension::kAbsSendTime); + TestSetSendRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri); } + TEST_F(WebRtcVideoChannel2Test, RecvAbsoluteSendTimeHeaderExtensions) { - TestSetRecvRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension, - webrtc::RtpExtension::kAbsSendTime); + TestSetRecvRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri); } TEST_F(WebRtcVideoChannel2Test, FiltersExtensionsPicksTransportSeqNum) { // Enable three redundant extensions. std::vector extensions; - extensions.push_back(kRtpAbsoluteSenderTimeHeaderExtension); - extensions.push_back(kRtpTimestampOffsetHeaderExtension); - extensions.push_back(kRtpTransportSequenceNumberHeaderExtension); - TestExtensionFilter(extensions, kRtpTransportSequenceNumberHeaderExtension); + extensions.push_back(RtpExtension::kAbsSendTimeUri); + extensions.push_back(RtpExtension::kTimestampOffsetUri); + extensions.push_back(RtpExtension::kTransportSequenceNumberUri); + TestExtensionFilter(extensions, RtpExtension::kTransportSequenceNumberUri); } TEST_F(WebRtcVideoChannel2Test, FiltersExtensionsPicksAbsSendTime) { // Enable two redundant extensions. std::vector extensions; - extensions.push_back(kRtpAbsoluteSenderTimeHeaderExtension); - extensions.push_back(kRtpTimestampOffsetHeaderExtension); - TestExtensionFilter(extensions, kRtpAbsoluteSenderTimeHeaderExtension); + extensions.push_back(RtpExtension::kAbsSendTimeUri); + extensions.push_back(RtpExtension::kTimestampOffsetUri); + TestExtensionFilter(extensions, RtpExtension::kAbsSendTimeUri); } class WebRtcVideoChannel2WithSendSideBweTest : public WebRtcVideoChannel2Test { @@ -1264,34 +1258,28 @@ class WebRtcVideoChannel2WithSendSideBweTest : public WebRtcVideoChannel2Test { // Test support for transport sequence number header extension. TEST_F(WebRtcVideoChannel2WithSendSideBweTest, SendTransportSequenceNumberHeaderExtensions) { - TestSetSendRtpHeaderExtensions( - kRtpTransportSequenceNumberHeaderExtension, - webrtc::RtpExtension::kTransportSequenceNumber); + TestSetSendRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri); } TEST_F(WebRtcVideoChannel2WithSendSideBweTest, RecvTransportSequenceNumberHeaderExtensions) { - TestSetRecvRtpHeaderExtensions( - kRtpTransportSequenceNumberHeaderExtension, - webrtc::RtpExtension::kTransportSequenceNumber); + TestSetRecvRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri); } // Test support for video rotation header extension. TEST_F(WebRtcVideoChannel2Test, SendVideoRotationHeaderExtensions) { - TestSetSendRtpHeaderExtensions(kRtpVideoRotationHeaderExtension, - webrtc::RtpExtension::kVideoRotation); + TestSetSendRtpHeaderExtensions(RtpExtension::kVideoRotationUri); } TEST_F(WebRtcVideoChannel2Test, RecvVideoRotationHeaderExtensions) { - TestSetRecvRtpHeaderExtensions(kRtpVideoRotationHeaderExtension, - webrtc::RtpExtension::kVideoRotation); + TestSetRecvRtpHeaderExtensions(RtpExtension::kVideoRotationUri); } TEST_F(WebRtcVideoChannel2Test, IdenticalSendExtensionsDoesntRecreateStream) { const int kAbsSendTimeId = 1; const int kVideoRotationId = 2; - send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - kRtpAbsoluteSenderTimeHeaderExtension, kAbsSendTimeId)); - send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - kRtpVideoRotationHeaderExtension, kVideoRotationId)); + send_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); + send_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId)); EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); FakeVideoSendStream* send_stream = @@ -1319,12 +1307,12 @@ TEST_F(WebRtcVideoChannel2Test, IdenticalRecvExtensionsDoesntRecreateStream) { const int kTOffsetId = 1; const int kAbsSendTimeId = 2; const int kVideoRotationId = 3; - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - kRtpAbsoluteSenderTimeHeaderExtension, kAbsSendTimeId)); - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - kRtpTimestampOffsetHeaderExtension, kTOffsetId)); - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - kRtpVideoRotationHeaderExtension, kVideoRotationId)); + recv_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); + recv_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); + recv_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId)); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); FakeVideoReceiveStream* recv_stream = @@ -1354,9 +1342,9 @@ TEST_F(WebRtcVideoChannel2Test, const int kTOffsetId = 2; send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(kUnsupportedExtensionName, kUnsupportedId)); + RtpExtension(kUnsupportedExtensionName, kUnsupportedId)); send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, kTOffsetId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); FakeVideoSendStream* send_stream = AddSendStream(cricket::StreamParams::CreateLegacy(123)); @@ -1364,8 +1352,8 @@ TEST_F(WebRtcVideoChannel2Test, // Only timestamp offset extension is set to send stream, // unsupported rtp extension is ignored. ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); - EXPECT_STREQ(webrtc::RtpExtension::kTOffset, - send_stream->GetConfig().rtp.extensions[0].name.c_str()); + EXPECT_STREQ(RtpExtension::kTimestampOffsetUri, + send_stream->GetConfig().rtp.extensions[0].uri.c_str()); } TEST_F(WebRtcVideoChannel2Test, @@ -1374,9 +1362,9 @@ TEST_F(WebRtcVideoChannel2Test, const int kTOffsetId = 2; recv_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(kUnsupportedExtensionName, kUnsupportedId)); + RtpExtension(kUnsupportedExtensionName, kUnsupportedId)); recv_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, kTOffsetId)); + RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); FakeVideoReceiveStream* recv_stream = AddRecvStream(cricket::StreamParams::CreateLegacy(123)); @@ -1384,15 +1372,15 @@ TEST_F(WebRtcVideoChannel2Test, // Only timestamp offset extension is set to receive stream, // unsupported rtp extension is ignored. ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size()); - EXPECT_STREQ(webrtc::RtpExtension::kTOffset, - recv_stream->GetConfig().rtp.extensions[0].name.c_str()); + EXPECT_STREQ(RtpExtension::kTimestampOffsetUri, + recv_stream->GetConfig().rtp.extensions[0].uri.c_str()); } TEST_F(WebRtcVideoChannel2Test, SetSendRtpHeaderExtensionsRejectsIncorrectIds) { const int kIncorrectIds[] = {-2, -1, 0, 15, 16}; for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) { - send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - webrtc::RtpExtension::kTOffset, kIncorrectIds[i])); + send_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i])); EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)) << "Bad extension id '" << kIncorrectIds[i] << "' accepted."; } @@ -1401,8 +1389,8 @@ TEST_F(WebRtcVideoChannel2Test, SetSendRtpHeaderExtensionsRejectsIncorrectIds) { TEST_F(WebRtcVideoChannel2Test, SetRecvRtpHeaderExtensionsRejectsIncorrectIds) { const int kIncorrectIds[] = {-2, -1, 0, 15, 16}; for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) { - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - webrtc::RtpExtension::kTOffset, kIncorrectIds[i])); + recv_parameters_.extensions.push_back( + RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i])); EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)) << "Bad extension id '" << kIncorrectIds[i] << "' accepted."; } @@ -1411,15 +1399,15 @@ TEST_F(WebRtcVideoChannel2Test, SetRecvRtpHeaderExtensionsRejectsIncorrectIds) { TEST_F(WebRtcVideoChannel2Test, SetSendRtpHeaderExtensionsRejectsDuplicateIds) { const int id = 1; send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, id)); + RtpExtension(RtpExtension::kTimestampOffsetUri, id)); send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, id)); + RtpExtension(RtpExtension::kAbsSendTimeUri, id)); EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)); // Duplicate entries are also not supported. send_parameters_.extensions.clear(); send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, id)); + RtpExtension(RtpExtension::kTimestampOffsetUri, id)); send_parameters_.extensions.push_back(send_parameters_.extensions.back()); EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)); } @@ -1427,15 +1415,15 @@ TEST_F(WebRtcVideoChannel2Test, SetSendRtpHeaderExtensionsRejectsDuplicateIds) { TEST_F(WebRtcVideoChannel2Test, SetRecvRtpHeaderExtensionsRejectsDuplicateIds) { const int id = 1; recv_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, id)); + RtpExtension(RtpExtension::kTimestampOffsetUri, id)); recv_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, id)); + RtpExtension(RtpExtension::kAbsSendTimeUri, id)); EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)); // Duplicate entries are also not supported. recv_parameters_.extensions.clear(); recv_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(webrtc::RtpExtension::kTOffset, id)); + RtpExtension(RtpExtension::kTimestampOffsetUri, id)); recv_parameters_.extensions.push_back(recv_parameters_.extensions.back()); EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)); } diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc index 09a072a5f3..95b08e7158 100644 --- a/webrtc/media/engine/webrtcvoiceengine.cc +++ b/webrtc/media/engine/webrtcvoiceengine.cc @@ -951,16 +951,17 @@ const std::vector& WebRtcVoiceEngine::codecs() { RtpCapabilities WebRtcVoiceEngine::GetCapabilities() const { RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); RtpCapabilities capabilities; - capabilities.header_extensions.push_back(RtpHeaderExtension( - kRtpAudioLevelHeaderExtension, kRtpAudioLevelHeaderExtensionDefaultId)); capabilities.header_extensions.push_back( - RtpHeaderExtension(kRtpAbsoluteSenderTimeHeaderExtension, - kRtpAbsoluteSenderTimeHeaderExtensionDefaultId)); + webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, + webrtc::RtpExtension::kAudioLevelDefaultId)); + capabilities.header_extensions.push_back( + webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri, + webrtc::RtpExtension::kAbsSendTimeDefaultId)); if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") == "Enabled") { - capabilities.header_extensions.push_back(RtpHeaderExtension( - kRtpTransportSequenceNumberHeaderExtension, - kRtpTransportSequenceNumberHeaderExtensionDefaultId)); + capabilities.header_extensions.push_back(webrtc::RtpExtension( + webrtc::RtpExtension::kTransportSequenceNumberUri, + webrtc::RtpExtension::kTransportSequenceNumberDefaultId)); } return capabilities; } diff --git a/webrtc/media/engine/webrtcvoiceengine_unittest.cc b/webrtc/media/engine/webrtcvoiceengine_unittest.cc index 4446e27c16..337f1d581f 100644 --- a/webrtc/media/engine/webrtcvoiceengine_unittest.cc +++ b/webrtc/media/engine/webrtcvoiceengine_unittest.cc @@ -26,8 +26,6 @@ #include "webrtc/media/engine/webrtcvoiceengine.h" #include "webrtc/modules/audio_device/include/mock_audio_device.h" -using cricket::kRtpAudioLevelHeaderExtension; -using cricket::kRtpAbsoluteSenderTimeHeaderExtension; using testing::Return; using testing::StrictMock; @@ -289,8 +287,8 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); // Ensure unknown extensions won't cause an error. - send_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - "urn:ietf:params:unknownextention", 1)); + send_parameters_.extensions.push_back( + webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); EXPECT_EQ(0u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); @@ -301,10 +299,10 @@ class WebRtcVoiceEngineTestFake : public testing::Test { // Ensure extension is set properly. const int id = 1; - send_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id)); + send_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); EXPECT_EQ(1u, GetSendStreamConfig(kSsrc1).rtp.extensions.size()); - EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].name); + EXPECT_EQ(ext, GetSendStreamConfig(kSsrc1).rtp.extensions[0].uri); EXPECT_EQ(id, GetSendStreamConfig(kSsrc1).rtp.extensions[0].id); // Ensure extension is set properly on new stream. @@ -313,7 +311,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_NE(call_.GetAudioSendStream(kSsrc1), call_.GetAudioSendStream(kSsrc2)); EXPECT_EQ(1u, GetSendStreamConfig(kSsrc2).rtp.extensions.size()); - EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].name); + EXPECT_EQ(ext, GetSendStreamConfig(kSsrc2).rtp.extensions[0].uri); EXPECT_EQ(id, GetSendStreamConfig(kSsrc2).rtp.extensions[0].id); // Ensure all extensions go back off with an empty list. @@ -331,8 +329,8 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); // Ensure unknown extensions won't cause an error. - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension( - "urn:ietf:params:unknownextention", 1)); + recv_parameters_.extensions.push_back( + webrtc::RtpExtension("urn:ietf:params:unknownextention", 1)); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); EXPECT_EQ(0u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); @@ -343,10 +341,10 @@ class WebRtcVoiceEngineTestFake : public testing::Test { // Ensure extension is set properly. const int id = 2; - recv_parameters_.extensions.push_back(cricket::RtpHeaderExtension(ext, id)); + recv_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id)); EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc1).rtp.extensions.size()); - EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].name); + EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].uri); EXPECT_EQ(id, GetRecvStreamConfig(kSsrc1).rtp.extensions[0].id); // Ensure extension is set properly on new stream. @@ -355,7 +353,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { EXPECT_NE(call_.GetAudioReceiveStream(kSsrc1), call_.GetAudioReceiveStream(kSsrc2)); EXPECT_EQ(1u, GetRecvStreamConfig(kSsrc2).rtp.extensions.size()); - EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].name); + EXPECT_EQ(ext, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].uri); EXPECT_EQ(id, GetRecvStreamConfig(kSsrc2).rtp.extensions[0].id); // Ensure all extensions go back off with an empty list. @@ -2253,10 +2251,9 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweTest, SupportsTransportSequenceNumberHeaderExtension) { cricket::RtpCapabilities capabilities = engine_->GetCapabilities(); ASSERT_FALSE(capabilities.header_extensions.empty()); - for (const cricket::RtpHeaderExtension& extension : - capabilities.header_extensions) { - if (extension.uri == cricket::kRtpTransportSequenceNumberHeaderExtension) { - EXPECT_EQ(cricket::kRtpTransportSequenceNumberHeaderExtensionDefaultId, + for (const webrtc::RtpExtension& extension : capabilities.header_extensions) { + if (extension.uri == webrtc::RtpExtension::kTransportSequenceNumberUri) { + EXPECT_EQ(webrtc::RtpExtension::kTransportSequenceNumberDefaultId, extension.id); return; } @@ -2266,18 +2263,18 @@ TEST_F(WebRtcVoiceEngineWithSendSideBweTest, // Test support for audio level header extension. TEST_F(WebRtcVoiceEngineTestFake, SendAudioLevelHeaderExtensions) { - TestSetSendRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); + TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); } TEST_F(WebRtcVoiceEngineTestFake, RecvAudioLevelHeaderExtensions) { - TestSetRecvRtpHeaderExtensions(kRtpAudioLevelHeaderExtension); + TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAudioLevelUri); } // Test support for absolute send time header extension. TEST_F(WebRtcVoiceEngineTestFake, SendAbsoluteSendTimeHeaderExtensions) { - TestSetSendRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); + TestSetSendRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); } TEST_F(WebRtcVoiceEngineTestFake, RecvAbsoluteSendTimeHeaderExtensions) { - TestSetRecvRtpHeaderExtensions(kRtpAbsoluteSenderTimeHeaderExtension); + TestSetRecvRtpHeaderExtensions(webrtc::RtpExtension::kAbsSendTimeUri); } // Test that we can create a channel and start sending on it. @@ -2315,7 +2312,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SendStateWhenStreamsAreRecreated) { // Changing RTP header extensions will recreate the AudioSendStream. send_parameters_.extensions.push_back( - cricket::RtpHeaderExtension(kRtpAudioLevelHeaderExtension, 12)); + webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12)); EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); EXPECT_TRUE(GetSendStream(kSsrc1).IsSending()); @@ -3383,7 +3380,7 @@ TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { for (const auto& e_ext : capabilities.header_extensions) { for (const auto& s_ext : s_exts) { if (e_ext.id == s_ext.id) { - EXPECT_EQ(e_ext.uri, s_ext.name); + EXPECT_EQ(e_ext.uri, s_ext.uri); } } } diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc index 214472f81a..2a9220d9f0 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc @@ -29,15 +29,15 @@ namespace webrtc { RTPExtensionType StringToRtpExtensionType(const std::string& extension) { - if (extension == RtpExtension::kTOffset) + if (extension == RtpExtension::kTimestampOffsetUri) return kRtpExtensionTransmissionTimeOffset; - if (extension == RtpExtension::kAudioLevel) + if (extension == RtpExtension::kAudioLevelUri) return kRtpExtensionAudioLevel; - if (extension == RtpExtension::kAbsSendTime) + if (extension == RtpExtension::kAbsSendTimeUri) return kRtpExtensionAbsoluteSendTime; - if (extension == RtpExtension::kVideoRotation) + if (extension == RtpExtension::kVideoRotationUri) return kRtpExtensionVideoRotation; - if (extension == RtpExtension::kTransportSequenceNumber) + if (extension == RtpExtension::kTransportSequenceNumberUri) return kRtpExtensionTransportSequenceNumber; RTC_NOTREACHED() << "Looking up unsupported RTP extension."; return kRtpExtensionNone; diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc index 97c1d66910..cac0ea2ea8 100644 --- a/webrtc/pc/channel.cc +++ b/webrtc/pc/channel.cc @@ -43,6 +43,20 @@ struct SendPacketMessageData : public rtc::MessageData { rtc::PacketOptions options; }; +#if defined(ENABLE_EXTERNAL_AUTH) +// Returns the named header extension if found among all extensions, +// nullptr otherwise. +const webrtc::RtpExtension* FindHeaderExtension( + const std::vector& extensions, + const std::string& uri) { + for (const auto& extension : extensions) { + if (extension.uri == uri) + return &extension; + } + return nullptr; +} +#endif + } // namespace enum { @@ -1390,13 +1404,13 @@ bool BaseChannel::UpdateRemoteStreams_w( } void BaseChannel::MaybeCacheRtpAbsSendTimeHeaderExtension_w( - const std::vector& extensions) { + const std::vector& extensions) { // Absolute Send Time extension id is used only with external auth, // so do not bother searching for it and making asyncronious call to set // something that is not used. #if defined(ENABLE_EXTERNAL_AUTH) - const RtpHeaderExtension* send_time_extension = - FindHeaderExtension(extensions, kRtpAbsoluteSenderTimeHeaderExtension); + const webrtc::RtpExtension* send_time_extension = + FindHeaderExtension(extensions, webrtc::RtpExtension::kAbsSendTimeUri); int rtp_abs_sendtime_extn_id = send_time_extension ? send_time_extension->id : -1; invoker_.AsyncInvoke( diff --git a/webrtc/pc/channel.h b/webrtc/pc/channel.h index d9f5fd6d27..3305d0e6fb 100644 --- a/webrtc/pc/channel.h +++ b/webrtc/pc/channel.h @@ -282,7 +282,7 @@ class BaseChannel // Helper method to get RTP Absoulute SendTime extension header id if // present in remote supported extensions list. void MaybeCacheRtpAbsSendTimeHeaderExtension_w( - const std::vector& extensions); + const std::vector& extensions); bool CheckSrtpConfig_n(const std::vector& cryptos, bool* dtls, diff --git a/webrtc/pc/mediasession.cc b/webrtc/pc/mediasession.cc index 0fa20d8bd5..358f92d684 100644 --- a/webrtc/pc/mediasession.cc +++ b/webrtc/pc/mediasession.cc @@ -374,11 +374,10 @@ class UsedPayloadTypes : public UsedIds { // Helper class used for finding duplicate RTP Header extension ids among // audio and video extensions. -class UsedRtpHeaderExtensionIds : public UsedIds { +class UsedRtpHeaderExtensionIds : public UsedIds { public: UsedRtpHeaderExtensionIds() - : UsedIds(kLocalIdMin, kLocalIdMax) { - } + : UsedIds(kLocalIdMin, kLocalIdMax) {} private: // Min and Max local identifier for one-byte header extensions, per RFC5285. @@ -890,10 +889,9 @@ static void FindCodecsToOffer( } } - static bool FindByUri(const RtpHeaderExtensions& extensions, - const RtpHeaderExtension& ext_to_match, - RtpHeaderExtension* found_extension) { + const webrtc::RtpExtension& ext_to_match, + webrtc::RtpExtension* found_extension) { for (RtpHeaderExtensions::const_iterator it = extensions.begin(); it != extensions.end(); ++it) { // We assume that all URIs are given in a canonical format. @@ -915,7 +913,7 @@ static void FindAndSetRtpHdrExtUsed(RtpHeaderExtensions* offered_extensions, RtpHeaderExtensions* all_extensions, UsedRtpHeaderExtensionIds* used_ids) { for (auto& extension : *offered_extensions) { - RtpHeaderExtension existing; + webrtc::RtpExtension existing; if (FindByUri(*all_extensions, extension, &existing)) { extension.id = existing.id; } else { @@ -934,7 +932,7 @@ static void FindRtpHdrExtsToOffer( UsedRtpHeaderExtensionIds* used_ids) { for (auto reference_extension : reference_extensions) { if (!FindByUri(*offered_extensions, reference_extension, NULL)) { - RtpHeaderExtension existing; + webrtc::RtpExtension existing; if (FindByUri(*all_extensions, reference_extension, &existing)) { offered_extensions->push_back(existing); } else { @@ -953,7 +951,7 @@ static void NegotiateRtpHeaderExtensions( RtpHeaderExtensions::const_iterator ours; for (ours = local_extensions.begin(); ours != local_extensions.end(); ++ours) { - RtpHeaderExtension theirs; + webrtc::RtpExtension theirs; if (FindByUri(offered_extensions, *ours, &theirs)) { // We respond with their RTP header extension id. negotiated_extenstions->push_back(theirs); diff --git a/webrtc/pc/mediasession.h b/webrtc/pc/mediasession.h index 22291c42a6..0a04bcf93f 100644 --- a/webrtc/pc/mediasession.h +++ b/webrtc/pc/mediasession.h @@ -35,7 +35,7 @@ typedef std::vector AudioCodecs; typedef std::vector VideoCodecs; typedef std::vector DataCodecs; typedef std::vector CryptoParamsVec; -typedef std::vector RtpHeaderExtensions; +typedef std::vector RtpHeaderExtensions; enum MediaType { MEDIA_TYPE_AUDIO, @@ -205,7 +205,7 @@ class MediaContentDescription : public ContentDescription { rtp_header_extensions_ = extensions; rtp_header_extensions_set_ = true; } - void AddRtpHeaderExtension(const RtpHeaderExtension& ext) { + void AddRtpHeaderExtension(const webrtc::RtpExtension& ext) { rtp_header_extensions_.push_back(ext); rtp_header_extensions_set_ = true; } @@ -284,7 +284,7 @@ class MediaContentDescription : public ContentDescription { std::string protocol_; std::vector cryptos_; CryptoType crypto_required_ = CT_NONE; - std::vector rtp_header_extensions_; + std::vector rtp_header_extensions_; bool rtp_header_extensions_set_ = false; bool multistream_ = false; StreamParamsVec streams_; diff --git a/webrtc/pc/mediasession_unittest.cc b/webrtc/pc/mediasession_unittest.cc index b14bd801cb..753db83184 100644 --- a/webrtc/pc/mediasession_unittest.cc +++ b/webrtc/pc/mediasession_unittest.cc @@ -67,12 +67,12 @@ using cricket::NS_JINGLE_RTP; using cricket::MEDIA_TYPE_AUDIO; using cricket::MEDIA_TYPE_VIDEO; using cricket::MEDIA_TYPE_DATA; -using cricket::RtpHeaderExtension; using cricket::SEC_DISABLED; using cricket::SEC_ENABLED; using cricket::SEC_REQUIRED; using rtc::CS_AES_CM_128_HMAC_SHA1_32; using rtc::CS_AES_CM_128_HMAC_SHA1_80; +using webrtc::RtpExtension; static const AudioCodec kAudioCodecs1[] = { AudioCodec(103, "ISAC", 16000, -1, 1), @@ -113,44 +113,44 @@ static const DataCodec kDataCodecs2[] = {DataCodec(126, "binary-data"), static const DataCodec kDataCodecsAnswer[] = {DataCodec(98, "binary-data"), DataCodec(99, "utf8-text")}; -static const RtpHeaderExtension kAudioRtpExtension1[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 8), - RtpHeaderExtension("http://google.com/testing/audio_something", 10), +static const RtpExtension kAudioRtpExtension1[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 8), + RtpExtension("http://google.com/testing/audio_something", 10), }; -static const RtpHeaderExtension kAudioRtpExtension2[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 2), - RtpHeaderExtension("http://google.com/testing/audio_something_else", 8), - RtpHeaderExtension("http://google.com/testing/both_audio_and_video", 7), +static const RtpExtension kAudioRtpExtension2[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 2), + RtpExtension("http://google.com/testing/audio_something_else", 8), + RtpExtension("http://google.com/testing/both_audio_and_video", 7), }; -static const RtpHeaderExtension kAudioRtpExtension3[] = { - RtpHeaderExtension("http://google.com/testing/audio_something", 2), - RtpHeaderExtension("http://google.com/testing/both_audio_and_video", 3), +static const RtpExtension kAudioRtpExtension3[] = { + RtpExtension("http://google.com/testing/audio_something", 2), + RtpExtension("http://google.com/testing/both_audio_and_video", 3), }; -static const RtpHeaderExtension kAudioRtpExtensionAnswer[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 8), +static const RtpExtension kAudioRtpExtensionAnswer[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:ssrc-audio-level", 8), }; -static const RtpHeaderExtension kVideoRtpExtension1[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:toffset", 14), - RtpHeaderExtension("http://google.com/testing/video_something", 13), +static const RtpExtension kVideoRtpExtension1[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:toffset", 14), + RtpExtension("http://google.com/testing/video_something", 13), }; -static const RtpHeaderExtension kVideoRtpExtension2[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:toffset", 2), - RtpHeaderExtension("http://google.com/testing/video_something_else", 14), - RtpHeaderExtension("http://google.com/testing/both_audio_and_video", 7), +static const RtpExtension kVideoRtpExtension2[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:toffset", 2), + RtpExtension("http://google.com/testing/video_something_else", 14), + RtpExtension("http://google.com/testing/both_audio_and_video", 7), }; -static const RtpHeaderExtension kVideoRtpExtension3[] = { - RtpHeaderExtension("http://google.com/testing/video_something", 4), - RtpHeaderExtension("http://google.com/testing/both_audio_and_video", 5), +static const RtpExtension kVideoRtpExtension3[] = { + RtpExtension("http://google.com/testing/video_something", 4), + RtpExtension("http://google.com/testing/both_audio_and_video", 5), }; -static const RtpHeaderExtension kVideoRtpExtensionAnswer[] = { - RtpHeaderExtension("urn:ietf:params:rtp-hdrext:toffset", 14), +static const RtpExtension kVideoRtpExtensionAnswer[] = { + RtpExtension("urn:ietf:params:rtp-hdrext:toffset", 14), }; static const uint32_t kSimulcastParamsSsrc[] = {10, 11, 20, 21, 30, 31}; @@ -1904,18 +1904,16 @@ TEST_F(MediaSessionDescriptionFactoryTest, // |f2_| offer. // Since the default local extension id |f2_| uses has already been used by // |f1_| for another extensions, it is changed to 13. - const RtpHeaderExtension kUpdatedAudioRtpExtensions[] = { - kAudioRtpExtensionAnswer[0], - RtpHeaderExtension(kAudioRtpExtension2[1].uri, 13), - kAudioRtpExtension2[2], + const RtpExtension kUpdatedAudioRtpExtensions[] = { + kAudioRtpExtensionAnswer[0], RtpExtension(kAudioRtpExtension2[1].uri, 13), + kAudioRtpExtension2[2], }; // Since the default local extension id |f2_| uses has already been used by // |f1_| for another extensions, is is changed to 12. - const RtpHeaderExtension kUpdatedVideoRtpExtensions[] = { - kVideoRtpExtensionAnswer[0], - RtpHeaderExtension(kVideoRtpExtension2[1].uri, 12), - kVideoRtpExtension2[2], + const RtpExtension kUpdatedVideoRtpExtensions[] = { + kVideoRtpExtensionAnswer[0], RtpExtension(kVideoRtpExtension2[1].uri, 12), + kVideoRtpExtension2[2], }; const AudioContentDescription* updated_acd = @@ -1932,8 +1930,7 @@ TEST_F(MediaSessionDescriptionFactoryTest, // Verify that if the same RTP extension URI is used for audio and video, the // same ID is used. Also verify that the ID isn't changed when creating an // updated offer (this was previously a bug). -TEST_F(MediaSessionDescriptionFactoryTest, - RtpHeaderExtensionIdReused) { +TEST_F(MediaSessionDescriptionFactoryTest, RtpExtensionIdReused) { MediaSessionOptions opts; opts.recv_audio = true; opts.recv_video = true; @@ -1945,9 +1942,8 @@ TEST_F(MediaSessionDescriptionFactoryTest, // Since the audio extensions used ID 3 for "both_audio_and_video", so should // the video extensions. - const RtpHeaderExtension kExpectedVideoRtpExtension[] = { - kVideoRtpExtension3[0], - kAudioRtpExtension3[1], + const RtpExtension kExpectedVideoRtpExtension[] = { + kVideoRtpExtension3[0], kAudioRtpExtension3[1], }; EXPECT_EQ(MAKE_VECTOR(kAudioRtpExtension3), diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc index 768c007c3c..8da747a830 100644 --- a/webrtc/test/call_test.cc +++ b/webrtc/test/call_test.cc @@ -184,12 +184,12 @@ void CallTest::CreateSendConfig(size_t num_video_streams, video_send_config_.encoder_settings.payload_type = kFakeVideoSendPayloadType; video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId)); + RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId)); video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams); for (size_t i = 0; i < num_video_streams; ++i) video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]); video_send_config_.rtp.extensions.push_back(RtpExtension( - RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId)); + RtpExtension::kVideoRotationUri, kVideoRotationRtpExtensionId)); } if (num_audio_streams > 0) { diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc index 607d654c92..f785199bcc 100644 --- a/webrtc/video/end_to_end_tests.cc +++ b/webrtc/video/end_to_end_tests.cc @@ -1432,8 +1432,8 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { VideoEncoderConfig* encoder_config, test::FrameGeneratorCapturer** frame_generator) override { send_config->rtp.extensions.clear(); - send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + send_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTransportSequenceNumberUri, kExtensionId)); // Force some padding to be sent. const int kPaddingBitrateBps = 50000; @@ -1459,8 +1459,8 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { VideoReceiveStream::Config* receive_config) override { receive_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; receive_config->rtp.extensions.clear(); - receive_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + receive_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTransportSequenceNumberUri, kExtensionId)); } test::DirectTransport* CreateSendTransport(Call* sender_call) override { @@ -1539,7 +1539,7 @@ class TransportFeedbackTester : public test::EndToEndTest { VideoEncoderConfig* encoder_config) override { send_config->rtp.extensions.clear(); send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + RtpExtension(RtpExtension::kTransportSequenceNumberUri, kExtensionId)); (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions; (*receive_configs)[0].rtp.transport_cc = feedback_enabled_; } @@ -1549,7 +1549,7 @@ class TransportFeedbackTester : public test::EndToEndTest { std::vector* receive_configs) override { send_config->rtp.extensions.clear(); send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + RtpExtension(RtpExtension::kTransportSequenceNumberUri, kExtensionId)); (*receive_configs)[0].rtp.extensions.clear(); (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions; (*receive_configs)[0].rtp.transport_cc = feedback_enabled_; @@ -1787,7 +1787,7 @@ TEST_F(EndToEndTest, RembWithSendSideBwe) { ASSERT_EQ(1u, send_config->rtp.ssrcs.size()); send_config->rtp.extensions.clear(); send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, + RtpExtension(RtpExtension::kTransportSequenceNumberUri, test::kTransportSequenceNumberExtensionId)); sender_ssrc_ = send_config->rtp.ssrcs[0]; @@ -3452,8 +3452,8 @@ TEST_F(EndToEndTest, TransportSeqNumOnAudioAndVideo) { std::vector* receive_configs, VideoEncoderConfig* encoder_config) override { send_config->rtp.extensions.clear(); - send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + send_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTransportSequenceNumberUri, kExtensionId)); (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions; } @@ -3461,8 +3461,8 @@ TEST_F(EndToEndTest, TransportSeqNumOnAudioAndVideo) { AudioSendStream::Config* send_config, std::vector* receive_configs) override { send_config->rtp.extensions.clear(); - send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + send_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTransportSequenceNumberUri, kExtensionId)); (*receive_configs)[0].rtp.extensions.clear(); (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions; } diff --git a/webrtc/video/replay.cc b/webrtc/video/replay.cc index 1dfc610f71..d9a1c1a72d 100644 --- a/webrtc/video/replay.cc +++ b/webrtc/video/replay.cc @@ -222,12 +222,12 @@ void RtpReplay() { receive_config.rtp.fec.red_payload_type = flags::RedPayloadType(); receive_config.rtp.nack.rtp_history_ms = 1000; if (flags::TransmissionOffsetId() != -1) { - receive_config.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, flags::TransmissionOffsetId())); + receive_config.rtp.extensions.push_back(RtpExtension( + RtpExtension::kTimestampOffsetUri, flags::TransmissionOffsetId())); } if (flags::AbsSendTimeId() != -1) { receive_config.rtp.extensions.push_back( - RtpExtension(RtpExtension::kAbsSendTime, flags::AbsSendTimeId())); + RtpExtension(RtpExtension::kAbsSendTimeUri, flags::AbsSendTimeId())); } receive_config.renderer = &file_passthrough; diff --git a/webrtc/video/rtp_stream_receiver.cc b/webrtc/video/rtp_stream_receiver.cc index 98b46831c5..188cf740f1 100644 --- a/webrtc/video/rtp_stream_receiver.cc +++ b/webrtc/video/rtp_stream_receiver.cc @@ -127,7 +127,7 @@ RtpStreamReceiver::RtpStreamReceiver( } for (size_t i = 0; i < config.rtp.extensions.size(); ++i) { - EnableReceiveRtpHeaderExtension(config.rtp.extensions[i].name, + EnableReceiveRtpHeaderExtension(config.rtp.extensions[i].uri, config.rtp.extensions[i].id); } diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc index 87ed26938c..94a446efc3 100644 --- a/webrtc/video/video_quality_test.cc +++ b/webrtc/video/video_quality_test.cc @@ -884,11 +884,11 @@ void VideoQualityTest::SetupCommon(Transport* send_transport, video_send_config_.rtp.extensions.clear(); if (params_.common.send_side_bwe) { video_send_config_.rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, + RtpExtension(RtpExtension::kTransportSequenceNumberUri, test::kTransportSequenceNumberExtensionId)); } else { video_send_config_.rtp.extensions.push_back(RtpExtension( - RtpExtension::kAbsSendTime, test::kAbsSendTimeExtensionId)); + RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); } video_encoder_config_.min_transmit_bitrate_bps = diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc index 1753db5d48..cee820a7da 100644 --- a/webrtc/video/video_receive_stream.cc +++ b/webrtc/video/video_receive_stream.cc @@ -35,7 +35,7 @@ static bool UseSendSideBwe(const VideoReceiveStream::Config& config) { if (!config.rtp.transport_cc) return false; for (const auto& extension : config.rtp.extensions) { - if (extension.name == RtpExtension::kTransportSequenceNumber) + if (extension.uri == RtpExtension::kTransportSequenceNumberUri) return true; } return false; diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc index e42b9234fa..afd9909dc0 100644 --- a/webrtc/video/video_send_stream.cc +++ b/webrtc/video/video_send_stream.cc @@ -425,7 +425,7 @@ VideoSendStream::VideoSendStream( video_sender_->RegisterProtectionCallback(this); for (size_t i = 0; i < config_.rtp.extensions.size(); ++i) { - const std::string& extension = config_.rtp.extensions[i].name; + const std::string& extension = config_.rtp.extensions[i].uri; int id = config_.rtp.extensions[i].id; // One-byte-extension local identifiers are in the range 1-14 inclusive. RTC_DCHECK_GE(id, 1); diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc index 095ff4ece3..9c43da2700 100644 --- a/webrtc/video/video_send_stream_tests.cc +++ b/webrtc/video/video_send_stream_tests.cc @@ -147,7 +147,7 @@ TEST_F(VideoSendStreamTest, SupportsAbsoluteSendTime) { VideoEncoderConfig* encoder_config) override { send_config->rtp.extensions.clear(); send_config->rtp.extensions.push_back(RtpExtension( - RtpExtension::kAbsSendTime, test::kAbsSendTimeExtensionId)); + RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); } void PerformTest() override { @@ -189,8 +189,8 @@ TEST_F(VideoSendStreamTest, SupportsTransmissionTimeOffset) { VideoEncoderConfig* encoder_config) override { send_config->encoder_settings.encoder = &encoder_; send_config->rtp.extensions.clear(); - send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTOffset, test::kTOffsetExtensionId)); + send_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTimestampOffsetUri, test::kTOffsetExtensionId)); } void PerformTest() override { @@ -233,8 +233,8 @@ TEST_F(VideoSendStreamTest, SupportsTransportWideSequenceNumbers) { VideoEncoderConfig* encoder_config) override { send_config->encoder_settings.encoder = &encoder_; send_config->rtp.extensions.clear(); - send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, kExtensionId)); + send_config->rtp.extensions.push_back(RtpExtension( + RtpExtension::kTransportSequenceNumberUri, kExtensionId)); } void PerformTest() override { @@ -422,9 +422,9 @@ class FecObserver : public test::EndToEndTest { VideoSendStreamTest::kUlpfecPayloadType; if (header_extensions_enabled_) { send_config->rtp.extensions.push_back(RtpExtension( - RtpExtension::kAbsSendTime, test::kAbsSendTimeExtensionId)); + RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId)); send_config->rtp.extensions.push_back( - RtpExtension(RtpExtension::kTransportSequenceNumber, + RtpExtension(RtpExtension::kTransportSequenceNumberUri, test::kTransportSequenceNumberExtensionId)); } (*receive_configs)[0].rtp.fec.red_payload_type =