Add `ScalabilityModeStringToEnum` helper function.
Bug: none
Change-Id: Iea602c88afbfe1f8f8e94b353eda96d62b651bd8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/319882
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40732}
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn
index d9dd5ae..94c9cc8 100644
--- a/api/video_codecs/BUILD.gn
+++ b/api/video_codecs/BUILD.gn
@@ -31,7 +31,10 @@
"scalability_mode_helper.cc",
"scalability_mode_helper.h",
]
- deps = [ "../../modules/video_coding/svc:scalability_mode_util" ]
+ deps = [
+ ":scalability_mode",
+ "../../modules/video_coding/svc:scalability_mode_util",
+ ]
absl_deps = [
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
diff --git a/api/video_codecs/scalability_mode_helper.cc b/api/video_codecs/scalability_mode_helper.cc
index b457163..09ede9c 100644
--- a/api/video_codecs/scalability_mode_helper.cc
+++ b/api/video_codecs/scalability_mode_helper.cc
@@ -34,4 +34,9 @@
return ScalabilityModeToNumTemporalLayers(*scalability_mode);
}
+absl::optional<ScalabilityMode> ScalabilityModeStringToEnum(
+ absl::string_view scalability_mode_string) {
+ return ScalabilityModeFromString(scalability_mode_string);
+}
+
} // namespace webrtc
diff --git a/api/video_codecs/scalability_mode_helper.h b/api/video_codecs/scalability_mode_helper.h
index a8b060d..21dcfc2 100644
--- a/api/video_codecs/scalability_mode_helper.h
+++ b/api/video_codecs/scalability_mode_helper.h
@@ -13,6 +13,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
+#include "api/video_codecs/scalability_mode.h"
namespace webrtc {
@@ -26,6 +27,11 @@
absl::optional<int> ScalabilityModeStringToNumTemporalLayers(
absl::string_view scalability_mode_string);
+// Convert the `scalability_mode_string` to the scalability mode enum value
+// or nullopt if the given mode is unknown.
+absl::optional<ScalabilityMode> ScalabilityModeStringToEnum(
+ absl::string_view scalability_mode_string);
+
} // namespace webrtc
#endif // API_VIDEO_CODECS_SCALABILITY_MODE_HELPER_H_