xref: /aosp_15_r20/external/webrtc/api/video_codecs/scalability_mode_helper.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1 /*
2  *  Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "api/video_codecs/scalability_mode_helper.h"
12 
13 #include "modules/video_coding/svc/scalability_mode_util.h"
14 
15 namespace webrtc {
16 
ScalabilityModeStringToNumSpatialLayers(absl::string_view scalability_mode_string)17 absl::optional<int> ScalabilityModeStringToNumSpatialLayers(
18     absl::string_view scalability_mode_string) {
19   absl::optional<ScalabilityMode> scalability_mode =
20       ScalabilityModeFromString(scalability_mode_string);
21   if (!scalability_mode.has_value()) {
22     return absl::nullopt;
23   }
24   return ScalabilityModeToNumSpatialLayers(*scalability_mode);
25 }
26 
ScalabilityModeStringToNumTemporalLayers(absl::string_view scalability_mode_string)27 absl::optional<int> ScalabilityModeStringToNumTemporalLayers(
28     absl::string_view scalability_mode_string) {
29   absl::optional<ScalabilityMode> scalability_mode =
30       ScalabilityModeFromString(scalability_mode_string);
31   if (!scalability_mode.has_value()) {
32     return absl::nullopt;
33   }
34   return ScalabilityModeToNumTemporalLayers(*scalability_mode);
35 }
36 
37 }  // namespace webrtc
38