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 =