Handle null structure for invalid scalability mode case

The scalability mode could be something invalid set by user, in this
case, |num_spatial_layers| should not be updated.

Bug: chromium:1292923
Change-Id: I78e1a6f12cf6d165597205608e4c124117a3d01b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251560
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Zhaoliang Ma <zhaoliang.ma@intel.com>
Cr-Commit-Position: refs/heads/main@{#35985}
This commit is contained in:
Zhaoliang Ma 2022-02-11 12:54:06 +08:00 committed by WebRTC LUCI CQ
parent 54d1344d98
commit ea8dfd5011

View File

@ -70,8 +70,13 @@ void FrameEncodeMetadataWriter::OnEncoderInit(const VideoCodec& codec) {
codec_settings_.ScalabilityMode() != "") {
std::unique_ptr<ScalableVideoController> structure =
CreateScalabilityStructure(codec_settings_.ScalabilityMode());
RTC_DCHECK(structure);
num_spatial_layers = structure->StreamConfig().num_spatial_layers;
if (structure) {
num_spatial_layers = structure->StreamConfig().num_spatial_layers;
} else {
// |structure| maybe nullptr if the scalability mode is invalid.
RTC_LOG(LS_WARNING) << "Cannot create ScalabilityStructure, since the "
"scalability mode is invalid";
}
}
num_spatial_layers_ = std::max(num_spatial_layers, size_t{1});
}