Enable corruption detection when the encrypted extension is present
Credit: https://webrtc-review.googlesource.com/c/src/+/365584 with ASAN issue solved. Bug: webrtc:358039777 Change-Id: If609d9dfe5de3d53970490a87cd71bbc884e680b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365680 Commit-Queue: Emil Vardar (xWF) <vardar@google.com> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43244}
This commit is contained in:
parent
e486aedc16
commit
183a522bdc
@ -1532,13 +1532,6 @@ bool WebRtcVideoSendChannel::AddSendStream(const StreamParams& sp) {
|
||||
bitrate_allocator_factory_;
|
||||
config.encoder_settings.encoder_switch_request_callback = this;
|
||||
|
||||
// TODO: bugs.webrtc.org/358039777 - Add test when this effectively does
|
||||
// something.
|
||||
if (webrtc::RtpExtension::FindHeaderExtensionByUri(
|
||||
config.rtp.extensions, webrtc::RtpExtension::kCorruptionDetectionUri,
|
||||
webrtc::RtpExtension::kRequireEncryptedExtension)) {
|
||||
config.encoder_settings.enable_frame_instrumentation_generator = true;
|
||||
}
|
||||
config.crypto_options = crypto_options_;
|
||||
config.rtp.extmap_allow_mixed = ExtmapAllowMixed();
|
||||
config.rtcp_report_interval_ms = video_config_.rtcp_report_interval_ms;
|
||||
@ -2621,6 +2614,13 @@ void WebRtcVideoSendChannel::WebRtcVideoSendStream::RecreateWebRtcStream() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (webrtc::RtpExtension::FindHeaderExtensionByUri(
|
||||
config.rtp.extensions, webrtc::RtpExtension::kCorruptionDetectionUri,
|
||||
webrtc::RtpExtension::kRequireEncryptedExtension)) {
|
||||
config.encoder_settings.enable_frame_instrumentation_generator = true;
|
||||
}
|
||||
|
||||
stream_ = call_->CreateVideoSendStream(std::move(config),
|
||||
parameters_.encoder_config.Copy());
|
||||
|
||||
|
||||
@ -3173,6 +3173,44 @@ TEST_F(WebRtcVideoChannelTest, RecvVideoRotationHeaderExtensions) {
|
||||
TestSetRecvRtpHeaderExtensions(RtpExtension::kVideoRotationUri);
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoChannelTest, SendCorruptionDetectionHeaderExtensions) {
|
||||
TestSetSendRtpHeaderExtensions(RtpExtension::kCorruptionDetectionUri);
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoChannelTest, DisableFrameInstrumentationByDefault) {
|
||||
EXPECT_TRUE(send_channel_->SetSenderParameters(send_parameters_));
|
||||
FakeVideoSendStream* send_stream =
|
||||
AddSendStream(cricket::StreamParams::CreateLegacy(123));
|
||||
EXPECT_FALSE(send_stream->GetConfig()
|
||||
.encoder_settings.enable_frame_instrumentation_generator);
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoChannelTest,
|
||||
EnableFrameInstrumentationWhenEncryptedExtensionIsPresent) {
|
||||
cricket::VideoSenderParameters parameters = send_parameters_;
|
||||
parameters.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kCorruptionDetectionUri, /*id=*/1, /*encrypt=*/true));
|
||||
EXPECT_TRUE(send_channel_->SetSenderParameters(parameters));
|
||||
|
||||
FakeVideoSendStream* send_stream =
|
||||
AddSendStream(cricket::StreamParams::CreateLegacy(123));
|
||||
EXPECT_TRUE(send_stream->GetConfig()
|
||||
.encoder_settings.enable_frame_instrumentation_generator);
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoChannelTest,
|
||||
DisableFrameInstrumentationWhenNoEncryptedExtensionIsPresent) {
|
||||
cricket::VideoSenderParameters parameters = send_parameters_;
|
||||
parameters.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kCorruptionDetectionUri, /*id=*/1, /*encrypt=*/false));
|
||||
EXPECT_TRUE(send_channel_->SetSenderParameters(parameters));
|
||||
|
||||
FakeVideoSendStream* send_stream =
|
||||
AddSendStream(cricket::StreamParams::CreateLegacy(123));
|
||||
EXPECT_FALSE(send_stream->GetConfig()
|
||||
.encoder_settings.enable_frame_instrumentation_generator);
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoChannelTest, IdenticalSendExtensionsDoesntRecreateStream) {
|
||||
const int kAbsSendTimeId = 1;
|
||||
const int kVideoRotationId = 2;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user