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;