SimulcastToSvcConverter: Allow not setting scalability mode on frame
Bug: webrtc:347737882
Change-Id: I61e5a7a538bf43a9377fc9e3b8d399754232a2f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362081
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42983}
diff --git a/modules/video_coding/svc/simulcast_to_svc_converter.cc b/modules/video_coding/svc/simulcast_to_svc_converter.cc
index f7575e7..77d5b29 100644
--- a/modules/video_coding/svc/simulcast_to_svc_converter.cc
+++ b/modules/video_coding/svc/simulcast_to_svc_converter.cc
@@ -84,15 +84,17 @@
encoded_image.SetSimulcastIndex(sid);
encoded_image.SetSpatialIndex(std::nullopt);
codec_specific.end_of_picture = true;
- int num_temporal_layers =
- ScalabilityModeToNumTemporalLayers(*codec_specific.scalability_mode);
- RTC_DCHECK_LE(num_temporal_layers, 3);
- if (num_temporal_layers == 1) {
- codec_specific.scalability_mode = ScalabilityMode::kL1T1;
- } else if (num_temporal_layers == 2) {
- codec_specific.scalability_mode = ScalabilityMode::kL1T2;
- } else if (num_temporal_layers == 3) {
- codec_specific.scalability_mode = ScalabilityMode::kL1T3;
+ if (codec_specific.scalability_mode) {
+ int num_temporal_layers =
+ ScalabilityModeToNumTemporalLayers(*codec_specific.scalability_mode);
+ RTC_DCHECK_LE(num_temporal_layers, 3);
+ if (num_temporal_layers == 1) {
+ codec_specific.scalability_mode = ScalabilityMode::kL1T1;
+ } else if (num_temporal_layers == 2) {
+ codec_specific.scalability_mode = ScalabilityMode::kL1T2;
+ } else if (num_temporal_layers == 3) {
+ codec_specific.scalability_mode = ScalabilityMode::kL1T3;
+ }
}
CodecSpecificInfoVP9& vp9_info = codec_specific.codecSpecific.VP9;
vp9_info.num_spatial_layers = 1;