Remove rtp header extension from config of Call audio and video receivers
These configurations are no longer used by call. Header extensions are identified once when demuxing packets in WebrtcVideoEngine::OnPacketReceived and WebrtcVoiceEngine::OnPacketReceived.
Change-Id: I49de9005f0aa9ab32f2c5d3abcdd8bd12343022d
Bug: webrtc:7135
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291480
Owners-Override: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39236}
diff --git a/audio/audio_receive_stream.cc b/audio/audio_receive_stream.cc
index 0bb1168..7430681 100644
--- a/audio/audio_receive_stream.cc
+++ b/audio/audio_receive_stream.cc
@@ -39,14 +39,6 @@
ss << "{remote_ssrc: " << remote_ssrc;
ss << ", local_ssrc: " << local_ssrc;
ss << ", nack: " << nack.ToString();
- ss << ", extensions: [";
- for (size_t i = 0; i < extensions.size(); ++i) {
- ss << extensions[i].ToString();
- if (i != extensions.size() - 1) {
- ss << ", ";
- }
- }
- ss << ']';
ss << '}';
return ss.str();
}
@@ -254,18 +246,6 @@
channel_receive_->SetFrameDecryptor(std::move(frame_decryptor));
}
-void AudioReceiveStreamImpl::SetRtpExtensions(
- std::vector<RtpExtension> extensions) {
- // TODO(bugs.webrtc.org/11993): This is called via WebRtcAudioReceiveStream,
- // expect to be called on the network thread.
- RTC_DCHECK_RUN_ON(&worker_thread_checker_);
- config_.rtp.extensions = std::move(extensions);
-}
-
-RtpHeaderExtensionMap AudioReceiveStreamImpl::GetRtpExtensionMap() const {
- return RtpHeaderExtensionMap(config_.rtp.extensions);
-}
-
webrtc::AudioReceiveStreamInterface::Stats AudioReceiveStreamImpl::GetStats(
bool get_and_clear_legacy_stats) const {
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
diff --git a/audio/audio_receive_stream.h b/audio/audio_receive_stream.h
index 51514fb..b0df0a7 100644
--- a/audio/audio_receive_stream.h
+++ b/audio/audio_receive_stream.h
@@ -94,8 +94,6 @@
void SetNonSenderRttMeasurement(bool enabled) override;
void SetFrameDecryptor(rtc::scoped_refptr<webrtc::FrameDecryptorInterface>
frame_decryptor) override;
- void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
- RtpHeaderExtensionMap GetRtpExtensionMap() const override;
webrtc::AudioReceiveStreamInterface::Stats GetStats(
bool get_and_clear_legacy_stats) const override;
diff --git a/audio/audio_receive_stream_unittest.cc b/audio/audio_receive_stream_unittest.cc
index 2cee6a4..e10e4c3 100644
--- a/audio/audio_receive_stream_unittest.cc
+++ b/audio/audio_receive_stream_unittest.cc
@@ -54,8 +54,6 @@
const uint32_t kRemoteSsrc = 1234;
const uint32_t kLocalSsrc = 5678;
-const int kAudioLevelId = 3;
-const int kTransportSequenceNumberId = 4;
const int kJitterBufferDelay = -7;
const int kPlayoutBufferDelay = 302;
const unsigned int kSpeechOutputLevel = 99;
@@ -138,10 +136,6 @@
stream_config_.rtp.local_ssrc = kLocalSsrc;
stream_config_.rtp.remote_ssrc = kRemoteSsrc;
stream_config_.rtp.nack.rtp_history_ms = 300;
- stream_config_.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
- stream_config_.rtp.extensions.push_back(RtpExtension(
- RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId));
stream_config_.rtcp_send_transport = &rtcp_send_transport_;
stream_config_.decoder_factory =
rtc::make_ref_counted<MockAudioDecoderFactory>();
@@ -213,12 +207,9 @@
AudioReceiveStreamInterface::Config config;
config.rtp.remote_ssrc = kRemoteSsrc;
config.rtp.local_ssrc = kLocalSsrc;
- config.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
EXPECT_EQ(
"{rtp: {remote_ssrc: 1234, local_ssrc: 5678, nack: "
- "{rtp_history_ms: 0}, extensions: [{uri: "
- "urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 3}]}, "
+ "{rtp_history_ms: 0}}, "
"rtcp_send_transport: null}",
config.ToString());
}
@@ -381,13 +372,6 @@
auto new_config = helper.config();
- new_config.rtp.extensions.clear();
- new_config.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId + 1));
- new_config.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kTransportSequenceNumberUri,
- kTransportSequenceNumberId + 1));
-
MockChannelReceive& channel_receive = *helper.channel_receive();
// TODO(tommi, nisse): This applies new extensions to the internal config,
diff --git a/call/bitrate_estimator_tests.cc b/call/bitrate_estimator_tests.cc
index 6dedc59..58605b9 100644
--- a/call/bitrate_estimator_tests.cc
+++ b/call/bitrate_estimator_tests.cc
@@ -139,10 +139,6 @@
// receive_config_.decoders will be set by every stream separately.
receive_config_.rtp.remote_ssrc = GetVideoSendConfig()->rtp.ssrcs[0];
receive_config_.rtp.local_ssrc = kReceiverLocalVideoSsrc;
- receive_config_.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId));
- receive_config_.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId));
});
}
diff --git a/call/call.cc b/call/call.cc
index a849cd5..ccfed35 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -91,7 +91,6 @@
rtclog_config->local_ssrc = config.rtp.local_ssrc;
rtclog_config->rtx_ssrc = config.rtp.rtx_ssrc;
rtclog_config->rtcp_mode = config.rtp.rtcp_mode;
- rtclog_config->rtp_extensions = config.rtp.extensions;
for (const auto& d : config.decoders) {
const int* search =
@@ -124,7 +123,6 @@
auto rtclog_config = std::make_unique<rtclog::StreamConfig>();
rtclog_config->remote_ssrc = config.rtp.remote_ssrc;
rtclog_config->local_ssrc = config.rtp.local_ssrc;
- rtclog_config->rtp_extensions = config.rtp.extensions;
return rtclog_config;
}
diff --git a/call/flexfec_receive_stream_impl.cc b/call/flexfec_receive_stream_impl.cc
index 23cfec4..cbfbe55 100644
--- a/call/flexfec_receive_stream_impl.cc
+++ b/call/flexfec_receive_stream_impl.cc
@@ -42,13 +42,7 @@
ss << protected_media_ssrcs[i] << ", ";
if (!protected_media_ssrcs.empty())
ss << protected_media_ssrcs[i];
- ss << ", rtp.extensions: [";
- i = 0;
- for (; i + 1 < rtp.extensions.size(); ++i)
- ss << rtp.extensions[i].ToString() << ", ";
- if (!rtp.extensions.empty())
- ss << rtp.extensions[i].ToString();
- ss << "]}";
+ ss << "}";
return ss.str();
}
@@ -130,8 +124,7 @@
Config config,
RecoveredPacketReceiver* recovered_packet_receiver,
RtcpRttStats* rtt_stats)
- : extension_map_(std::move(config.rtp.extensions)),
- remote_ssrc_(config.rtp.remote_ssrc),
+ : remote_ssrc_(config.rtp.remote_ssrc),
payload_type_(config.payload_type),
receiver_(
MaybeCreateFlexfecReceiver(clock, config, recovered_packet_receiver)),
@@ -198,17 +191,6 @@
return payload_type_;
}
-void FlexfecReceiveStreamImpl::SetRtpExtensions(
- std::vector<RtpExtension> extensions) {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- extension_map_.Reset(extensions);
-}
-
-RtpHeaderExtensionMap FlexfecReceiveStreamImpl::GetRtpExtensionMap() const {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- return extension_map_;
-}
-
void FlexfecReceiveStreamImpl::SetLocalSsrc(uint32_t local_ssrc) {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
if (local_ssrc == rtp_rtcp_->local_media_ssrc())
diff --git a/call/flexfec_receive_stream_impl.h b/call/flexfec_receive_stream_impl.h
index 60cc9fe..73cdff8 100644
--- a/call/flexfec_receive_stream_impl.h
+++ b/call/flexfec_receive_stream_impl.h
@@ -59,10 +59,6 @@
void SetPayloadType(int payload_type) override;
int payload_type() const override;
- // ReceiveStreamInterface impl.
- void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
- RtpHeaderExtensionMap GetRtpExtensionMap() const override;
-
// Updates the `rtp_video_stream_receiver_`'s `local_ssrc` when the default
// sender has been created, changed or removed.
void SetLocalSsrc(uint32_t local_ssrc);
@@ -77,8 +73,6 @@
private:
RTC_NO_UNIQUE_ADDRESS SequenceChecker packet_sequence_checker_;
- RtpHeaderExtensionMap extension_map_;
-
const uint32_t remote_ssrc_;
// `payload_type_` is initially set to -1, indicating that FlexFec is
diff --git a/call/flexfec_receive_stream_unittest.cc b/call/flexfec_receive_stream_unittest.cc
index 0c16521..cd96138 100644
--- a/call/flexfec_receive_stream_unittest.cc
+++ b/call/flexfec_receive_stream_unittest.cc
@@ -68,7 +68,6 @@
config.rtp.local_ssrc = 18374743;
config.rtcp_mode = RtcpMode::kCompound;
- config.rtp.extensions.emplace_back(TransportSequenceNumber::Uri(), 7);
EXPECT_FALSE(config.IsCompleteAndEnabled());
config.payload_type = 123;
diff --git a/call/receive_stream.h b/call/receive_stream.h
index eb954ab..8a99059 100644
--- a/call/receive_stream.h
+++ b/call/receive_stream.h
@@ -18,7 +18,6 @@
#include "api/media_types.h"
#include "api/scoped_refptr.h"
#include "api/transport/rtp/rtp_source.h"
-#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
namespace webrtc {
@@ -39,18 +38,8 @@
// This value may change mid-stream and must be done on the same thread
// that the value is read on (i.e. packet delivery).
uint32_t local_ssrc = 0;
-
- // RTP header extensions used for the received stream.
- // This value may change mid-stream and must be done on the same thread
- // that the value is read on (i.e. packet delivery).
- std::vector<RtpExtension> extensions;
};
- // Set/change the rtp header extensions. Must be called on the packet
- // delivery thread.
- virtual void SetRtpExtensions(std::vector<RtpExtension> extensions) = 0;
- virtual RtpHeaderExtensionMap GetRtpExtensionMap() const = 0;
-
protected:
virtual ~ReceiveStreamInterface() {}
};
diff --git a/call/video_receive_stream.cc b/call/video_receive_stream.cc
index 87df97c..3125c39 100644
--- a/call/video_receive_stream.cc
+++ b/call/video_receive_stream.cc
@@ -146,13 +146,6 @@
ss << pt << ", ";
}
ss << '}';
- ss << ", extensions: [";
- for (size_t i = 0; i < extensions.size(); ++i) {
- ss << extensions[i].ToString();
- if (i != extensions.size() - 1)
- ss << ", ";
- }
- ss << ']';
ss << '}';
return ss.str();
}
diff --git a/media/engine/fake_webrtc_call.cc b/media/engine/fake_webrtc_call.cc
index 6408e4e..f3f6803 100644
--- a/media/engine/fake_webrtc_call.cc
+++ b/media/engine/fake_webrtc_call.cc
@@ -130,16 +130,6 @@
config_.frame_decryptor = std::move(frame_decryptor);
}
-void FakeAudioReceiveStream::SetRtpExtensions(
- std::vector<webrtc::RtpExtension> extensions) {
- config_.rtp.extensions = std::move(extensions);
-}
-
-webrtc::RtpHeaderExtensionMap FakeAudioReceiveStream::GetRtpExtensionMap()
- const {
- return webrtc::RtpHeaderExtensionMap(config_.rtp.extensions);
-}
-
webrtc::AudioReceiveStreamInterface::Stats FakeAudioReceiveStream::GetStats(
bool get_and_clear_legacy_stats) const {
return stats_;
@@ -421,16 +411,6 @@
return stats_;
}
-void FakeVideoReceiveStream::SetRtpExtensions(
- std::vector<webrtc::RtpExtension> extensions) {
- config_.rtp.extensions = std::move(extensions);
-}
-
-webrtc::RtpHeaderExtensionMap FakeVideoReceiveStream::GetRtpExtensionMap()
- const {
- return webrtc::RtpHeaderExtensionMap(config_.rtp.extensions);
-}
-
void FakeVideoReceiveStream::Start() {
receiving_ = true;
}
@@ -448,16 +428,6 @@
const webrtc::FlexfecReceiveStream::Config config)
: config_(std::move(config)) {}
-void FakeFlexfecReceiveStream::SetRtpExtensions(
- std::vector<webrtc::RtpExtension> extensions) {
- config_.rtp.extensions = std::move(extensions);
-}
-
-webrtc::RtpHeaderExtensionMap FakeFlexfecReceiveStream::GetRtpExtensionMap()
- const {
- return webrtc::RtpHeaderExtensionMap(config_.rtp.extensions);
-}
-
const webrtc::FlexfecReceiveStream::Config&
FakeFlexfecReceiveStream::GetConfig() const {
return config_;
diff --git a/media/engine/fake_webrtc_call.h b/media/engine/fake_webrtc_call.h
index 954bd16..fc1458d 100644
--- a/media/engine/fake_webrtc_call.h
+++ b/media/engine/fake_webrtc_call.h
@@ -126,8 +126,6 @@
void SetNonSenderRttMeasurement(bool enabled) override;
void SetFrameDecryptor(rtc::scoped_refptr<webrtc::FrameDecryptorInterface>
frame_decryptor) override;
- void SetRtpExtensions(std::vector<webrtc::RtpExtension> extensions) override;
- webrtc::RtpHeaderExtensionMap GetRtpExtensionMap() const override;
webrtc::AudioReceiveStreamInterface::Stats GetStats(
bool get_and_clear_legacy_stats) const override;
@@ -274,9 +272,6 @@
}
void GenerateKeyFrame() override {}
- // webrtc::VideoReceiveStreamInterface implementation.
- void SetRtpExtensions(std::vector<webrtc::RtpExtension> extensions) override;
- webrtc::RtpHeaderExtensionMap GetRtpExtensionMap() const override;
void SetRtcpMode(webrtc::RtcpMode mode) override {
config_.rtp.rtcp_mode = mode;
}
@@ -340,8 +335,6 @@
config_.rtp.local_ssrc = local_ssrc;
}
- void SetRtpExtensions(std::vector<webrtc::RtpExtension> extensions) override;
- webrtc::RtpHeaderExtensionMap GetRtpExtensionMap() const override;
void SetRtcpMode(webrtc::RtcpMode mode) override { config_.rtcp_mode = mode; }
int payload_type() const override { return config_.payload_type; }
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc
index f8f4ea6..e1329b8 100644
--- a/media/engine/webrtc_video_engine.cc
+++ b/media/engine/webrtc_video_engine.cc
@@ -1088,6 +1088,7 @@
return webrtc::RtpParameters();
}
rtp_params = it->second->GetRtpParameters();
+ rtp_params.header_extensions = recv_rtp_extensions_;
// Add codecs, which any stream is prepared to receive.
for (const VideoCodec& codec : recv_params_.codecs) {
@@ -1507,8 +1508,6 @@
}
sp.GetFidSsrc(ssrc, &config->rtp.rtx_ssrc);
- config->rtp.extensions = recv_rtp_extensions_;
-
// TODO(brandtr): Generalize when we add support for multistream protection.
flexfec_config->payload_type = recv_flexfec_payload_type_;
if (!IsDisabled(call_->trials(), "WebRTC-FlexFEC-03-Advertised") &&
@@ -1516,7 +1515,6 @@
flexfec_config->protected_media_ssrcs = {ssrc};
flexfec_config->rtp.local_ssrc = config->rtp.local_ssrc;
flexfec_config->rtcp_mode = config->rtp.rtcp_mode;
- flexfec_config->rtp.extensions = config->rtp.extensions;
}
}
@@ -2961,7 +2959,6 @@
rtp_parameters.encodings.back().ssrc = ssrc;
}
- rtp_parameters.header_extensions = config_.rtp.extensions;
rtp_parameters.rtcp.reduced_size =
config_.rtp.rtcp_mode == webrtc::RtcpMode::kReducedSize;
@@ -3110,20 +3107,6 @@
video_needs_recreation = ReconfigureCodecs(*params.codec_settings);
}
- if (params.rtp_header_extensions) {
- if (config_.rtp.extensions != *params.rtp_header_extensions) {
- config_.rtp.extensions = *params.rtp_header_extensions;
- stream_->SetRtpExtensions(config_.rtp.extensions);
- }
-
- if (flexfec_config_.rtp.extensions != *params.rtp_header_extensions) {
- flexfec_config_.rtp.extensions = *params.rtp_header_extensions;
- if (flexfec_stream_) {
- flexfec_stream_->SetRtpExtensions(flexfec_config_.rtp.extensions);
- }
- }
- }
-
if (params.flexfec_payload_type)
SetFlexFecPayload(*params.flexfec_payload_type);
diff --git a/media/engine/webrtc_video_engine.h b/media/engine/webrtc_video_engine.h
index ca49f17..7ce1655 100644
--- a/media/engine/webrtc_video_engine.h
+++ b/media/engine/webrtc_video_engine.h
@@ -458,7 +458,8 @@
std::vector<webrtc::RtpSource> GetSources();
- // Does not return codecs, they are filled by the owning WebRtcVideoChannel.
+ // Does not return codecs, nor header extensions, they are filled by the
+ // owning WebRtcVideoChannel.
webrtc::RtpParameters GetRtpParameters() const;
// TODO(deadbeef): Move these feedback parameters into the recv parameters.
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 713cfb0..938f1a6 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -2684,11 +2684,6 @@
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
- // receivers.
- EXPECT_TRUE(AddRecvStream(cricket::StreamParams::CreateLegacy(123))
- ->GetConfig()
- .rtp.extensions.empty());
// Verify that existing RTP header extensions can be removed.
EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
@@ -2712,13 +2707,10 @@
parameters.extensions.push_back(RtpExtension(ext_uri, id));
EXPECT_TRUE(channel_->SetRecvParameters(parameters));
- FakeVideoReceiveStream* recv_stream =
- AddRecvStream(cricket::StreamParams::CreateLegacy(123));
+ AddRecvStream(cricket::StreamParams::CreateLegacy(123));
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(123).header_extensions,
+ ElementsAre(RtpExtension(ext_uri, id)));
- // 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(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri);
// Verify call with same set of extensions returns true.
EXPECT_TRUE(channel_->SetRecvParameters(parameters));
@@ -2730,17 +2722,14 @@
// Verify that existing RTP header extensions can be removed.
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size());
- recv_stream = fake_call_->GetVideoReceiveStreams()[0];
- EXPECT_TRUE(recv_stream->GetConfig().rtp.extensions.empty());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(123).header_extensions,
+ IsEmpty());
// Verify that adding receive RTP header extensions adds them for existing
// streams.
EXPECT_TRUE(channel_->SetRecvParameters(parameters));
- 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(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri);
+ EXPECT_EQ(channel_->GetRtpReceiveParameters(123).header_extensions,
+ parameters.extensions);
}
void TestLossNotificationState(bool expect_lntf_enabled) {
@@ -2968,9 +2957,9 @@
AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0]));
ASSERT_TRUE(send_stream->GetConfig().rtp.extensions.empty());
- FakeVideoReceiveStream* recv_stream =
- AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0]));
- ASSERT_TRUE(recv_stream->GetConfig().rtp.extensions.empty());
+ AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0]));
+ ASSERT_TRUE(receive_channel_->GetRtpReceiveParameters(kSsrcs1[0])
+ .header_extensions.empty());
}
// Test support for RTP timestamp offset header extension.
@@ -3055,38 +3044,6 @@
EXPECT_EQ(2, fake_call_->GetNumCreatedSendStreams());
}
-TEST_F(WebRtcVideoChannelTest, IdenticalRecvExtensionsDoesntRecreateStream) {
- const int kTOffsetId = 1;
- const int kAbsSendTimeId = 2;
- const int kVideoRotationId = 3;
- 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 =
- AddRecvStream(cricket::StreamParams::CreateLegacy(123));
-
- EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams());
- ASSERT_EQ(3u, recv_stream->GetConfig().rtp.extensions.size());
-
- // Setting the same extensions (even if in different order) shouldn't
- // reallocate the stream.
- absl::c_reverse(recv_parameters_.extensions);
- EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
-
- EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams());
-
- // Setting different extensions should not require the stream to be recreated.
- recv_parameters_.extensions.resize(1);
- EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
-
- EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams());
-}
-
TEST_F(WebRtcVideoChannelTest,
SetSendRtpHeaderExtensionsExcludeUnsupportedExtensions) {
const int kUnsupportedId = 1;
@@ -3117,14 +3074,16 @@
recv_parameters_.extensions.push_back(
RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId));
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- FakeVideoReceiveStream* recv_stream =
- AddRecvStream(cricket::StreamParams::CreateLegacy(123));
+ AddRecvStream(cricket::StreamParams::CreateLegacy(123));
// 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(RtpExtension::kTimestampOffsetUri,
- recv_stream->GetConfig().rtp.extensions[0].uri.c_str());
+ ASSERT_THAT(receive_channel_->GetRtpReceiveParameters(123).header_extensions,
+ SizeIs(1));
+ EXPECT_STREQ(receive_channel_->GetRtpReceiveParameters(123)
+ .header_extensions[0]
+ .uri.c_str(),
+ RtpExtension::kTimestampOffsetUri);
}
TEST_F(WebRtcVideoChannelTest, SetSendRtpHeaderExtensionsRejectsIncorrectIds) {
@@ -4505,8 +4464,6 @@
EXPECT_EQ(video_stream_config.rtcp_send_transport,
flexfec_stream_config.rtcp_send_transport);
EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode);
- EXPECT_EQ(video_stream_config.rtp.extensions,
- flexfec_stream_config.rtp.extensions);
}
// We should not send FlexFEC, even if we advertise it, unless the right
diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc
index c8da7c4..e093c6f 100644
--- a/media/engine/webrtc_voice_engine.cc
+++ b/media/engine/webrtc_voice_engine.cc
@@ -271,7 +271,6 @@
if (!stream_ids.empty()) {
config.sync_group = stream_ids[0];
}
- config.rtp.extensions = extensions;
config.rtcp_send_transport = rtcp_send_transport;
config.enable_non_sender_rtt = enable_non_sender_rtt;
config.decoder_factory = decoder_factory;
@@ -1179,11 +1178,6 @@
stream_->SetNonSenderRttMeasurement(enabled);
}
- void SetRtpExtensions(const std::vector<webrtc::RtpExtension>& extensions) {
- RTC_DCHECK_RUN_ON(&worker_thread_checker_);
- stream_->SetRtpExtensions(extensions);
- }
-
// Set a new payload type -> decoder map.
void SetDecoderMap(const std::map<int, webrtc::SdpAudioFormat>& decoder_map) {
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
@@ -1355,9 +1349,6 @@
recv_rtp_extensions_.swap(filtered_extensions);
recv_rtp_extension_map_ =
webrtc::RtpHeaderExtensionMap(recv_rtp_extensions_);
- for (auto& it : recv_streams_) {
- it.second->SetRtpExtensions(recv_rtp_extensions_);
- }
}
return true;
}
diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc
index 795ffc0..70b2cf8d 100644
--- a/media/engine/webrtc_voice_engine_unittest.cc
+++ b/media/engine/webrtc_voice_engine_unittest.cc
@@ -45,10 +45,12 @@
using ::testing::ContainerEq;
using ::testing::Contains;
using ::testing::Field;
+using ::testing::IsEmpty;
using ::testing::Return;
using ::testing::ReturnPointee;
using ::testing::SaveArg;
using ::testing::StrictMock;
+using ::testing::UnorderedElementsAreArray;
namespace {
using webrtc::BitrateConstraints;
@@ -558,40 +560,41 @@
EXPECT_TRUE(SetupRecvStream());
// Ensure extensions are off by default.
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(kSsrcX).header_extensions,
+ IsEmpty());
// Ensure unknown extensions won't cause an error.
recv_parameters_.extensions.push_back(
webrtc::RtpExtension("urn:ietf:params:unknownextention", 1));
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(kSsrcX).header_extensions,
+ IsEmpty());
// Ensure extensions stay off with an empty list of headers.
recv_parameters_.extensions.clear();
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(kSsrcX).header_extensions,
+ IsEmpty());
// Ensure extension is set properly.
const int id = 2;
recv_parameters_.extensions.push_back(webrtc::RtpExtension(ext, id));
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- EXPECT_EQ(1u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size());
- EXPECT_EQ(ext, GetRecvStreamConfig(kSsrcX).rtp.extensions[0].uri);
- EXPECT_EQ(id, GetRecvStreamConfig(kSsrcX).rtp.extensions[0].id);
+ EXPECT_EQ(channel_->GetRtpReceiveParameters(kSsrcX).header_extensions,
+ recv_parameters_.extensions);
// Ensure extension is set properly on new stream.
EXPECT_TRUE(AddRecvStream(kSsrcY));
- EXPECT_NE(call_.GetAudioReceiveStream(kSsrcX),
- call_.GetAudioReceiveStream(kSsrcY));
- EXPECT_EQ(1u, GetRecvStreamConfig(kSsrcY).rtp.extensions.size());
- EXPECT_EQ(ext, GetRecvStreamConfig(kSsrcY).rtp.extensions[0].uri);
- EXPECT_EQ(id, GetRecvStreamConfig(kSsrcY).rtp.extensions[0].id);
+ EXPECT_EQ(channel_->GetRtpReceiveParameters(kSsrcY).header_extensions,
+ recv_parameters_.extensions);
// Ensure all extensions go back off with an empty list.
recv_parameters_.extensions.clear();
EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcX).rtp.extensions.size());
- EXPECT_EQ(0u, GetRecvStreamConfig(kSsrcY).rtp.extensions.size());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(kSsrcX).header_extensions,
+ IsEmpty());
+ EXPECT_THAT(channel_->GetRtpReceiveParameters(kSsrcY).header_extensions,
+ IsEmpty());
}
webrtc::AudioSendStream::Stats GetAudioSendStreamStats() const {
@@ -847,7 +850,6 @@
GetRecvStreamConfig(kSsrcX);
EXPECT_EQ(kSsrcX, config.rtp.remote_ssrc);
EXPECT_EQ(0xFA17FA17, config.rtp.local_ssrc);
- EXPECT_EQ(0u, config.rtp.extensions.size());
EXPECT_EQ(static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_),
config.rtcp_send_transport);
EXPECT_EQ("", config.sync_group);
@@ -3392,9 +3394,9 @@
EXPECT_EQ(2u, call_.GetAudioReceiveStreams().size());
for (uint32_t ssrc : ssrcs) {
- const auto* s = call_.GetAudioReceiveStream(ssrc);
- EXPECT_NE(nullptr, s);
- EXPECT_EQ(0u, s->GetConfig().rtp.extensions.size());
+ EXPECT_THAT(
+ receive_channel_->GetRtpReceiveParameters(ssrc).header_extensions,
+ IsEmpty());
}
// Set up receive extensions.
@@ -3405,25 +3407,17 @@
channel_->SetRecvParameters(recv_parameters);
EXPECT_EQ(2u, call_.GetAudioReceiveStreams().size());
for (uint32_t ssrc : ssrcs) {
- const auto* s = call_.GetAudioReceiveStream(ssrc);
- EXPECT_NE(nullptr, s);
- const auto& s_exts = s->GetConfig().rtp.extensions;
- EXPECT_EQ(header_extensions.size(), s_exts.size());
- for (const auto& e_ext : header_extensions) {
- for (const auto& s_ext : s_exts) {
- if (e_ext.id == s_ext.id) {
- EXPECT_EQ(e_ext.uri, s_ext.uri);
- }
- }
- }
+ EXPECT_THAT(
+ receive_channel_->GetRtpReceiveParameters(ssrc).header_extensions,
+ testing::UnorderedElementsAreArray(header_extensions));
}
// Disable receive extensions.
channel_->SetRecvParameters(cricket::AudioRecvParameters());
for (uint32_t ssrc : ssrcs) {
- const auto* s = call_.GetAudioReceiveStream(ssrc);
- EXPECT_NE(nullptr, s);
- EXPECT_EQ(0u, s->GetConfig().rtp.extensions.size());
+ EXPECT_THAT(
+ receive_channel_->GetRtpReceiveParameters(ssrc).header_extensions,
+ IsEmpty());
}
}
diff --git a/modules/rtp_rtcp/source/ulpfec_receiver.h b/modules/rtp_rtcp/source/ulpfec_receiver.h
index 3ad1c75..6afb422 100644
--- a/modules/rtp_rtcp/source/ulpfec_receiver.h
+++ b/modules/rtp_rtcp/source/ulpfec_receiver.h
@@ -54,8 +54,6 @@
FecPacketCounter GetPacketCounter() const;
- void SetRtpExtensions(rtc::ArrayView<const RtpExtension> extensions);
-
private:
const uint32_t ssrc_;
const int ulpfec_payload_type_;
diff --git a/test/call_config_utils.cc b/test/call_config_utils.cc
index da3d76c..d93c902 100644
--- a/test/call_config_utils.cc
+++ b/test/call_config_utils.cc
@@ -59,11 +59,6 @@
receive_config.rtp.rtx_associated_payload_types[std::stoi(members[0])] =
rtx_payload_type.asInt64();
}
- for (const auto& ext_json : json["rtp"]["extensions"]) {
- receive_config.rtp.extensions.emplace_back(ext_json["uri"].asString(),
- ext_json["id"].asInt64(),
- ext_json["encrypt"].asBool());
- }
return receive_config;
}
@@ -104,14 +99,6 @@
rtp_json["rtx_payload_types"].append(val);
}
- rtp_json["extensions"] = Json::Value(Json::arrayValue);
- for (auto& ext : config.rtp.extensions) {
- Json::Value ext_json;
- ext_json["uri"] = ext.uri;
- ext_json["id"] = ext.id;
- ext_json["encrypt"] = ext.encrypt;
- rtp_json["extensions"].append(ext_json);
- }
root_json["rtp"] = rtp_json;
root_json["render_delay_ms"] = config.render_delay_ms;
diff --git a/test/call_config_utils_unittest.cc b/test/call_config_utils_unittest.cc
index e010ab6..46ebf18 100644
--- a/test/call_config_utils_unittest.cc
+++ b/test/call_config_utils_unittest.cc
@@ -33,7 +33,6 @@
recv_config.rtp.red_payload_type = 50;
recv_config.rtp.rtx_ssrc = 1000;
recv_config.rtp.rtx_associated_payload_types[10] = 10;
- recv_config.rtp.extensions.emplace_back("uri", 128, true);
VideoReceiveStreamInterface::Config unmarshaled_config =
ParseVideoReceiveStreamJsonConfig(
@@ -57,7 +56,6 @@
EXPECT_EQ(recv_config.rtp.rtx_ssrc, unmarshaled_config.rtp.rtx_ssrc);
EXPECT_EQ(recv_config.rtp.rtx_associated_payload_types,
unmarshaled_config.rtp.rtx_associated_payload_types);
- EXPECT_EQ(recv_config.rtp.extensions, recv_config.rtp.extensions);
}
} // namespace test
diff --git a/test/call_test.cc b/test/call_test.cc
index 7eccf78..5fc7feb 100644
--- a/test/call_test.cc
+++ b/test/call_test.cc
@@ -374,8 +374,6 @@
RTC_DCHECK(!video_send_config.rtp.ssrcs.empty());
VideoReceiveStreamInterface::Config default_config(rtcp_send_transport);
default_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
- for (const RtpExtension& extension : video_send_config.rtp.extensions)
- default_config.rtp.extensions.push_back(extension);
default_config.rtp.nack.rtp_history_ms = rtp_history_ms;
// Enable RTT calculation so NTP time estimator will work.
default_config.rtp.rtcp_xr.receiver_reference_time_report =
@@ -418,8 +416,6 @@
RTC_DCHECK(num_flexfec_streams_ <= 1);
if (num_flexfec_streams_ == 1) {
CreateMatchingFecConfig(rtcp_send_transport, *GetVideoSendConfig());
- for (const RtpExtension& extension : GetVideoSendConfig()->rtp.extensions)
- GetFlexFecConfig()->rtp.extensions.push_back(extension);
}
}
@@ -438,7 +434,6 @@
audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc;
audio_config.rtcp_send_transport = transport;
audio_config.rtp.remote_ssrc = send_config.rtp.ssrc;
- audio_config.rtp.extensions = send_config.rtp.extensions;
audio_config.decoder_factory = audio_decoder_factory;
audio_config.decoder_map = {{kAudioSendPayloadType, {"opus", 48000, 2}}};
audio_config.sync_group = sync_group;
diff --git a/test/scenario/audio_stream.cc b/test/scenario/audio_stream.cc
index 5f2eff1..e134e4b 100644
--- a/test/scenario/audio_stream.cc
+++ b/test/scenario/audio_stream.cc
@@ -188,7 +188,6 @@
recv_config.rtcp_send_transport = feedback_transport;
recv_config.rtp.remote_ssrc = send_stream->ssrc_;
receiver->ssrc_media_types_[recv_config.rtp.remote_ssrc] = MediaType::AUDIO;
- recv_config.rtp.extensions = GetAudioRtpExtensions(config);
recv_config.decoder_factory = decoder_factory;
recv_config.decoder_map = {
{CallTest::kAudioSendPayloadType, {"opus", 48000, 2}}};
diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc
index 8d627d8..3879ec8 100644
--- a/test/scenario/video_stream.cc
+++ b/test/scenario/video_stream.cc
@@ -312,7 +312,6 @@
uint32_t rtx_ssrc) {
VideoReceiveStreamInterface::Config recv(feedback_transport);
recv.rtp.local_ssrc = local_ssrc;
- recv.rtp.extensions = GetVideoRtpExtensions(config);
RTC_DCHECK(!config.stream.use_rtx ||
config.stream.nack_history_time > TimeDelta::Zero());
diff --git a/video/end_to_end_tests/config_tests.cc b/video/end_to_end_tests/config_tests.cc
index 7e27448..28a1ae1 100644
--- a/video/end_to_end_tests/config_tests.cc
+++ b/video/end_to_end_tests/config_tests.cc
@@ -85,8 +85,6 @@
<< "Enabling RTX requires ssrc-group: FID negotiation";
EXPECT_TRUE(default_receive_config.rtp.rtx_associated_payload_types.empty())
<< "Enabling RTX requires rtpmap: rtx negotiation.";
- EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
- << "Enabling RTP extensions require negotiation.";
VerifyEmptyNackConfig(default_receive_config.rtp.nack);
EXPECT_EQ(-1, default_receive_config.rtp.ulpfec_payload_type)
<< "Enabling ULPFEC requires rtpmap: ulpfec negotiation.";
diff --git a/video/end_to_end_tests/rtp_rtcp_tests.cc b/video/end_to_end_tests/rtp_rtcp_tests.cc
index 32d7cd5..10d2748 100644
--- a/video/end_to_end_tests/rtp_rtcp_tests.cc
+++ b/video/end_to_end_tests/rtp_rtcp_tests.cc
@@ -501,9 +501,6 @@
flexfec_receive_config.protected_media_ssrcs =
GetVideoSendConfig()->rtp.flexfec.protected_media_ssrcs;
flexfec_receive_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
- flexfec_receive_config.rtp.extensions.emplace_back(
- RtpExtension::kTransportSequenceNumberUri,
- kTransportSequenceNumberExtensionId);
flexfec_receive_configs_.push_back(flexfec_receive_config);
CreateFlexfecStreams();
diff --git a/video/end_to_end_tests/stats_tests.cc b/video/end_to_end_tests/stats_tests.cc
index 62acca3..147227d 100644
--- a/video/end_to_end_tests/stats_tests.cc
+++ b/video/end_to_end_tests/stats_tests.cc
@@ -357,11 +357,6 @@
send_config->rtp.extensions.clear();
send_config->rtp.extensions.push_back(
RtpExtension(RtpExtension::kVideoTimingUri, kExtensionId));
- for (auto& receive_config : *receive_configs) {
- receive_config.rtp.extensions.clear();
- receive_config.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kVideoTimingUri, kExtensionId));
- }
}
void OnVideoStreamsCreated(VideoSendStream* send_stream,
diff --git a/video/end_to_end_tests/transport_feedback_tests.cc b/video/end_to_end_tests/transport_feedback_tests.cc
index f6e2049..0703f29 100644
--- a/video/end_to_end_tests/transport_feedback_tests.cc
+++ b/video/end_to_end_tests/transport_feedback_tests.cc
@@ -210,10 +210,6 @@
size_t stream_index,
VideoReceiveStreamInterface::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::kTransportSequenceNumberUri,
- kTransportSequenceNumberExtensionId));
receive_config->renderer = &fake_renderer_;
}
@@ -300,8 +296,6 @@
send_config->rtp.extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
kTransportSequenceNumberExtensionId));
- (*receive_configs)[0].rtp.extensions.clear();
- (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
}
private:
@@ -438,8 +432,6 @@
send_config->rtp.extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
kTransportSequenceNumberExtensionId));
- (*receive_configs)[0].rtp.extensions.clear();
- (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
}
Action OnSendRtp(const uint8_t* packet, size_t length) override {
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index e7f8866..6b1e8ff 100644
--- a/video/rtp_video_stream_receiver2.cc
+++ b/video/rtp_video_stream_receiver2.cc
@@ -253,7 +253,6 @@
config_(*config),
packet_router_(packet_router),
ntp_estimator_(clock),
- rtp_header_extensions_(config_.rtp.extensions),
forced_playout_delay_max_ms_("max_ms", absl::nullopt),
forced_playout_delay_min_ms_("min_ms", absl::nullopt),
rtp_receive_statistics_(rtp_receive_statistics),
@@ -955,17 +954,6 @@
frame_transformer_delegate_->Init();
}
-void RtpVideoStreamReceiver2::SetRtpExtensions(
- const std::vector<RtpExtension>& extensions) {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- rtp_header_extensions_.Reset(extensions);
-}
-
-const RtpHeaderExtensionMap& RtpVideoStreamReceiver2::GetRtpExtensions() const {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- return rtp_header_extensions_;
-}
-
void RtpVideoStreamReceiver2::UpdateRtt(int64_t max_rtt_ms) {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
if (nack_module_)
diff --git a/video/rtp_video_stream_receiver2.h b/video/rtp_video_stream_receiver2.h
index 48bcab1..d0de248 100644
--- a/video/rtp_video_stream_receiver2.h
+++ b/video/rtp_video_stream_receiver2.h
@@ -175,11 +175,6 @@
void SetDepacketizerToDecoderFrameTransformer(
rtc::scoped_refptr<FrameTransformerInterface> frame_transformer);
- // Updates the rtp header extensions at runtime. Must be called on the
- // `packet_sequence_checker_` thread.
- void SetRtpExtensions(const std::vector<RtpExtension>& extensions);
- const RtpHeaderExtensionMap& GetRtpExtensions() const;
-
// Called by VideoReceiveStreamInterface when stats are updated.
void UpdateRtt(int64_t max_rtt_ms);
@@ -323,8 +318,6 @@
RemoteNtpTimeEstimator ntp_estimator_;
- RtpHeaderExtensionMap rtp_header_extensions_
- RTC_GUARDED_BY(packet_sequence_checker_);
// Set by the field trial WebRTC-ForcePlayoutDelay to override any playout
// delay that is specified in the received packets.
FieldTrialOptional<int> forced_playout_delay_max_ms_;
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 5d17917..a903c21 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -934,14 +934,6 @@
}
CreateMatchingFecConfig(recv_transport, *GetVideoSendConfig());
- if (params_.call.send_side_bwe) {
- GetFlexFecConfig()->rtp.extensions.push_back(
- RtpExtension(RtpExtension::kTransportSequenceNumberUri,
- kTransportSequenceNumberExtensionId));
- } else {
- GetFlexFecConfig()->rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
- }
}
if (params_.video[0].ulpfec) {
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index ce96512..15273b3 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -440,29 +440,6 @@
transport_adapter_.Disable();
}
-void VideoReceiveStream2::SetRtpExtensions(
- std::vector<RtpExtension> extensions) {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- rtp_video_stream_receiver_.SetRtpExtensions(extensions);
- // TODO(tommi): We don't use the `c.rtp.extensions` member in the
- // VideoReceiveStream2 class, so this const_cast<> is a temporary hack to keep
- // things consistent between VideoReceiveStream2 and RtpVideoStreamReceiver2
- // for debugging purposes. The `packet_sequence_checker_` gives us assurances
- // that from a threading perspective, this is still safe. The accessors that
- // give read access to this state, run behind the same check.
- // The alternative to the const_cast<> would be to make `config_` non-const
- // and guarded by `packet_sequence_checker_`. However the scope of that state
- // is huge (the whole Config struct), and would require all methods that touch
- // the struct to abide the needs of the `extensions` member.
- const_cast<std::vector<RtpExtension>&>(config_.rtp.extensions) =
- std::move(extensions);
-}
-
-RtpHeaderExtensionMap VideoReceiveStream2::GetRtpExtensionMap() const {
- RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
- return rtp_video_stream_receiver_.GetRtpExtensions();
-}
-
void VideoReceiveStream2::SetRtcpMode(RtcpMode mode) {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
// TODO(tommi): Stop using the config struct for the internal state.
diff --git a/video/video_receive_stream2.h b/video/video_receive_stream2.h
index 44e2228..5c3572d 100644
--- a/video/video_receive_stream2.h
+++ b/video/video_receive_stream2.h
@@ -142,8 +142,6 @@
void Start() override;
void Stop() override;
- void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
- RtpHeaderExtensionMap GetRtpExtensionMap() const override;
void SetRtcpMode(RtcpMode mode) override;
void SetFlexFecProtection(RtpPacketSinkInterface* flexfec_sink) override;
void SetLossNotificationEnabled(bool enabled) override;
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index f056356..7b33ca2 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -633,7 +633,6 @@
send_config->rtp.extensions.push_back(
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
}
- (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
encoder_config->codec_type = PayloadStringToCodecType(payload_name_);
(*receive_configs)[0].rtp.red_payload_type =
send_config->rtp.ulpfec.red_payload_type;
@@ -832,7 +831,6 @@
} else {
send_config->rtp.extensions.clear();
}
- (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
encoder_config->codec_type = PayloadStringToCodecType(payload_name_);
}
@@ -1590,7 +1588,6 @@
send_config->rtp.extensions.clear();
send_config->rtp.extensions.push_back(RtpExtension(
RtpExtension::kTransportSequenceNumberUri, kExtensionId));
- (*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
}
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
@@ -1600,8 +1597,6 @@
send_config->rtp.extensions.clear();
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;
}
Action OnSendRtp(const uint8_t* packet, size_t length) override {