scalability_mode_helper.cc (1560B)
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 <optional> 14 15 #include "absl/strings/string_view.h" 16 #include "api/video_codecs/scalability_mode.h" 17 #include "modules/video_coding/svc/scalability_mode_util.h" 18 19 namespace webrtc { 20 21 std::optional<int> ScalabilityModeStringToNumSpatialLayers( 22 absl::string_view scalability_mode_string) { 23 std::optional<ScalabilityMode> scalability_mode = 24 ScalabilityModeFromString(scalability_mode_string); 25 if (!scalability_mode.has_value()) { 26 return std::nullopt; 27 } 28 return ScalabilityModeToNumSpatialLayers(*scalability_mode); 29 } 30 31 std::optional<int> ScalabilityModeStringToNumTemporalLayers( 32 absl::string_view scalability_mode_string) { 33 std::optional<ScalabilityMode> scalability_mode = 34 ScalabilityModeFromString(scalability_mode_string); 35 if (!scalability_mode.has_value()) { 36 return std::nullopt; 37 } 38 return ScalabilityModeToNumTemporalLayers(*scalability_mode); 39 } 40 41 std::optional<ScalabilityMode> ScalabilityModeStringToEnum( 42 absl::string_view scalability_mode_string) { 43 return ScalabilityModeFromString(scalability_mode_string); 44 } 45 46 } // namespace webrtc