AlignmentAdjuster: take reduced layers into account for default downscaling. Bug: none Change-Id: Id70f7763d2e1b11c24ad98774f1bf6a661728437 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202257 Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Commit-Queue: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33038}
diff --git a/video/alignment_adjuster.cc b/video/alignment_adjuster.cc index b08f2f1..6b1db92 100644 --- a/video/alignment_adjuster.cc +++ b/video/alignment_adjuster.cc
@@ -66,7 +66,8 @@ int AlignmentAdjuster::GetAlignmentAndMaybeAdjustScaleFactors( const VideoEncoder::EncoderInfo& encoder_info, - VideoEncoderConfig* config) { + VideoEncoderConfig* config, + absl::optional<size_t> max_layers) { const int requested_alignment = encoder_info.requested_resolution_alignment; if (!encoder_info.apply_alignment_to_all_simulcast_layers) { return requested_alignment; @@ -85,7 +86,11 @@ if (!has_scale_resolution_down_by) { // Default resolution downscaling used (scale factors: 1, 2, 4, ...). - return requested_alignment * (1 << (config->simulcast_layers.size() - 1)); + size_t size = config->simulcast_layers.size(); + if (max_layers && *max_layers > 0 && *max_layers < size) { + size = *max_layers; + } + return requested_alignment * (1 << (size - 1)); } // Get alignment for downscaled layers.