diff --git a/modules/video_coding/video_codec_initializer.cc b/modules/video_coding/video_codec_initializer.cc index bcc82a1de7..43fab8c432 100644 --- a/modules/video_coding/video_codec_initializer.cc +++ b/modules/video_coding/video_codec_initializer.cc @@ -242,7 +242,7 @@ VideoCodec VideoCodecInitializer::VideoEncoderConfigToVideoCodec( if (spatial_layers.empty()) break; // Use codec bitrate limits if spatial layering is not requested. - if (config.simulcast_layers.size() <= 1 && + if (video_codec.numberOfSimulcastStreams <= 1 && ScalabilityModeToNumSpatialLayers(*scalability_mode) == 1) { spatial_layers.back().minBitrate = video_codec.minBitrate; spatial_layers.back().targetBitrate = video_codec.maxBitrate; diff --git a/modules/video_coding/video_codec_initializer_unittest.cc b/modules/video_coding/video_codec_initializer_unittest.cc index b9d8465aa8..b0edab6004 100644 --- a/modules/video_coding/video_codec_initializer_unittest.cc +++ b/modules/video_coding/video_codec_initializer_unittest.cc @@ -589,11 +589,17 @@ TEST_F(VideoCodecInitializerTest, Vp9SingleSpatialLayerBitratesAreConsistent) { EXPECT_TRUE(VideoCodecInitializer::SetupCodec(config, streams, &codec)); EXPECT_EQ(1u, codec.VP9()->numberOfSpatialLayers); + // Target is consistent with min and max (min <= target <= max). EXPECT_GE(codec.spatialLayers[0].targetBitrate, codec.spatialLayers[0].minBitrate); EXPECT_LE(codec.spatialLayers[0].targetBitrate, codec.spatialLayers[0].maxBitrate); - EXPECT_LT(codec.spatialLayers[0].minBitrate, kDefaultMinBitrateBps / 1000); + // In the single spatial layer case, the spatial layer bitrates are copied + // from the codec's bitrate which is the sum if VideoStream bitrates. In this + // case we only have a single VideoStream using default values. + EXPECT_EQ(codec.spatialLayers[0].minBitrate, kDefaultMinBitrateBps / 1000); + EXPECT_EQ(codec.spatialLayers[0].targetBitrate, kDefaultMaxBitrateBps / 1000); + EXPECT_EQ(codec.spatialLayers[0].maxBitrate, kDefaultMaxBitrateBps / 1000); } TEST_F(VideoCodecInitializerTest, Vp9TwoSpatialLayersBitratesAreConsistent) {