From 363dc19f9dfda41bdf7a9ba28c2167e43cde767d Mon Sep 17 00:00:00 2001 From: Ilya Nikolaevskiy Date: Mon, 9 Sep 2024 13:19:47 +0200 Subject: [PATCH] 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 Reviewed-by: Sergey Silkin Cr-Commit-Position: refs/heads/main@{#42983} --- .../svc/simulcast_to_svc_converter.cc | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/video_coding/svc/simulcast_to_svc_converter.cc b/modules/video_coding/svc/simulcast_to_svc_converter.cc index f7575e7fbc..77d5b294b5 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 @@ bool SimulcastToSvcConverter::ConvertFrame(EncodedImage& encoded_image, 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;