Populate ScalabilityMode of subcodecs in SimulcastEncoderAdapter.

Bug: webrtc:14511
Change-Id: I2c20ececa7c1e20c7c1e7be4ce7196edf702c833
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/277623
Auto-Submit: Erik Språng <sprang@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38265}
This commit is contained in:
Erik Språng 2022-09-30 17:52:43 +02:00 committed by WebRTC LUCI CQ
parent b420259324
commit fcc3d9aea4
2 changed files with 20 additions and 0 deletions

View File

@ -771,6 +771,7 @@ webrtc::VideoCodec SimulcastEncoderAdapter::MakeStreamCodec(
codec_params.maxFramerate = stream_params.maxFramerate;
codec_params.qpMax = stream_params.qpMax;
codec_params.active = stream_params.active;
codec_params.SetScalabilityMode(stream_params.GetScalabilityMode());
// Settings that are based on stream/resolution.
if (is_lowest_quality_stream) {
// Settings for lowest spatial resolutions.

View File

@ -1777,5 +1777,24 @@ TEST_F(TestSimulcastEncoderAdapterFake,
adapter_->InitEncode(&codec_, kSettings));
}
TEST_F(TestSimulcastEncoderAdapterFake, PopulatesScalabilityModeOfSubcodecs) {
SimulcastTestFixtureImpl::DefaultSettings(
&codec_, static_cast<const int*>(kTestTemporalLayerProfile),
kVideoCodecVP8);
codec_.numberOfSimulcastStreams = 3;
codec_.simulcastStream[0].numberOfTemporalLayers = 1;
codec_.simulcastStream[1].numberOfTemporalLayers = 2;
codec_.simulcastStream[2].numberOfTemporalLayers = 3;
EXPECT_EQ(0, adapter_->InitEncode(&codec_, kSettings));
ASSERT_EQ(3u, helper_->factory()->encoders().size());
EXPECT_EQ(helper_->factory()->encoders()[0]->codec().GetScalabilityMode(),
ScalabilityMode::kL1T1);
EXPECT_EQ(helper_->factory()->encoders()[1]->codec().GetScalabilityMode(),
ScalabilityMode::kL1T2);
EXPECT_EQ(helper_->factory()->encoders()[2]->codec().GetScalabilityMode(),
ScalabilityMode::kL1T3);
}
} // namespace test
} // namespace webrtc