blob: 3b67443693670f521e90e74a6376b7dc48a547ca [file] [log] [blame]
Danil Chapovalova13e7a12020-07-14 12:34:36 +02001/*
2 * Copyright (c) 2020 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 */
Danil Chapovalovda7fe392020-10-15 15:57:17 +020010#ifndef MODULES_VIDEO_CODING_SVC_CREATE_SCALABILITY_STRUCTURE_H_
11#define MODULES_VIDEO_CODING_SVC_CREATE_SCALABILITY_STRUCTURE_H_
Danil Chapovalova13e7a12020-07-14 12:34:36 +020012
13#include <memory>
14#include <vector>
15
Danil Chapovalov5d3bf6a2021-09-06 15:41:54 +020016#include "absl/types/optional.h"
Niels Möller79d566b2022-04-29 11:03:13 +020017#include "api/video_codecs/scalability_mode.h"
Danil Chapovalovda7fe392020-10-15 15:57:17 +020018#include "modules/video_coding/svc/scalable_video_controller.h"
Danil Chapovalova13e7a12020-07-14 12:34:36 +020019
20namespace webrtc {
21
22// Creates a structure by name according to
23// https://w3c.github.io/webrtc-svc/#scalabilitymodes*
24// Returns nullptr for unknown name.
25std::unique_ptr<ScalableVideoController> CreateScalabilityStructure(
Niels Möller79d566b2022-04-29 11:03:13 +020026 ScalabilityMode name);
Danil Chapovalova13e7a12020-07-14 12:34:36 +020027
Niels Möller79d566b2022-04-29 11:03:13 +020028// Returns description of the scalability structure identified by 'name',
Danil Chapovalov5d3bf6a2021-09-06 15:41:54 +020029// Return nullopt for unknown name.
30absl::optional<ScalableVideoController::StreamLayersConfig>
Niels Möller79d566b2022-04-29 11:03:13 +020031ScalabilityStructureConfig(ScalabilityMode name);
Danil Chapovalov5d3bf6a2021-09-06 15:41:54 +020032
Danil Chapovalova13e7a12020-07-14 12:34:36 +020033} // namespace webrtc
34
Danil Chapovalovda7fe392020-10-15 15:57:17 +020035#endif // MODULES_VIDEO_CODING_SVC_CREATE_SCALABILITY_STRUCTURE_H_